Re: [net-next] net: iavf: Use the ARRAY_SIZE macro for aq_to_posix

From: Joe Perches
Date: Wed Sep 09 2020 - 05:34:01 EST


On Wed, 2020-09-09 at 16:51 +0800, Wei Xu wrote:
> Use the ARRAY_SIZE macro to calculate the size of an array.
> This code was detected with the help of Coccinelle.
[]
> diff --git a/drivers/net/ethernet/intel/iavf/iavf_adminq.h b/drivers/net/ethernet/intel/iavf/iavf_adminq.h
[]
> @@ -120,7 +120,7 @@ static inline int iavf_aq_rc_to_posix(int aq_ret, int aq_rc)
> if (aq_ret == IAVF_ERR_ADMIN_QUEUE_TIMEOUT)
> return -EAGAIN;
>
> - if (!((u32)aq_rc < (sizeof(aq_to_posix) / sizeof((aq_to_posix)[0]))))
> + if (!((u32)aq_rc < ARRAY_SIZE(aq_to_posix)))
> return -ERANGE;

If you want to use a cast,

if ((u32)aq_rc >= ARRAY_SIZE(aq_to_posix))
return -ERANGE;

would be a more common and simpler style, though
perhaps testing ac_rc < 0 would be more intelligible.

if (ac_rc < 0 || ac_rq >= ARRAY_SIZE(aq_to_posix))
return -ERANGE;