Subject: Re: [PATCH] net: mlxsw: avoid unused variable warnings

From: Andrew Lunn <[email-masked]>
Date: Wed, 23 Mar 2016 17:51:11 +0100

On Wed, Mar 23, 2016 at 05:37:38PM +0100, Arnd Bergmann wrote:
> dev_dbg_ratelimited() is a macro that ignores its arguments when DEBUG is
> not set, which can lead to unused variable warnings:
> 
> ethernet/mellanox/mlxsw/pci.c: In function 'mlxsw_pci_cqe_sdq_handle':
> ethernet/mellanox/mlxsw/pci.c:646:18: warning: unused variable 'pdev' [-Wunused-variable]
> ethernet/mellanox/mlxsw/pci.c: In function 'mlxsw_pci_cqe_rdq_handle':
> ethernet/mellanox/mlxsw/pci.c:671:18: warning: unused variable 'pdev' [-Wunused-variable]
> 
> This changes the mlxsw driver to remove the local variables we get
> warnings for and instead pass the device directly into the API.

Hi Arnd

Would it not be better to fix the macro?

I think the issue is that dev_dbg_ratelimited calls no_printk(),
without making use of dev. So how about:

#define dev_dbg_ratelimited(dev, fmt, ...)                              \
({                                                                      \
        if (0)                                                          \
                dev_printk(KERN_DEBUG, dev, fmt, ##__VA_ARGS__);        \
})

This follows the pattern for other macros for when DEBUG is not defined.

      Andrew