Skip to content

Commit eee617a

Browse files
committed
Merge branch 'mlx4'
Or Gerlitz says: ==================== Mellanox driver fixes Two small fixes, please apply to net. Both patches should go to 3.19.y too. ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents 38674a4 + 1037ebb commit eee617a

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

drivers/net/ethernet/mellanox/mlx4/en_selftest.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,14 @@ static int mlx4_en_test_loopback(struct mlx4_en_priv *priv)
8181
{
8282
u32 loopback_ok = 0;
8383
int i;
84-
84+
bool gro_enabled;
8585

8686
priv->loopback_ok = 0;
8787
priv->validate_loopback = 1;
88+
gro_enabled = priv->dev->features & NETIF_F_GRO;
8889

8990
mlx4_en_update_loopback_state(priv->dev, priv->dev->features);
91+
priv->dev->features &= ~NETIF_F_GRO;
9092

9193
/* xmit */
9294
if (mlx4_en_test_loopback_xmit(priv)) {
@@ -108,6 +110,10 @@ static int mlx4_en_test_loopback(struct mlx4_en_priv *priv)
108110
mlx4_en_test_loopback_exit:
109111

110112
priv->validate_loopback = 0;
113+
114+
if (gro_enabled)
115+
priv->dev->features |= NETIF_F_GRO;
116+
111117
mlx4_en_update_loopback_state(priv->dev, priv->dev->features);
112118
return !loopback_ok;
113119
}

drivers/net/ethernet/mellanox/mlx4/qp.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,6 @@ int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp, gfp_t gfp)
412412

413413
EXPORT_SYMBOL_GPL(mlx4_qp_alloc);
414414

415-
#define MLX4_UPDATE_QP_SUPPORTED_ATTRS MLX4_UPDATE_QP_SMAC
416415
int mlx4_update_qp(struct mlx4_dev *dev, u32 qpn,
417416
enum mlx4_update_qp_attr attr,
418417
struct mlx4_update_qp_params *params)

drivers/net/ethernet/mellanox/mlx4/resource_tracker.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
713713
struct mlx4_vport_oper_state *vp_oper;
714714
struct mlx4_priv *priv;
715715
u32 qp_type;
716-
int port;
716+
int port, err = 0;
717717

718718
port = (qpc->pri_path.sched_queue & 0x40) ? 2 : 1;
719719
priv = mlx4_priv(dev);
@@ -738,7 +738,9 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
738738
} else {
739739
struct mlx4_update_qp_params params = {.flags = 0};
740740

741-
mlx4_update_qp(dev, qpn, MLX4_UPDATE_QP_VSD, &params);
741+
err = mlx4_update_qp(dev, qpn, MLX4_UPDATE_QP_VSD, &params);
742+
if (err)
743+
goto out;
742744
}
743745
}
744746

@@ -773,7 +775,8 @@ static int update_vport_qp_param(struct mlx4_dev *dev,
773775
qpc->pri_path.feup |= MLX4_FSM_FORCE_ETH_SRC_MAC;
774776
qpc->pri_path.grh_mylmc = (0x80 & qpc->pri_path.grh_mylmc) + vp_oper->mac_idx;
775777
}
776-
return 0;
778+
out:
779+
return err;
777780
}
778781

779782
static int mpt_mask(struct mlx4_dev *dev)

include/linux/mlx4/qp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ struct mlx4_wqe_inline_seg {
427427

428428
enum mlx4_update_qp_attr {
429429
MLX4_UPDATE_QP_SMAC = 1 << 0,
430-
MLX4_UPDATE_QP_VSD = 1 << 2,
430+
MLX4_UPDATE_QP_VSD = 1 << 1,
431431
MLX4_UPDATE_QP_SUPPORTED_ATTRS = (1 << 2) - 1
432432
};
433433

0 commit comments

Comments
 (0)