summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx5/cq.c
diff options
context:
space:
mode:
authorErez Shitrit <erezsh@mellanox.com>2016-02-21 16:27:18 +0200
committerDoug Ledford <dledford@redhat.com>2016-03-01 10:57:15 -0500
commitc7ce833b364bc19ef51b3c973c94a863e4af0e06 (patch)
treec0b83256f89645abd69d5d450d91c1e52bff1ec0 /drivers/infiniband/hw/mlx5/cq.c
parentf031396531fe2b1a6ffb4fa5eceb9c1fa276869a (diff)
downloadop-kernel-dev-c7ce833b364bc19ef51b3c973c94a863e4af0e06.zip
op-kernel-dev-c7ce833b364bc19ef51b3c973c94a863e4af0e06.tar.gz
IB/mlx5: Add support for CSUM in RX flow
The driver checks the csum from the HW when completion arrived and marks it in the wc->wc_flags field for the ulp drivers. These is for packets from type IB_WC_RECV only. Signed-off-by: Erez Shitrit <erezsh@mellanox.com> Signed-off-by: Eran Ben Elisha <eranbe@mellanox.com> Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/hw/mlx5/cq.c')
-rw-r--r--drivers/infiniband/hw/mlx5/cq.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/cq.c
index fd1de31..5ece9a8 100644
--- a/drivers/infiniband/hw/mlx5/cq.c
+++ b/drivers/infiniband/hw/mlx5/cq.c
@@ -207,7 +207,10 @@ static void handle_responder(struct ib_wc *wc, struct mlx5_cqe64 *cqe,
break;
case MLX5_CQE_RESP_SEND:
wc->opcode = IB_WC_RECV;
- wc->wc_flags = 0;
+ wc->wc_flags = IB_WC_IP_CSUM_OK;
+ if (unlikely(!((cqe->hds_ip_ext & CQE_L3_OK) &&
+ (cqe->hds_ip_ext & CQE_L4_OK))))
+ wc->wc_flags = 0;
break;
case MLX5_CQE_RESP_SEND_IMM:
wc->opcode = IB_WC_RECV;
OpenPOWER on IntegriCloud