Commit be482f1d authored by Yevgeny Kliteynik's avatar Yevgeny Kliteynik Committed by Jakub Kicinski
Browse files

net/mlx5: HWS, fix definer's HWS_SET32 macro for negative offset



When bit offset for HWS_SET32 macro is negative,
UBSAN complains about the shift-out-of-bounds:

  UBSAN: shift-out-of-bounds in
  drivers/net/ethernet/mellanox/mlx5/core/steering/hws/definer.c:177:2
  shift exponent -8 is negative

Fixes: 74a778b4 ("net/mlx5: HWS, added definers handling")
Signed-off-by: default avatarYevgeny Kliteynik <kliteyn@nvidia.com>
Reviewed-by: default avatarErez Shitrit <erezsh@nvidia.com>
Reviewed-by: default avatarMark Bloch <mbloch@nvidia.com>
Signed-off-by: default avatarTariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20250102181415.1477316-12-tariqt@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 2f851d17
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@
			u32 second_dw_mask = (mask) & ((1 << _bit_off) - 1); \
			_HWS_SET32(p, (v) >> _bit_off, byte_off, 0, (mask) >> _bit_off); \
			_HWS_SET32(p, (v) & second_dw_mask, (byte_off) + DW_SIZE, \
				    (bit_off) % BITS_IN_DW, second_dw_mask); \
				    (bit_off + BITS_IN_DW) % BITS_IN_DW, second_dw_mask); \
		} else { \
			_HWS_SET32(p, v, byte_off, (bit_off), (mask)); \
		} \