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;