[dpdk-dev] [PATCH 2/3] net/sfc: use locally stored data for logging

Andrew Rybchenko arybchenko at solarflare.com
Thu May 18 16:01:08 CEST 2017


On 05/18/2017 01:59 PM, Ferruh Yigit wrote:
> On 5/17/2017 1:25 PM, Andrew Rybchenko wrote:
>> Required to be able to use logging in the secondary process
>> where Ethernet device pointer stored in sfc_adapter is invalid.
>>
>> Signed-off-by: Andrew Rybchenko <arybchenko at solarflare.com>
>> Reviewed-by: Andy Moreton <amoreton at solarflare.com>
> <...>
>
>> diff --git a/drivers/net/sfc/sfc_log.h b/drivers/net/sfc/sfc_log.h
>> index d0f8921..6c43925 100644
>> --- a/drivers/net/sfc/sfc_log.h
>> +++ b/drivers/net/sfc/sfc_log.h
>> @@ -35,18 +35,16 @@
>>   /* Log PMD message, automatically add prefix and \n */
>>   #define SFC_LOG(sa, level, ...) \
>>   	do {								\
>> -		const struct rte_eth_dev *_dev = (sa)->eth_dev;		\
>> -		const struct rte_pci_device *_pci_dev =			\
>> -			RTE_ETH_DEV_TO_PCI(_dev);			\
>> +		const struct sfc_adapter *_sa = (sa);			\
> Getting following build error with clang and icc [1]. I guess that is
> because "_sa" declared on both sfc_log_init() and in the macro that
> function uses (SFC_LOG).

Thanks, I'll fix it in v2.

> [1]
> .../drivers/net/sfc/sfc_filter.c:121:2:
> error: variable '_sa' is uninitialized when used within its own
> initialization [-Werror,-Wuninitialized]
>          sfc_log_init(sa, "failed %d", rc);
>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> .../drivers/net/sfc/sfc_log.h:68:12: note: expanded from macro
> 'sfc_log_init'
>          SFC_LOG(_sa, INFO,                              \
>          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> .../drivers/net/sfc/sfc_log.h:38:36: note: expanded from macro 'SFC_LOG'
>          const struct sfc_adapter *_sa = (sa);           \
>                                   ~~~    ^~




More information about the dev mailing list