IB/mlx4: Set link type for RAW PACKET QPs in the QP context
authorEli Cohen <eli@mellanox.com>
Sun, 21 Apr 2013 15:10:01 +0000 (15:10 +0000)
committerRoland Dreier <roland@purestorage.com>
Thu, 25 Apr 2013 00:51:28 +0000 (17:51 -0700)
When the link type is Ethernet, setting the link type in the QP
context will enable TCP/IP stateless offloads (checksum, LSO, RSS) for
RAW PACKET Ethernet QPs.  For IB UD QPs this worked OK since the value
assumed by the firmware for IB link layer is zero.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx4/qp.c

index d4e87c28507e7e7e9826b0ec6f3b2c62eb915fd0..4f10af2905b505e1b9ae5c8a2ab13a634cdc4b4a 100644 (file)
@@ -1460,6 +1460,10 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
                }
        }
 
+       if (qp->ibqp.qp_type == IB_QPT_RAW_PACKET)
+               context->pri_path.ackto = (context->pri_path.ackto & 0xf8) |
+                                       MLX4_IB_LINK_TYPE_ETH;
+
        if (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD  &&
            attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY && attr->en_sqd_async_notify)
                sqd_event = 1;