[dpdk-dev] [PATCH] BugFix: VFIO never works

Tetsuya Mukawa mukawa at igel.co.jp
Sat Jul 11 08:32:02 CEST 2015


On 2015/07/10 21:16, Thomas Monjalon wrote:
> 2015-07-10 12:38, Bruce Richardson:
>> On Fri, Jul 10, 2015 at 01:25:49PM +0200, David Marchand wrote:
>>> On Fri, Jul 10, 2015 at 10:34 AM, Tetsuya Mukawa <mukawa at igel.co.jp> wrote:
>>>> On 2015/07/10 16:47, Michael Qiu wrote:
>>>>> Commit 35b3313e322b ("pci: merge mapping functions for linux and bsd")
>>>>>
>>>>> introduced a bug that all vfio will be
>>>>> blocked.
>>>>>
>>>>> Root cause is that VFIO_PRESENT is unaccessable in eal
>>>>> common level.
>>>>>
>>>>> This patch is to fix this.
>>>>>
>>>>> Signed-off-by: Michael Qiu <michael.qiu at intel.com>
> [...]
>>>>> --- a/lib/librte_eal/common/eal_common_pci.c
>>>>> +++ b/lib/librte_eal/common/eal_common_pci.c
>>>>> @@ -146,10 +146,8 @@ pci_map_device(struct rte_pci_device *dev)
>>>>>       /* try mapping the NIC resources using VFIO if it exists */
>>>>>       switch (dev->kdrv) {
>>>>>       case RTE_KDRV_VFIO:
>>>>> -#ifdef VFIO_PRESENT
>>>>>               if (pci_vfio_is_enabled())
>>>>>                       ret = pci_vfio_map_resource(dev);
>>>>> -#endif
>>> This is a common file, vfio is not available on BSD.
>>> I missed that during review.
>>>
>>> Did you test build on BSD ?
>>>
>> Just tried it. BSD build fails with this patch applied.
>>
>> Rather than using ifdefs, we could also look at providing dummy functions for
>> vfio in BSD. They would never be called by this code as drivers in BSD should
>> never have dev->kdrv == RTE_KDRV_VFIO.
> Why not implementing different versions of pci_map_device() and pci_unmap_device()
> in linuxapp and bsdapp EAL? They are only wrappers so no code would be duplicated.

Thanks for comment.
Right, it should be. I fixed like above.

Tetsuya


More information about the dev mailing list