提交 97b290b5 编写于 作者: P Paul Martin 提交者: Ralf Baechle

MIPS: Octeon: Fix to IP checksum offloading in Little Endian

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: NPaul Martin <paul.martin@codethink.co.uk>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/9634/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 d2a948d2
...@@ -413,7 +413,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -413,7 +413,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev)
/* Check if we can use the hardware checksumming */ /* Check if we can use the hardware checksumming */
if (USE_HW_TCPUDP_CHECKSUM && (skb->protocol == htons(ETH_P_IP)) && if (USE_HW_TCPUDP_CHECKSUM && (skb->protocol == htons(ETH_P_IP)) &&
(ip_hdr(skb)->version == 4) && (ip_hdr(skb)->ihl == 5) && (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_TCP)
|| (ip_hdr(skb)->protocol == IPPROTO_UDP))) { || (ip_hdr(skb)->protocol == IPPROTO_UDP))) {
/* Use hardware checksum calc */ /* Use hardware checksum calc */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册