OSDN Git Service

MIPS: Octeon: Fix to IP checksum offloading in Little Endian
authorPaul Martin <paul.martin@codethink.co.uk>
Mon, 30 Mar 2015 16:01:01 +0000 (17:01 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 1 Apr 2015 15:22:15 +0000 (17:22 +0200)
When hardware checksum generation is switched on the checksum
generation was only being signalled to the hardware correctly
in Big Endian mode.

Signed-off-by: Paul Martin <paul.martin@codethink.co.uk>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9634/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
drivers/staging/octeon/ethernet-tx.c

index a078b90..5b9ac1f 100644 (file)
@@ -413,7 +413,7 @@ dont_put_skbuff_in_hw:
        /* Check if we can use the hardware checksumming */
        if (USE_HW_TCPUDP_CHECKSUM && (skb->protocol == htons(ETH_P_IP)) &&
            (ip_hdr(skb)->version == 4) && (ip_hdr(skb)->ihl == 5) &&
-           ((ip_hdr(skb)->frag_off == 0) || (ip_hdr(skb)->frag_off == 1 << 14))
+           ((ip_hdr(skb)->frag_off == 0) || (ip_hdr(skb)->frag_off == htons(1 << 14)))
            && ((ip_hdr(skb)->protocol == IPPROTO_TCP)
                || (ip_hdr(skb)->protocol == IPPROTO_UDP))) {
                /* Use hardware checksum calc */