Commit d64b1ee1 authored by Dan Carpenter's avatar Dan Carpenter Committed by Leon Romanovsky
Browse files

RDMA/mlx4: Make check for invalid flags stricter



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>
parent 06c2afb8
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -565,7 +565,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	|