diff options
Diffstat (limited to 'drivers/net/mv643xx_eth.c')
-rw-r--r-- | drivers/net/mv643xx_eth.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c index 408827de7d3e..94c13be292a3 100644 --- a/drivers/net/mv643xx_eth.c +++ b/drivers/net/mv643xx_eth.c | |||
@@ -546,11 +546,8 @@ static int rxq_process(struct rx_queue *rxq, int budget) | |||
546 | */ | 546 | */ |
547 | skb_put(skb, byte_cnt - 2 - 4); | 547 | skb_put(skb, byte_cnt - 2 - 4); |
548 | 548 | ||
549 | if (cmd_sts & LAYER_4_CHECKSUM_OK) { | 549 | if (cmd_sts & LAYER_4_CHECKSUM_OK) |
550 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 550 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
551 | skb->csum = htons( | ||
552 | (cmd_sts & 0x0007fff8) >> 3); | ||
553 | } | ||
554 | skb->protocol = eth_type_trans(skb, mp->dev); | 551 | skb->protocol = eth_type_trans(skb, mp->dev); |
555 | netif_receive_skb(skb); | 552 | netif_receive_skb(skb); |
556 | } | 553 | } |
@@ -1994,9 +1991,10 @@ static void port_start(struct mv643xx_eth_private *mp) | |||
1994 | 1991 | ||
1995 | /* | 1992 | /* |
1996 | * Receive all unmatched unicast, TCP, UDP, BPDU and broadcast | 1993 | * Receive all unmatched unicast, TCP, UDP, BPDU and broadcast |
1997 | * frames to RX queue #0. | 1994 | * frames to RX queue #0, and include the pseudo-header when |
1995 | * calculating receive checksums. | ||
1998 | */ | 1996 | */ |
1999 | wrl(mp, PORT_CONFIG(mp->port_num), 0x00000000); | 1997 | wrl(mp, PORT_CONFIG(mp->port_num), 0x02000000); |
2000 | 1998 | ||
2001 | /* | 1999 | /* |
2002 | * Treat BPDUs as normal multicasts, and disable partition mode. | 2000 | * Treat BPDUs as normal multicasts, and disable partition mode. |