]> www.infradead.org Git - users/dwmw2/linux.git/commit
net/mlx5: fix unintentional sign extension on shift of dest_attr->vport.vhca_id
authorColin Ian King <colin.i.king@gmail.com>
Thu, 16 Jan 2025 18:17:00 +0000 (18:17 +0000)
committerJakub Kicinski <kuba@kernel.org>
Sat, 18 Jan 2025 03:52:34 +0000 (19:52 -0800)
commit41c5d104f338b21b98aee5a207336c281325583f
treebc55fc3a4f3afdb38cd993eae80aa42a5ff48fe7
parentf16312b0b9c0ced87e5130d74eca37fc7d59cb6b
net/mlx5: fix unintentional sign extension on shift of dest_attr->vport.vhca_id

Shifting dest_attr->vport.vhca_id << 16 results in a promotion from an
unsigned 16 bit integer to a 32 bit signed integer, this is then sign
extended to a 64 bit unsigned long on 64 bitarchitectures. If vhca_id is
greater than 0x7fff then this leads to a sign extended result where all
the upper 32 bits of idx are set to 1. Fix this by casting vhca_id
to the same type as idx before performing the shift.

Fixes: 8e2e08a6d1e0 ("net/mlx5: fs, add support for dest vport HWS action")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Acked-by: Moshe Shemesh <moshe@nvidia.com>
Link: https://patch.msgid.link/20250116181700.96437-1-colin.i.king@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/steering/hws/fs_hws.c