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> --- 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