Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4990f529 authored by Dan Carpenter's avatar Dan Carpenter Committed by Greg Kroah-Hartman
Browse files

RDMA/mlx4: Make check for invalid flags stricter



[ Upstream commit d64b1ee12a168030fbb3e0aebf7bce49e9a07589 ]

This code is trying to ensure that only the flags specified in the list
are allowed.  The problem is that ucmd->rx_hash_fields_mask is a u64 and
the flags are an enum which is treated as a u32 in this context.  That
means the test doesn't check whether the highest 32 bits are zero.

Fixes: 4d02ebd9 ("IB/mlx4: Fix RSS hash fields restrictions")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/233ed975-982d-422a-b498-410f71d8a101@moroto.mountain


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 74843851
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -556,7 +556,7 @@ static int set_qp_rss(struct mlx4_ib_dev *dev, struct mlx4_ib_rss *rss_ctx,
		return (-EOPNOTSUPP);
	}

	if (ucmd->rx_hash_fields_mask & ~(MLX4_IB_RX_HASH_SRC_IPV4	|
	if (ucmd->rx_hash_fields_mask & ~(u64)(MLX4_IB_RX_HASH_SRC_IPV4	|
					       MLX4_IB_RX_HASH_DST_IPV4	|
					       MLX4_IB_RX_HASH_SRC_IPV6	|
					       MLX4_IB_RX_HASH_DST_IPV6	|