diff options
author | Dmitry Kravkov <dmitry@broadcom.com> | 2011-12-12 18:40:53 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-13 13:30:45 -0500 |
commit | 036d2df9b3167598a9c9f1c13d9039f7e6cb0083 (patch) | |
tree | 691f60d1fe4f2ae3238d8b3284aa8b24e25acbc3 | |
parent | 90b41a1cd44cc4e507b554ae5a36562a1ba9a4e8 (diff) |
bnx2x: properly update skb when mtu > 1500
Since commit e52fcb2462ac484e6dd6e68869536609f0216938 newly allocated
skb for small packets are not updated properly and dropped by stack.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Acked-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c index 477bc9713a66..64f5cf5c68d1 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | |||
@@ -731,22 +731,22 @@ reuse_rx: | |||
731 | bnx2x_reuse_rx_data(fp, bd_cons, bd_prod); | 731 | bnx2x_reuse_rx_data(fp, bd_cons, bd_prod); |
732 | goto next_rx; | 732 | goto next_rx; |
733 | } | 733 | } |
734 | } | ||
734 | 735 | ||
735 | skb_put(skb, len); | 736 | skb_put(skb, len); |
736 | skb->protocol = eth_type_trans(skb, bp->dev); | 737 | skb->protocol = eth_type_trans(skb, bp->dev); |
737 | 738 | ||
738 | /* Set Toeplitz hash for a none-LRO skb */ | 739 | /* Set Toeplitz hash for a none-LRO skb */ |
739 | skb->rxhash = bnx2x_get_rxhash(bp, cqe_fp); | 740 | skb->rxhash = bnx2x_get_rxhash(bp, cqe_fp); |
740 | 741 | ||
741 | skb_checksum_none_assert(skb); | 742 | skb_checksum_none_assert(skb); |
742 | 743 | ||
743 | if (bp->dev->features & NETIF_F_RXCSUM) { | 744 | if (bp->dev->features & NETIF_F_RXCSUM) { |
744 | 745 | ||
745 | if (likely(BNX2X_RX_CSUM_OK(cqe))) | 746 | if (likely(BNX2X_RX_CSUM_OK(cqe))) |
746 | skb->ip_summed = CHECKSUM_UNNECESSARY; | 747 | skb->ip_summed = CHECKSUM_UNNECESSARY; |
747 | else | 748 | else |
748 | fp->eth_q_stats.hw_csum_err++; | 749 | fp->eth_q_stats.hw_csum_err++; |
749 | } | ||
750 | } | 750 | } |
751 | 751 | ||
752 | skb_record_rx_queue(skb, fp->rx_queue); | 752 | skb_record_rx_queue(skb, fp->rx_queue); |