UINT64_C(1) is required in this bitshift since batch_size can be 32 and
1 << 32 overflows UINT32_C(1).
Fixes: ba0a2619ca0c ("dpif-netdev-avx512: Fix ubsan shift error in bitmasks.")
Signed-off-by: Cian Ferriter <[email protected]>
---
The other uses of UINT32_C(1) in the dpif-netdev-avx512 files are valid
since those shifts are a maximum of 31 in all cases.
---
lib/dpif-netdev-avx512.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/dpif-netdev-avx512.c b/lib/dpif-netdev-avx512.c
index 151a945a9..11d9a0005 100644
--- a/lib/dpif-netdev-avx512.c
+++ b/lib/dpif-netdev-avx512.c
@@ -159,7 +159,7 @@ dp_netdev_input_outer_avx512(struct dp_netdev_pmd_thread
*pmd,
mf_mask = mfex_func(packets, keys, batch_size, in_port, pmd);
}
- uint32_t lookup_pkts_bitmask = (UINT32_C(1) << batch_size) - 1;
+ uint32_t lookup_pkts_bitmask = (UINT64_C(1) << batch_size) - 1;
uint32_t iter = lookup_pkts_bitmask;
while (iter) {
uint32_t i = raw_ctz(iter);
--
2.25.1
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev