From: Jack Morgenstein Date: Wed, 20 Feb 2013 14:43:59 +0000 (+0200) Subject: mlx4_core: disable mlx4_QP_ATTACH calls from guests if master is doing flow steering. X-Git-Tag: v4.1.12-92~293^2~1^2~85 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=6b9d1ece4e2ecc460f5ba9964372282389ef5f93;p=users%2Fjedix%2Flinux-maple.git mlx4_core: disable mlx4_QP_ATTACH calls from guests if master is doing flow steering. Old upstream kernel guests do not detect if device-enabled flow steering is activated by the master. If DMFS is activated, the master should return error to guests which try to use the B0-steering flow calls (mlx4_QP_ATTACH). Signed-off-by: Jack Morgenstein (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- diff --git a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c index ec431c9282288..eaefc8a16bdc7 100644 --- a/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c +++ b/drivers/net/ethernet/mellanox/mlx4/resource_tracker.c @@ -3905,6 +3905,9 @@ int mlx4_QP_ATTACH_wrapper(struct mlx4_dev *dev, int slave, u8 steer_type_mask = 2; enum mlx4_steer_type type = (gid[7] & steer_type_mask) >> 1; + if (dev->caps.steering_mode != MLX4_STEERING_MODE_B0) + return -EINVAL; + qpn = vhcr->in_modifier & 0xffffff; err = get_res(dev, slave, qpn, RES_QP, &rqp); if (err)