From 0b41b570f0c9fbe6bfdc9683b79c00d2d08addfb Mon Sep 17 00:00:00 2001 From: Yevgeny Petrilin Date: Tue, 18 Oct 2011 01:50:42 +0000 Subject: [PATCH] --- yaml --- r: 266857 b: refs/heads/master c: f3a9d1f25dfeadf22c775880633a587cc6778872 h: refs/heads/master i: 266855: d2ddf4b78fc1be12ed2b2bd38b506843c2a90367 v: v3 --- [refs] | 2 +- trunk/drivers/net/ethernet/mellanox/mlx4/en_rx.c | 4 ++++ trunk/drivers/net/ethernet/mellanox/mlx4/fw.c | 1 + trunk/include/linux/mlx4/device.h | 1 + 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6518a89dfa48..91a1e14c136d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: e72ebf5a578464204c8418d7d9b375333bb33161 +refs/heads/master: f3a9d1f25dfeadf22c775880633a587cc6778872 diff --git a/trunk/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/trunk/drivers/net/ethernet/mellanox/mlx4/en_rx.c index 46a0df9afc3c..c47d73707f2c 100644 --- a/trunk/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/trunk/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -806,6 +806,10 @@ static int mlx4_en_config_rss_qp(struct mlx4_en_priv *priv, int qpn, qpn, ring->cqn, context); context->db_rec_addr = cpu_to_be64(ring->wqres.db.dma); + /* Cancel FCS removal if FW allows */ + if (mdev->dev->caps.flags & MLX4_DEV_CAP_FLAG_FCS_KEEP) + context->param3 |= cpu_to_be32(1 << 29); + err = mlx4_qp_to_ready(mdev->dev, &ring->wqres.mtt, context, qp, state); if (err) { mlx4_qp_remove(mdev->dev, qp); diff --git a/trunk/drivers/net/ethernet/mellanox/mlx4/fw.c b/trunk/drivers/net/ethernet/mellanox/mlx4/fw.c index 7eb8ba822e97..ed452ddfe342 100644 --- a/trunk/drivers/net/ethernet/mellanox/mlx4/fw.c +++ b/trunk/drivers/net/ethernet/mellanox/mlx4/fw.c @@ -101,6 +101,7 @@ static void dump_dev_cap_flags(struct mlx4_dev *dev, u64 flags) [25] = "Router support", [30] = "IBoE support", [32] = "Unicast loopback support", + [34] = "FCS header control", [38] = "Wake On LAN support", [40] = "UDP RSS support", [41] = "Unicast VEP steering support", diff --git a/trunk/include/linux/mlx4/device.h b/trunk/include/linux/mlx4/device.h index 53ef894bfa05..2366f94a095a 100644 --- a/trunk/include/linux/mlx4/device.h +++ b/trunk/include/linux/mlx4/device.h @@ -75,6 +75,7 @@ enum { MLX4_DEV_CAP_FLAG_UD_MCAST = 1LL << 21, MLX4_DEV_CAP_FLAG_IBOE = 1LL << 30, MLX4_DEV_CAP_FLAG_UC_LOOPBACK = 1LL << 32, + MLX4_DEV_CAP_FLAG_FCS_KEEP = 1LL << 34, MLX4_DEV_CAP_FLAG_WOL = 1LL << 38, MLX4_DEV_CAP_FLAG_UDP_RSS = 1LL << 40, MLX4_DEV_CAP_FLAG_VEP_UC_STEER = 1LL << 41,