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 <cian.ferri...@intel.com> --- 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 d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev