Re: [PATCH] net: sfc: avoid -Wtype-limits warning

From: Bert Kenward
Date: Thu Jun 16 2016 - 06:32:13 EST


On 15/06/16 21:31, Arnd Bergmann wrote:
> When building with -Wextra, we get a harmless warning from the
> EFX_EXTRACT_OWORD32 macro:
>
> ethernet/sfc/farch.c: In function 'efx_farch_test_registers':
> ethernet/sfc/farch.c:119:30: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
> ethernet/sfc/farch.c:124:144: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
> ethernet/sfc/farch.c:124:392: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
> ethernet/sfc/farch.c:124:731: error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
>
> The macro and the caller are both correct, but we can avoid the
> warning by changing the index variable to a signed type.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Acked-by: Bert Kenward <bkenward@xxxxxxxxxxxxxx>

> ---
> drivers/net/ethernet/sfc/farch.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/sfc/farch.c b/drivers/net/ethernet/sfc/farch.c
> index 133e9e35be9e..4c83739d158f 100644
> --- a/drivers/net/ethernet/sfc/farch.c
> +++ b/drivers/net/ethernet/sfc/farch.c
> @@ -104,7 +104,8 @@ int efx_farch_test_registers(struct efx_nic *efx,
> const struct efx_farch_register_test *regs,
> size_t n_regs)
> {
> - unsigned address = 0, i, j;
> + unsigned address = 0;
> + int i, j;
> efx_oword_t mask, imask, original, reg, buf;
>
> for (i = 0; i < n_regs; ++i) {
>