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

From: Joe Perches
Date: Wed Sep 09 2020 - 05:38:49 EST


On Wed, 2020-09-09 at 02:33 -0700, Joe Perches wrote:
> 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))

(hah, I typed aq_rc wrong both times, so maybe it's not _that_
much better...)

if (aq_rc < 0 || aq_rc >= ARRAY_SIZE(aq_to_posix))