On Thu, Sep 29, 2016 at 12:39 PM, John W. Linville <linville at tuxdriver.com> wrote:
> Some(?) compilers will treat the unmarked constant 1 as a 32-bit > integer, but the shift operation is in a loop that could run up to > 63 times -- undefined behavior! > > Coverity issue: 127546 > Fixes: 778b759ba10e ("net/bnxt: add MAC address") > > Signed-off-by: John W. Linville <linville at tuxdriver.com> > ?Acked -by: Ajit Khaparde <ajit.khaparde at broadcom.com> > --- > v2: fix-up changelog entries based-on comments from Ferruh Yigit > > drivers/net/bnxt/bnxt_ethdev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev > .c > index f4eedfd812bb..d7447b15983b 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -463,7 +463,7 @@ static void bnxt_mac_addr_remove_op(struct rte_eth_dev > *eth_dev, > * remove the corresponding MAC addr filter > */ > for (i = 0; i < MAX_FF_POOLS; i++) { > - if (!(pool_mask & (1 << i))) > + if (!(pool_mask & (1ULL << i))) > continue; > > STAILQ_FOREACH(vnic, &bp->ff_pool[i], next) { > -- > 2.7.4 > >