aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Kravkov <dmitry@broadcom.com>2011-12-12 18:40:53 -0500
committerDavid S. Miller <davem@davemloft.net>2011-12-13 13:30:45 -0500
commit036d2df9b3167598a9c9f1c13d9039f7e6cb0083 (patch)
tree691f60d1fe4f2ae3238d8b3284aa8b24e25acbc3
parent90b41a1cd44cc4e507b554ae5a36562a1ba9a4e8 (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.c22
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);