RDMA/nes: Fix for crash when TX checksum offload is off
authorTatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Thu, 20 Sep 2012 20:55:33 +0000 (20:55 +0000)
committerRoland Dreier <roland@purestorage.com>
Mon, 1 Oct 2012 03:34:54 +0000 (20:34 -0700)
When TX checksum offload is disabled for an iWarp connection,
skb->ip_summed needs to be set to CHECKSUM_NONE.

Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/nes/nes_cm.c

index 49a9383137db9ad3abf83ca34c4fa0339b46d2b9..cfaacaf6bf5f9c8e11ce0bb5c0dce62c54e15ae4 100644 (file)
@@ -430,6 +430,8 @@ static void form_cm_frame(struct sk_buff *skb,
        buf += sizeof(*tcph);
 
        skb->ip_summed = CHECKSUM_PARTIAL;
+       if (!(cm_node->netdev->features & NETIF_F_IP_CSUM))
+               skb->ip_summed = CHECKSUM_NONE;
        skb->protocol = htons(0x800);
        skb->data_len = 0;
        skb->mac_len = ETH_HLEN;