qlge: fix endian issue
authorLi RongQing <roy.qing.li@gmail.com>
Mon, 9 Jul 2012 22:02:42 +0000 (22:02 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Jul 2012 08:31:24 +0000 (01:31 -0700)
commit 6d29b1ef introduces a bug, ntohs is __be16_to_cpu,
not cpu_to_be16.

We always use htons on IP_OFFSET and IP_MF, then compare
with network package.

Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlge/qlge_main.c

index 31cae42..3769f57 100644 (file)
@@ -1567,7 +1567,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
                        struct iphdr *iph =
                                (struct iphdr *) ((u8 *)addr + ETH_HLEN);
                        if (!(iph->frag_off &
-                               cpu_to_be16(IP_MF|IP_OFFSET))) {
+                               htons(IP_MF|IP_OFFSET))) {
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
                                netif_printk(qdev, rx_status, KERN_DEBUG,
                                             qdev->ndev,
@@ -1665,7 +1665,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
                        /* Unfragmented ipv4 UDP frame. */
                        struct iphdr *iph = (struct iphdr *) skb->data;
                        if (!(iph->frag_off &
-                               ntohs(IP_MF|IP_OFFSET))) {
+                               htons(IP_MF|IP_OFFSET))) {
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
                                netif_printk(qdev, rx_status, KERN_DEBUG,
                                             qdev->ndev,
@@ -1969,7 +1969,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
                /* Unfragmented ipv4 UDP frame. */
                        struct iphdr *iph = (struct iphdr *) skb->data;
                        if (!(iph->frag_off &
-                               ntohs(IP_MF|IP_OFFSET))) {
+                               htons(IP_MF|IP_OFFSET))) {
                                skb->ip_summed = CHECKSUM_UNNECESSARY;
                                netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev,
                                             "TCP checksum done!\n");