[PATCH] net/gve: fix meson build failure on non-Linux platforms

Ferruh Yigit ferruh.yigit at amd.com
Wed Oct 26 11:10:36 CEST 2022


On 10/26/2022 9:51 AM, David Marchand wrote:
> CAUTION: This message has originated from an External Source. Please use proper judgment and caution when opening attachments, clicking links, or responding to this email.
> 
> 
> On Wed, Oct 26, 2022 at 10:44 AM Junfeng Guo <junfeng.guo at intel.com> wrote:
>>
>> Meson build may fail on FreeBSD with gcc and clang, due to missing
>> the header file linux/pci_regs.h on non-Linux platform. Thus, in
>> this patch, we removed the file include and added the used Macros
>> derived from linux/pci_regs.h.
>>
>> Fixes: 3047a5ac8e66 ("net/gve: add support for device initialization")
>> Cc: stable at dpdk.org
> 
> ...
> No need for Cc: stable.
> 
> 
>>
>> Signed-off-by: Junfeng Guo <junfeng.guo at intel.com>
>> ---
>>   drivers/net/gve/gve_ethdev.c | 14 +++++++++++++-
>>   1 file changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
>> index b0f7b98daa..e968317737 100644
>> --- a/drivers/net/gve/gve_ethdev.c
>> +++ b/drivers/net/gve/gve_ethdev.c
>> @@ -1,12 +1,24 @@
>>   /* SPDX-License-Identifier: BSD-3-Clause
>>    * Copyright(C) 2022 Intel Corporation
>>    */
>> -#include <linux/pci_regs.h>
>>
>>   #include "gve_ethdev.h"
>>   #include "base/gve_adminq.h"
>>   #include "base/gve_register.h"
>>
>> +/*
>> + * Following macros are derived from linux/pci_regs.h, however,
>> + * we can't simply include that header here, as there is no such
>> + * file for non-Linux platform.
>> + */
>> +#define PCI_CFG_SPACE_SIZE     256
>> +#define PCI_CAPABILITY_LIST    0x34    /* Offset of first capability list entry */
>> +#define PCI_STD_HEADER_SIZEOF  64
>> +#define PCI_CAP_SIZEOF         4
>> +#define PCI_CAP_ID_MSIX                0x11    /* MSI-X */
>> +#define PCI_MSIX_FLAGS         2       /* Message Control */
>> +#define PCI_MSIX_FLAGS_QSIZE   0x07FF  /* Table size */
> 
> No, don't introduce such defines in a driver.
> We have a PCI library, that provides some defines.
> So fix your driver to use them.
> 

I can see 'bnx2x' driver is using some flags from 'dev/pci/pcireg.h' 
header for FreeBSD, unfortunately macro names are not same so a #ifdef 
is required. Also I don't know it has all macros or if the header is 
available in all versions etc..

Other option can be to define them all for DPDK in common pci header? As 
far as I can see we don't have all defined right now.



More information about the dev mailing list