diff options
author | Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> | 2012-02-03 09:06:49 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-02-04 15:59:30 -0500 |
commit | e02ef3311ae7329335d7c2b954b3988f7628a109 (patch) | |
tree | ee2a98a8b2e453c3aa16f3d55cc2986f13325d94 /drivers/net/ethernet/qlogic/qlge | |
parent | 97bf2262e7f8177706ecdac897be165c0b455c6f (diff) |
qlge: Fixed invalid reference to ip header
we have copied skb into addr(page), skb->data doesn't contain ip
header information.
Signed-off-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlge')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlge/qlge_main.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c index b54898737284..582b23746876 100644 --- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c +++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c | |||
@@ -1576,13 +1576,14 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev, | |||
1576 | } else if ((ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_U) && | 1576 | } else if ((ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_U) && |
1577 | (ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) { | 1577 | (ib_mac_rsp->flags3 & IB_MAC_IOCB_RSP_V4)) { |
1578 | /* Unfragmented ipv4 UDP frame. */ | 1578 | /* Unfragmented ipv4 UDP frame. */ |
1579 | struct iphdr *iph = (struct iphdr *) skb->data; | 1579 | struct iphdr *iph = |
1580 | (struct iphdr *) ((u8 *)addr + ETH_HLEN); | ||
1580 | if (!(iph->frag_off & | 1581 | if (!(iph->frag_off & |
1581 | cpu_to_be16(IP_MF|IP_OFFSET))) { | 1582 | cpu_to_be16(IP_MF|IP_OFFSET))) { |
1582 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 1583 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
1583 | netif_printk(qdev, rx_status, KERN_DEBUG, | 1584 | netif_printk(qdev, rx_status, KERN_DEBUG, |
1584 | qdev->ndev, | 1585 | qdev->ndev, |
1585 | "TCP checksum done!\n"); | 1586 | "UDP checksum done!\n"); |
1586 | } | 1587 | } |
1587 | } | 1588 | } |
1588 | } | 1589 | } |
@@ -1690,7 +1691,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev, | |||
1690 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 1691 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
1691 | netif_printk(qdev, rx_status, KERN_DEBUG, | 1692 | netif_printk(qdev, rx_status, KERN_DEBUG, |
1692 | qdev->ndev, | 1693 | qdev->ndev, |
1693 | "TCP checksum done!\n"); | 1694 | "UDP checksum done!\n"); |
1694 | } | 1695 | } |
1695 | } | 1696 | } |
1696 | } | 1697 | } |