diff options
author | Eugenia Emantayev <eugenia@mellanox.co.il> | 2012-02-14 06:37:16 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-02-14 14:11:57 -0500 |
commit | 58a30d6a3c2397f18a826f401e0f0e61e8868f19 (patch) | |
tree | a45e7f922348e2c421644b0b70fd4b75530e3f7b /drivers/net/ethernet/mellanox | |
parent | 9e056c0320fafc03dc170772d8562e3142ed1778 (diff) | |
download | blackbird-obmc-linux-58a30d6a3c2397f18a826f401e0f0e61e8868f19.tar.gz blackbird-obmc-linux-58a30d6a3c2397f18a826f401e0f0e61e8868f19.zip |
mlx4_core: fix buffer overrun
When passing MLX4_UC_STEER=1 it was translated to value 2
after mlx4_QP_ATTACH_wrapper. Therefore in new_steering_entry()
unicast steer entries were added to index 2 of array of size 2.
Fixing this bug by shift right to one position.
Signed-off-by: Eugenia Emantayev <eugenia@mellanox.co.il>
Reviewed-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx4/resource_tracker.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c index dcd819bfb2f0..1420dbc947c2 100644 --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c @@ -2538,7 +2538,7 @@ int mlx4_QP_ATTACH_wrapper(struct mlx4_dev *dev, int slave, int attach = vhcr->op_modifier; int block_loopback = vhcr->in_modifier >> 31; u8 steer_type_mask = 2; - enum mlx4_steer_type type = gid[7] & steer_type_mask; + enum mlx4_steer_type type = (gid[7] & steer_type_mask) >> 1; qpn = vhcr->in_modifier & 0xffffff; err = get_res(dev, slave, qpn, RES_QP, &rqp); |