Commit 0d653ed8 authored by Li RongQing's avatar Li RongQing Committed by David S. Miller

qlge: fix endian issue

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: default avatarLi RongQing <roy.qing.li@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5b70ca35
...@@ -1567,7 +1567,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev, ...@@ -1567,7 +1567,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
struct iphdr *iph = struct iphdr *iph =
(struct iphdr *) ((u8 *)addr + ETH_HLEN); (struct iphdr *) ((u8 *)addr + ETH_HLEN);
if (!(iph->frag_off & if (!(iph->frag_off &
cpu_to_be16(IP_MF|IP_OFFSET))) { htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG, netif_printk(qdev, rx_status, KERN_DEBUG,
qdev->ndev, qdev->ndev,
...@@ -1665,7 +1665,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev, ...@@ -1665,7 +1665,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
/* Unfragmented ipv4 UDP frame. */ /* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data; struct iphdr *iph = (struct iphdr *) skb->data;
if (!(iph->frag_off & if (!(iph->frag_off &
ntohs(IP_MF|IP_OFFSET))) { htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG, netif_printk(qdev, rx_status, KERN_DEBUG,
qdev->ndev, qdev->ndev,
...@@ -1969,7 +1969,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev, ...@@ -1969,7 +1969,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
/* Unfragmented ipv4 UDP frame. */ /* Unfragmented ipv4 UDP frame. */
struct iphdr *iph = (struct iphdr *) skb->data; struct iphdr *iph = (struct iphdr *) skb->data;
if (!(iph->frag_off & if (!(iph->frag_off &
ntohs(IP_MF|IP_OFFSET))) { htons(IP_MF|IP_OFFSET))) {
skb->ip_summed = CHECKSUM_UNNECESSARY; skb->ip_summed = CHECKSUM_UNNECESSARY;
netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev, netif_printk(qdev, rx_status, KERN_DEBUG, qdev->ndev,
"TCP checksum done!\n"); "TCP checksum done!\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment