git.openpandora.org
/
pandora-kernel.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e9f839f
)
sky2: Fix checksum endianness
author
Anton Vorontsov
<avorontsov@ru.mvista.com>
Fri, 26 Jun 2009 16:28:42 +0000
(09:28 -0700)
committer
Greg Kroah-Hartman
<gregkh@suse.de>
Thu, 30 Jul 2009 23:06:13 +0000
(16:06 -0700)
[ Upstream commit
b9389796fa4c87fbdff33816e317cdae5f36dd0b
]
sky2 driver on PowerPC targets floods kernel log with following errors:
eth1: hw csum failure.
Call Trace:
[
ef84b8a0
] [
c00075e4
] show_stack+0x50/0x160 (unreliable)
[
ef84b8d0
] [
c02fa178
] netdev_rx_csum_fault+0x3c/0x5c
[
ef84b8f0
] [
c02f6920
] __skb_checksum_complete_head+0x7c/0x84
[
ef84b900
] [
c02f693c
] __skb_checksum_complete+0x14/0x24
[
ef84b910
] [
c0337e08
] tcp_v4_rcv+0x4c8/0x6f8
[
ef84b940
] [
c031a9c8
] ip_local_deliver+0x98/0x210
[
ef84b960
] [
c031a788
] ip_rcv+0x38c/0x534
[
ef84b990
] [
c0300338
] netif_receive_skb+0x260/0x36c
[
ef84b9c0
] [
c025de00
] sky2_poll+0x5dc/0xcf8
[
ef84ba20
] [
c02fb7fc
] net_rx_action+0xc0/0x144
The NIC is Yukon-2 EC chip revision 1.
Converting checksum field from le16 to CPU byte order fixes the issue.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/sky2.c
patch
|
blob
|
history
diff --git
a/drivers/net/sky2.c
b/drivers/net/sky2.c
index
b68bc39
..
42963a9
100644
(file)
--- a/
drivers/net/sky2.c
+++ b/
drivers/net/sky2.c
@@
-2393,7
+2393,7
@@
static int sky2_status_intr(struct sky2_hw *hw, int to_do, u16 idx)
if (likely(status >> 16 == (status & 0xffff))) {
skb = sky2->rx_ring[sky2->rx_next].skb;
skb->ip_summed = CHECKSUM_COMPLETE;
- skb->csum =
status & 0xffff
;
+ skb->csum =
le16_to_cpu(status)
;
} else {
printk(KERN_NOTICE PFX "%s: hardware receive "
"checksum problem (status = %#x)\n",