aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-09-02 16:07:41 -0400
committerDavid S. Miller <davem@davemloft.net>2010-09-02 22:06:22 -0400
commitbc8acf2c8c3e43fcc192762a9f964b3e9a17748b (patch)
treee3a91392771a22390e59c24fcb7bad3045ce17d1
parent7162f6691e9d39d8d866574687cddb3f1ec65d72 (diff)
drivers/net: avoid some skb->ip_summed initializations
fresh skbs have ip_summed set to CHECKSUM_NONE (0) We can avoid setting again skb->ip_summed to CHECKSUM_NONE in drivers. Introduce skb_checksum_none_assert() helper so that we keep this assertion documented in driver sources. Change most occurrences of : skb->ip_summed = CHECKSUM_NONE; by : skb_checksum_none_assert(skb); Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/8139cp.c2
-rw-r--r--drivers/net/acenic.c2
-rw-r--r--drivers/net/atl1c/atl1c_main.c2
-rw-r--r--drivers/net/atl1e/atl1e_main.c2
-rw-r--r--drivers/net/atlx/atl1.c2
-rw-r--r--drivers/net/b44.c2
-rw-r--r--drivers/net/benet/be_main.c2
-rw-r--r--drivers/net/bna/bnad.c2
-rw-r--r--drivers/net/bnx2.c2
-rw-r--r--drivers/net/bnx2x/bnx2x_cmn.c2
-rw-r--r--drivers/net/cassini.c2
-rw-r--r--drivers/net/chelsio/sge.c2
-rw-r--r--drivers/net/cpmac.c2
-rw-r--r--drivers/net/cxgb3/sge.c2
-rw-r--r--drivers/net/cxgb4/sge.c2
-rw-r--r--drivers/net/cxgb4vf/sge.c2
-rw-r--r--drivers/net/dm9000.c2
-rw-r--r--drivers/net/e1000/e1000_main.c3
-rw-r--r--drivers/net/e1000e/netdev.c3
-rw-r--r--drivers/net/gianfar.c2
-rw-r--r--drivers/net/greth.c2
-rw-r--r--drivers/net/ibmlana.c2
-rw-r--r--drivers/net/igb/igb_main.c2
-rw-r--r--drivers/net/igbvf/netdev.c2
-rw-r--r--drivers/net/ipg.c6
-rw-r--r--drivers/net/iseries_veth.c2
-rw-r--r--drivers/net/ixgb/ixgb_main.c4
-rw-r--r--drivers/net/ixgbe/ixgbe_fcoe.c5
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c2
-rw-r--r--drivers/net/ixgbevf/ixgbevf_main.c2
-rw-r--r--drivers/net/jme.c2
-rw-r--r--drivers/net/ll_temac_main.c2
-rw-r--r--drivers/net/macb.c2
-rw-r--r--drivers/net/niu.c2
-rw-r--r--drivers/net/ns83820.c2
-rw-r--r--drivers/net/pasemi_mac.c2
-rw-r--r--drivers/net/ps3_gelic_net.c4
-rw-r--r--drivers/net/qla3xxx.c4
-rw-r--r--drivers/net/qlcnic/qlcnic_init.c2
-rw-r--r--drivers/net/qlge/qlge_main.c6
-rw-r--r--drivers/net/r8169.c2
-rw-r--r--drivers/net/s2io.c4
-rw-r--r--drivers/net/sb1250-mac.c2
-rw-r--r--drivers/net/sfc/rx.c2
-rw-r--r--drivers/net/sh_eth.c2
-rw-r--r--drivers/net/smsc911x.c2
-rw-r--r--drivers/net/spider_net.c4
-rw-r--r--drivers/net/stmmac/stmmac_main.c2
-rw-r--r--drivers/net/tehuti.c5
-rw-r--r--drivers/net/tg3.c2
-rw-r--r--drivers/net/typhoon.c2
-rw-r--r--drivers/net/via-velocity.c2
-rw-r--r--drivers/net/vmxnet3/vmxnet3_drv.c4
-rw-r--r--drivers/net/vxge/vxge-main.c2
-rw-r--r--drivers/net/xilinx_emaclite.c2
-rw-r--r--include/linux/skbuff.h15
56 files changed, 86 insertions, 67 deletions
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 4a4f6b81e32d..237d4ea5a416 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -561,7 +561,7 @@ rx_status_loop:
561 if (cp_rx_csum_ok(status)) 561 if (cp_rx_csum_ok(status))
562 skb->ip_summed = CHECKSUM_UNNECESSARY; 562 skb->ip_summed = CHECKSUM_UNNECESSARY;
563 else 563 else
564 skb->ip_summed = CHECKSUM_NONE; 564 skb_checksum_none_assert(skb);
565 565
566 skb_put(skb, len); 566 skb_put(skb, len);
567 567
diff --git a/drivers/net/acenic.c b/drivers/net/acenic.c
index b9a591604e5b..41d9911202d0 100644
--- a/drivers/net/acenic.c
+++ b/drivers/net/acenic.c
@@ -2033,7 +2033,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
2033 skb->csum = htons(csum); 2033 skb->csum = htons(csum);
2034 skb->ip_summed = CHECKSUM_COMPLETE; 2034 skb->ip_summed = CHECKSUM_COMPLETE;
2035 } else { 2035 } else {
2036 skb->ip_summed = CHECKSUM_NONE; 2036 skb_checksum_none_assert(skb);
2037 } 2037 }
2038 2038
2039 /* send it up */ 2039 /* send it up */
diff --git a/drivers/net/atl1c/atl1c_main.c b/drivers/net/atl1c/atl1c_main.c
index 61f1634ab3f8..553230eb365c 100644
--- a/drivers/net/atl1c/atl1c_main.c
+++ b/drivers/net/atl1c/atl1c_main.c
@@ -1719,7 +1719,7 @@ static inline void atl1c_rx_checksum(struct atl1c_adapter *adapter,
1719 * cannot figure out if the packet is fragmented or not, 1719 * cannot figure out if the packet is fragmented or not,
1720 * so we tell the KERNEL CHECKSUM_NONE 1720 * so we tell the KERNEL CHECKSUM_NONE
1721 */ 1721 */
1722 skb->ip_summed = CHECKSUM_NONE; 1722 skb_checksum_none_assert(skb);
1723} 1723}
1724 1724
1725static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid) 1725static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid)
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 1ae44bb26317..56ace3fbe40d 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -1331,7 +1331,7 @@ static inline void atl1e_rx_checksum(struct atl1e_adapter *adapter,
1331 u16 pkt_flags; 1331 u16 pkt_flags;
1332 u16 err_flags; 1332 u16 err_flags;
1333 1333
1334 skb->ip_summed = CHECKSUM_NONE; 1334 skb_checksum_none_assert(skb);
1335 pkt_flags = prrs->pkt_flag; 1335 pkt_flags = prrs->pkt_flag;
1336 err_flags = prrs->err_flag; 1336 err_flags = prrs->err_flag;
1337 if (((pkt_flags & RRS_IS_IPV4) || (pkt_flags & RRS_IS_IPV6)) && 1337 if (((pkt_flags & RRS_IS_IPV4) || (pkt_flags & RRS_IS_IPV6)) &&
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 5837b0184d4b..e1e0171d6e62 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -1805,7 +1805,7 @@ static void atl1_rx_checksum(struct atl1_adapter *adapter,
1805 * the higher layers and let it be sorted out there. 1805 * the higher layers and let it be sorted out there.
1806 */ 1806 */
1807 1807
1808 skb->ip_summed = CHECKSUM_NONE; 1808 skb_checksum_none_assert(skb);
1809 1809
1810 if (unlikely(rrd->pkt_flg & PACKET_FLAG_ERR)) { 1810 if (unlikely(rrd->pkt_flg & PACKET_FLAG_ERR)) {
1811 if (rrd->err_flg & (ERR_FLAG_CRC | ERR_FLAG_TRUNC | 1811 if (rrd->err_flg & (ERR_FLAG_CRC | ERR_FLAG_TRUNC |
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 37617abc1647..7342308718a0 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -818,7 +818,7 @@ static int b44_rx(struct b44 *bp, int budget)
818 copy_skb->data, len); 818 copy_skb->data, len);
819 skb = copy_skb; 819 skb = copy_skb;
820 } 820 }
821 skb->ip_summed = CHECKSUM_NONE; 821 skb_checksum_none_assert(skb);
822 skb->protocol = eth_type_trans(skb, bp->dev); 822 skb->protocol = eth_type_trans(skb, bp->dev);
823 netif_receive_skb(skb); 823 netif_receive_skb(skb);
824 received++; 824 received++;
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index 9db10fec8235..dcee7a20c0b9 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -1016,7 +1016,7 @@ static void be_rx_compl_process(struct be_adapter *adapter,
1016 skb_fill_rx_data(adapter, skb, rxcp, num_rcvd); 1016 skb_fill_rx_data(adapter, skb, rxcp, num_rcvd);
1017 1017
1018 if (do_pkt_csum(rxcp, adapter->rx_csum)) 1018 if (do_pkt_csum(rxcp, adapter->rx_csum))
1019 skb->ip_summed = CHECKSUM_NONE; 1019 skb_checksum_none_assert(skb);
1020 else 1020 else
1021 skb->ip_summed = CHECKSUM_UNNECESSARY; 1021 skb->ip_summed = CHECKSUM_UNNECESSARY;
1022 1022
diff --git a/drivers/net/bna/bnad.c b/drivers/net/bna/bnad.c
index 79c4c2441449..44adc7aefddc 100644
--- a/drivers/net/bna/bnad.c
+++ b/drivers/net/bna/bnad.c
@@ -510,7 +510,7 @@ bnad_poll_cq(struct bnad *bnad, struct bna_ccb *ccb, int budget)
510 (flags & BNA_CQ_EF_L4_CKSUM_OK))) 510 (flags & BNA_CQ_EF_L4_CKSUM_OK)))
511 skb->ip_summed = CHECKSUM_UNNECESSARY; 511 skb->ip_summed = CHECKSUM_UNNECESSARY;
512 else 512 else
513 skb->ip_summed = CHECKSUM_NONE; 513 skb_checksum_none_assert(skb);
514 514
515 rcb->rxq->rx_packets++; 515 rcb->rxq->rx_packets++;
516 rcb->rxq->rx_bytes += skb->len; 516 rcb->rxq->rx_bytes += skb->len;
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index a0e02aa42214..4ff76e38e788 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -3218,7 +3218,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
3218 3218
3219 } 3219 }
3220 3220
3221 skb->ip_summed = CHECKSUM_NONE; 3221 skb_checksum_none_assert(skb);
3222 if (bp->rx_csum && 3222 if (bp->rx_csum &&
3223 (status & (L2_FHDR_STATUS_TCP_SEGMENT | 3223 (status & (L2_FHDR_STATUS_TCP_SEGMENT |
3224 L2_FHDR_STATUS_UDP_DATAGRAM))) { 3224 L2_FHDR_STATUS_UDP_DATAGRAM))) {
diff --git a/drivers/net/bnx2x/bnx2x_cmn.c b/drivers/net/bnx2x/bnx2x_cmn.c
index da96d1a18c20..0e4caf411905 100644
--- a/drivers/net/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/bnx2x/bnx2x_cmn.c
@@ -623,7 +623,7 @@ reuse_rx:
623 /* Set Toeplitz hash for a none-LRO skb */ 623 /* Set Toeplitz hash for a none-LRO skb */
624 bnx2x_set_skb_rxhash(bp, cqe, skb); 624 bnx2x_set_skb_rxhash(bp, cqe, skb);
625 625
626 skb->ip_summed = CHECKSUM_NONE; 626 skb_checksum_none_assert(skb);
627 if (bp->rx_csum) { 627 if (bp->rx_csum) {
628 if (likely(BNX2X_RX_CSUM_OK(cqe))) 628 if (likely(BNX2X_RX_CSUM_OK(cqe)))
629 skb->ip_summed = CHECKSUM_UNNECESSARY; 629 skb->ip_summed = CHECKSUM_UNNECESSARY;
diff --git a/drivers/net/cassini.c b/drivers/net/cassini.c
index 28c88eeec757..32aaadc4734f 100644
--- a/drivers/net/cassini.c
+++ b/drivers/net/cassini.c
@@ -2149,7 +2149,7 @@ end_copy_pkt:
2149 skb->csum = csum_unfold(~csum); 2149 skb->csum = csum_unfold(~csum);
2150 skb->ip_summed = CHECKSUM_COMPLETE; 2150 skb->ip_summed = CHECKSUM_COMPLETE;
2151 } else 2151 } else
2152 skb->ip_summed = CHECKSUM_NONE; 2152 skb_checksum_none_assert(skb);
2153 return len; 2153 return len;
2154} 2154}
2155 2155
diff --git a/drivers/net/chelsio/sge.c b/drivers/net/chelsio/sge.c
index f01cfdb995de..1950b9a20ecd 100644
--- a/drivers/net/chelsio/sge.c
+++ b/drivers/net/chelsio/sge.c
@@ -1388,7 +1388,7 @@ static void sge_rx(struct sge *sge, struct freelQ *fl, unsigned int len)
1388 ++st->rx_cso_good; 1388 ++st->rx_cso_good;
1389 skb->ip_summed = CHECKSUM_UNNECESSARY; 1389 skb->ip_summed = CHECKSUM_UNNECESSARY;
1390 } else 1390 } else
1391 skb->ip_summed = CHECKSUM_NONE; 1391 skb_checksum_none_assert(skb);
1392 1392
1393 if (unlikely(adapter->vlan_grp && p->vlan_valid)) { 1393 if (unlikely(adapter->vlan_grp && p->vlan_valid)) {
1394 st->vlan_xtract++; 1394 st->vlan_xtract++;
diff --git a/drivers/net/cpmac.c b/drivers/net/cpmac.c
index 5a5af1ca7541..fec939f8f65f 100644
--- a/drivers/net/cpmac.c
+++ b/drivers/net/cpmac.c
@@ -391,7 +391,7 @@ static struct sk_buff *cpmac_rx_one(struct cpmac_priv *priv,
391 if (likely(skb)) { 391 if (likely(skb)) {
392 skb_put(desc->skb, desc->datalen); 392 skb_put(desc->skb, desc->datalen);
393 desc->skb->protocol = eth_type_trans(desc->skb, priv->dev); 393 desc->skb->protocol = eth_type_trans(desc->skb, priv->dev);
394 desc->skb->ip_summed = CHECKSUM_NONE; 394 skb_checksum_none_assert(desc->skb);
395 priv->dev->stats.rx_packets++; 395 priv->dev->stats.rx_packets++;
396 priv->dev->stats.rx_bytes += desc->datalen; 396 priv->dev->stats.rx_bytes += desc->datalen;
397 result = desc->skb; 397 result = desc->skb;
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c
index 8ff96c6f6de5..c5a142bea5e9 100644
--- a/drivers/net/cxgb3/sge.c
+++ b/drivers/net/cxgb3/sge.c
@@ -2022,7 +2022,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
2022 qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++; 2022 qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++;
2023 skb->ip_summed = CHECKSUM_UNNECESSARY; 2023 skb->ip_summed = CHECKSUM_UNNECESSARY;
2024 } else 2024 } else
2025 skb->ip_summed = CHECKSUM_NONE; 2025 skb_checksum_none_assert(skb);
2026 skb_record_rx_queue(skb, qs - &adap->sge.qs[0]); 2026 skb_record_rx_queue(skb, qs - &adap->sge.qs[0]);
2027 2027
2028 if (unlikely(p->vlan_valid)) { 2028 if (unlikely(p->vlan_valid)) {
diff --git a/drivers/net/cxgb4/sge.c b/drivers/net/cxgb4/sge.c
index 6ddb3bb0ce67..9967f3debce7 100644
--- a/drivers/net/cxgb4/sge.c
+++ b/drivers/net/cxgb4/sge.c
@@ -1605,7 +1605,7 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp,
1605 rxq->stats.rx_cso++; 1605 rxq->stats.rx_cso++;
1606 } 1606 }
1607 } else 1607 } else
1608 skb->ip_summed = CHECKSUM_NONE; 1608 skb_checksum_none_assert(skb);
1609 1609
1610 if (unlikely(pkt->vlan_ex)) { 1610 if (unlikely(pkt->vlan_ex)) {
1611 struct vlan_group *grp = pi->vlan_grp; 1611 struct vlan_group *grp = pi->vlan_grp;
diff --git a/drivers/net/cxgb4vf/sge.c b/drivers/net/cxgb4vf/sge.c
index e00fd9c36e8b..f10864ddafbe 100644
--- a/drivers/net/cxgb4vf/sge.c
+++ b/drivers/net/cxgb4vf/sge.c
@@ -1534,7 +1534,7 @@ int t4vf_ethrx_handler(struct sge_rspq *rspq, const __be64 *rsp,
1534 } 1534 }
1535 rxq->stats.rx_cso++; 1535 rxq->stats.rx_cso++;
1536 } else 1536 } else
1537 skb->ip_summed = CHECKSUM_NONE; 1537 skb_checksum_none_assert(skb);
1538 1538
1539 if (unlikely(pkt->vlan_ex)) { 1539 if (unlikely(pkt->vlan_ex)) {
1540 struct vlan_group *grp = pi->vlan_grp; 1540 struct vlan_group *grp = pi->vlan_grp;
diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
index 4fd6b2b4554b..9f6aeefa06bf 100644
--- a/drivers/net/dm9000.c
+++ b/drivers/net/dm9000.c
@@ -1056,7 +1056,7 @@ dm9000_rx(struct net_device *dev)
1056 if ((((rxbyte & 0x1c) << 3) & rxbyte) == 0) 1056 if ((((rxbyte & 0x1c) << 3) & rxbyte) == 0)
1057 skb->ip_summed = CHECKSUM_UNNECESSARY; 1057 skb->ip_summed = CHECKSUM_UNNECESSARY;
1058 else 1058 else
1059 skb->ip_summed = CHECKSUM_NONE; 1059 skb_checksum_none_assert(skb);
1060 } 1060 }
1061 netif_rx(skb); 1061 netif_rx(skb);
1062 dev->stats.rx_packets++; 1062 dev->stats.rx_packets++;
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c
index 3e8ac4baae1b..17f5867b5d9b 100644
--- a/drivers/net/e1000/e1000_main.c
+++ b/drivers/net/e1000/e1000_main.c
@@ -3552,7 +3552,8 @@ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err,
3552 struct e1000_hw *hw = &adapter->hw; 3552 struct e1000_hw *hw = &adapter->hw;
3553 u16 status = (u16)status_err; 3553 u16 status = (u16)status_err;
3554 u8 errors = (u8)(status_err >> 24); 3554 u8 errors = (u8)(status_err >> 24);
3555 skb->ip_summed = CHECKSUM_NONE; 3555
3556 skb_checksum_none_assert(skb);
3556 3557
3557 /* 82543 or newer only */ 3558 /* 82543 or newer only */
3558 if (unlikely(hw->mac_type < e1000_82543)) return; 3559 if (unlikely(hw->mac_type < e1000_82543)) return;
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 5f3eac6432cb..c9b66f4727e4 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -475,7 +475,8 @@ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err,
475{ 475{
476 u16 status = (u16)status_err; 476 u16 status = (u16)status_err;
477 u8 errors = (u8)(status_err >> 24); 477 u8 errors = (u8)(status_err >> 24);
478 skb->ip_summed = CHECKSUM_NONE; 478
479 skb_checksum_none_assert(skb);
479 480
480 /* Ignore Checksum bit is set */ 481 /* Ignore Checksum bit is set */
481 if (status & E1000_RXD_STAT_IXSM) 482 if (status & E1000_RXD_STAT_IXSM)
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index e6048d6ab0ea..f30adbf86bb2 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -2654,7 +2654,7 @@ static inline void gfar_rx_checksum(struct sk_buff *skb, struct rxfcb *fcb)
2654 if ((fcb->flags & RXFCB_CSUM_MASK) == (RXFCB_CIP | RXFCB_CTU)) 2654 if ((fcb->flags & RXFCB_CSUM_MASK) == (RXFCB_CIP | RXFCB_CTU))
2655 skb->ip_summed = CHECKSUM_UNNECESSARY; 2655 skb->ip_summed = CHECKSUM_UNNECESSARY;
2656 else 2656 else
2657 skb->ip_summed = CHECKSUM_NONE; 2657 skb_checksum_none_assert(skb);
2658} 2658}
2659 2659
2660 2660
diff --git a/drivers/net/greth.c b/drivers/net/greth.c
index fbeaf70d1727..27d6960ce09e 100644
--- a/drivers/net/greth.c
+++ b/drivers/net/greth.c
@@ -893,7 +893,7 @@ static int greth_rx_gbit(struct net_device *dev, int limit)
893 if (greth->flags & GRETH_FLAG_RX_CSUM && hw_checksummed(status)) 893 if (greth->flags & GRETH_FLAG_RX_CSUM && hw_checksummed(status))
894 skb->ip_summed = CHECKSUM_UNNECESSARY; 894 skb->ip_summed = CHECKSUM_UNNECESSARY;
895 else 895 else
896 skb->ip_summed = CHECKSUM_NONE; 896 skb_checksum_none_assert(skb);
897 897
898 skb->protocol = eth_type_trans(skb, dev); 898 skb->protocol = eth_type_trans(skb, dev);
899 dev->stats.rx_packets++; 899 dev->stats.rx_packets++;
diff --git a/drivers/net/ibmlana.c b/drivers/net/ibmlana.c
index 294ccfb427cf..0037a696cd0a 100644
--- a/drivers/net/ibmlana.c
+++ b/drivers/net/ibmlana.c
@@ -602,7 +602,7 @@ static void irqrx_handler(struct net_device *dev)
602 /* set up skb fields */ 602 /* set up skb fields */
603 603
604 skb->protocol = eth_type_trans(skb, dev); 604 skb->protocol = eth_type_trans(skb, dev);
605 skb->ip_summed = CHECKSUM_NONE; 605 skb_checksum_none_assert(skb);
606 606
607 /* bookkeeping */ 607 /* bookkeeping */
608 dev->stats.rx_packets++; 608 dev->stats.rx_packets++;
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index d35cc38bf8b2..c4d861b557ca 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -5455,7 +5455,7 @@ static void igb_receive_skb(struct igb_q_vector *q_vector,
5455static inline void igb_rx_checksum_adv(struct igb_ring *ring, 5455static inline void igb_rx_checksum_adv(struct igb_ring *ring,
5456 u32 status_err, struct sk_buff *skb) 5456 u32 status_err, struct sk_buff *skb)
5457{ 5457{
5458 skb->ip_summed = CHECKSUM_NONE; 5458 skb_checksum_none_assert(skb);
5459 5459
5460 /* Ignore Checksum bit is set or checksum is disabled through ethtool */ 5460 /* Ignore Checksum bit is set or checksum is disabled through ethtool */
5461 if (!(ring->flags & IGB_RING_FLAG_RX_CSUM) || 5461 if (!(ring->flags & IGB_RING_FLAG_RX_CSUM) ||
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c
index c539f7c9c3e0..c7fab80d2490 100644
--- a/drivers/net/igbvf/netdev.c
+++ b/drivers/net/igbvf/netdev.c
@@ -103,7 +103,7 @@ static void igbvf_receive_skb(struct igbvf_adapter *adapter,
103static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter, 103static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter,
104 u32 status_err, struct sk_buff *skb) 104 u32 status_err, struct sk_buff *skb)
105{ 105{
106 skb->ip_summed = CHECKSUM_NONE; 106 skb_checksum_none_assert(skb);
107 107
108 /* Ignore Checksum bit is set or checksum is disabled through ethtool */ 108 /* Ignore Checksum bit is set or checksum is disabled through ethtool */
109 if ((status_err & E1000_RXD_STAT_IXSM) || 109 if ((status_err & E1000_RXD_STAT_IXSM) ||
diff --git a/drivers/net/ipg.c b/drivers/net/ipg.c
index 72e3d2da9e9f..dc0198092343 100644
--- a/drivers/net/ipg.c
+++ b/drivers/net/ipg.c
@@ -1213,7 +1213,7 @@ static void ipg_nic_rx_with_start_and_end(struct net_device *dev,
1213 1213
1214 skb_put(skb, framelen); 1214 skb_put(skb, framelen);
1215 skb->protocol = eth_type_trans(skb, dev); 1215 skb->protocol = eth_type_trans(skb, dev);
1216 skb->ip_summed = CHECKSUM_NONE; 1216 skb_checksum_none_assert(skb);
1217 netif_rx(skb); 1217 netif_rx(skb);
1218 sp->rx_buff[entry] = NULL; 1218 sp->rx_buff[entry] = NULL;
1219} 1219}
@@ -1278,7 +1278,7 @@ static void ipg_nic_rx_with_end(struct net_device *dev,
1278 jumbo->skb->protocol = 1278 jumbo->skb->protocol =
1279 eth_type_trans(jumbo->skb, dev); 1279 eth_type_trans(jumbo->skb, dev);
1280 1280
1281 jumbo->skb->ip_summed = CHECKSUM_NONE; 1281 skb_checksum_none_assert(jumbo->skb);
1282 netif_rx(jumbo->skb); 1282 netif_rx(jumbo->skb);
1283 } 1283 }
1284 } 1284 }
@@ -1476,7 +1476,7 @@ static int ipg_nic_rx(struct net_device *dev)
1476 * IP/TCP/UDP frame was received. Let the 1476 * IP/TCP/UDP frame was received. Let the
1477 * upper layer decide. 1477 * upper layer decide.
1478 */ 1478 */
1479 skb->ip_summed = CHECKSUM_NONE; 1479 skb_checksum_none_assert(skb);
1480 1480
1481 /* Hand off frame for higher layer processing. 1481 /* Hand off frame for higher layer processing.
1482 * The function netif_rx() releases the sk_buff 1482 * The function netif_rx() releases the sk_buff
diff --git a/drivers/net/iseries_veth.c b/drivers/net/iseries_veth.c
index ba1de5973fb2..8df645e78f2e 100644
--- a/drivers/net/iseries_veth.c
+++ b/drivers/net/iseries_veth.c
@@ -1524,7 +1524,7 @@ static void veth_receive(struct veth_lpar_connection *cnx,
1524 1524
1525 skb_put(skb, length); 1525 skb_put(skb, length);
1526 skb->protocol = eth_type_trans(skb, dev); 1526 skb->protocol = eth_type_trans(skb, dev);
1527 skb->ip_summed = CHECKSUM_NONE; 1527 skb_checksum_none_assert(skb);
1528 netif_rx(skb); /* send it up */ 1528 netif_rx(skb); /* send it up */
1529 dev->stats.rx_packets++; 1529 dev->stats.rx_packets++;
1530 dev->stats.rx_bytes += length; 1530 dev->stats.rx_bytes += length;
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c
index 33c4ffe6e103..c2f6e71e1181 100644
--- a/drivers/net/ixgb/ixgb_main.c
+++ b/drivers/net/ixgb/ixgb_main.c
@@ -1905,7 +1905,7 @@ ixgb_rx_checksum(struct ixgb_adapter *adapter,
1905 */ 1905 */
1906 if ((rx_desc->status & IXGB_RX_DESC_STATUS_IXSM) || 1906 if ((rx_desc->status & IXGB_RX_DESC_STATUS_IXSM) ||
1907 (!(rx_desc->status & IXGB_RX_DESC_STATUS_TCPCS))) { 1907 (!(rx_desc->status & IXGB_RX_DESC_STATUS_TCPCS))) {
1908 skb->ip_summed = CHECKSUM_NONE; 1908 skb_checksum_none_assert(skb);
1909 return; 1909 return;
1910 } 1910 }
1911 1911
@@ -1913,7 +1913,7 @@ ixgb_rx_checksum(struct ixgb_adapter *adapter,
1913 /* now look at the TCP checksum error bit */ 1913 /* now look at the TCP checksum error bit */
1914 if (rx_desc->errors & IXGB_RX_DESC_ERRORS_TCPE) { 1914 if (rx_desc->errors & IXGB_RX_DESC_ERRORS_TCPE) {
1915 /* let the stack verify checksum errors */ 1915 /* let the stack verify checksum errors */
1916 skb->ip_summed = CHECKSUM_NONE; 1916 skb_checksum_none_assert(skb);
1917 adapter->hw_csum_rx_error++; 1917 adapter->hw_csum_rx_error++;
1918 } else { 1918 } else {
1919 /* TCP checksum is good */ 1919 /* TCP checksum is good */
diff --git a/drivers/net/ixgbe/ixgbe_fcoe.c b/drivers/net/ixgbe/ixgbe_fcoe.c
index 86fa07cb061d..2f1de8b90f9e 100644
--- a/drivers/net/ixgbe/ixgbe_fcoe.c
+++ b/drivers/net/ixgbe/ixgbe_fcoe.c
@@ -304,12 +304,13 @@ int ixgbe_fcoe_ddp(struct ixgbe_adapter *adapter,
304 if (!ixgbe_rx_is_fcoe(rx_desc)) 304 if (!ixgbe_rx_is_fcoe(rx_desc))
305 goto ddp_out; 305 goto ddp_out;
306 306
307 skb->ip_summed = CHECKSUM_UNNECESSARY;
308 sterr = le32_to_cpu(rx_desc->wb.upper.status_error); 307 sterr = le32_to_cpu(rx_desc->wb.upper.status_error);
309 fcerr = (sterr & IXGBE_RXDADV_ERR_FCERR); 308 fcerr = (sterr & IXGBE_RXDADV_ERR_FCERR);
310 fceofe = (sterr & IXGBE_RXDADV_ERR_FCEOFE); 309 fceofe = (sterr & IXGBE_RXDADV_ERR_FCEOFE);
311 if (fcerr == IXGBE_FCERR_BADCRC) 310 if (fcerr == IXGBE_FCERR_BADCRC)
312 skb->ip_summed = CHECKSUM_NONE; 311 skb_checksum_none_assert(skb);
312 else
313 skb->ip_summed = CHECKSUM_UNNECESSARY;
313 314
314 if (eth_hdr(skb)->h_proto == htons(ETH_P_8021Q)) 315 if (eth_hdr(skb)->h_proto == htons(ETH_P_8021Q))
315 fh = (struct fc_frame_header *)(skb->data + 316 fh = (struct fc_frame_header *)(skb->data +
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 5e4dc1b0a1bd..3aafe94741ba 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -980,7 +980,7 @@ static inline void ixgbe_rx_checksum(struct ixgbe_adapter *adapter,
980{ 980{
981 u32 status_err = le32_to_cpu(rx_desc->wb.upper.status_error); 981 u32 status_err = le32_to_cpu(rx_desc->wb.upper.status_error);
982 982
983 skb->ip_summed = CHECKSUM_NONE; 983 skb_checksum_none_assert(skb);
984 984
985 /* Rx csum disabled */ 985 /* Rx csum disabled */
986 if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED)) 986 if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
diff --git a/drivers/net/ixgbevf/ixgbevf_main.c b/drivers/net/ixgbevf/ixgbevf_main.c
index 5d3c869283a5..bdbd26c60ae6 100644
--- a/drivers/net/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ixgbevf/ixgbevf_main.c
@@ -356,7 +356,7 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector,
356static inline void ixgbevf_rx_checksum(struct ixgbevf_adapter *adapter, 356static inline void ixgbevf_rx_checksum(struct ixgbevf_adapter *adapter,
357 u32 status_err, struct sk_buff *skb) 357 u32 status_err, struct sk_buff *skb)
358{ 358{
359 skb->ip_summed = CHECKSUM_NONE; 359 skb_checksum_none_assert(skb);
360 360
361 /* Rx csum disabled */ 361 /* Rx csum disabled */
362 if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED)) 362 if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
diff --git a/drivers/net/jme.c b/drivers/net/jme.c
index 99f24f5cac53..1fcd533b1a61 100644
--- a/drivers/net/jme.c
+++ b/drivers/net/jme.c
@@ -936,7 +936,7 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx)
936 if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags))) 936 if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags)))
937 skb->ip_summed = CHECKSUM_UNNECESSARY; 937 skb->ip_summed = CHECKSUM_UNNECESSARY;
938 else 938 else
939 skb->ip_summed = CHECKSUM_NONE; 939 skb_checksum_none_assert(skb);
940 940
941 if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) { 941 if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) {
942 if (jme->vlgrp) { 942 if (jme->vlgrp) {
diff --git a/drivers/net/ll_temac_main.c b/drivers/net/ll_temac_main.c
index bdf2149e5296..874ee01e8d9d 100644
--- a/drivers/net/ll_temac_main.c
+++ b/drivers/net/ll_temac_main.c
@@ -760,7 +760,7 @@ static void ll_temac_recv(struct net_device *ndev)
760 skb_put(skb, length); 760 skb_put(skb, length);
761 skb->dev = ndev; 761 skb->dev = ndev;
762 skb->protocol = eth_type_trans(skb, ndev); 762 skb->protocol = eth_type_trans(skb, ndev);
763 skb->ip_summed = CHECKSUM_NONE; 763 skb_checksum_none_assert(skb);
764 764
765 /* if we're doing rx csum offload, set it up */ 765 /* if we're doing rx csum offload, set it up */
766 if (((lp->temac_features & TEMAC_FEATURE_RX_CSUM) != 0) && 766 if (((lp->temac_features & TEMAC_FEATURE_RX_CSUM) != 0) &&
diff --git a/drivers/net/macb.c b/drivers/net/macb.c
index ff2f158ab0b9..4297f6e8c4bc 100644
--- a/drivers/net/macb.c
+++ b/drivers/net/macb.c
@@ -407,7 +407,7 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
407 } 407 }
408 408
409 skb_reserve(skb, RX_OFFSET); 409 skb_reserve(skb, RX_OFFSET);
410 skb->ip_summed = CHECKSUM_NONE; 410 skb_checksum_none_assert(skb);
411 skb_put(skb, len); 411 skb_put(skb, len);
412 412
413 for (frag = first_frag; ; frag = NEXT_RX(frag)) { 413 for (frag = first_frag; ; frag = NEXT_RX(frag)) {
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index b4cc61f1fc59..1f89f472cbfb 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -3484,7 +3484,7 @@ static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
3484 RCR_ENTRY_ERROR))) 3484 RCR_ENTRY_ERROR)))
3485 skb->ip_summed = CHECKSUM_UNNECESSARY; 3485 skb->ip_summed = CHECKSUM_UNNECESSARY;
3486 else 3486 else
3487 skb->ip_summed = CHECKSUM_NONE; 3487 skb_checksum_none_assert(skb);
3488 } else if (!(val & RCR_ENTRY_MULTI)) 3488 } else if (!(val & RCR_ENTRY_MULTI))
3489 append_size = len - skb->len; 3489 append_size = len - skb->len;
3490 3490
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c
index 447c2c43769a..4475ca97f031 100644
--- a/drivers/net/ns83820.c
+++ b/drivers/net/ns83820.c
@@ -923,7 +923,7 @@ static void rx_irq(struct net_device *ndev)
923 if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) { 923 if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) {
924 skb->ip_summed = CHECKSUM_UNNECESSARY; 924 skb->ip_summed = CHECKSUM_UNNECESSARY;
925 } else { 925 } else {
926 skb->ip_summed = CHECKSUM_NONE; 926 skb_checksum_none_assert(skb);
927 } 927 }
928 skb->protocol = eth_type_trans(skb, ndev); 928 skb->protocol = eth_type_trans(skb, ndev);
929#ifdef NS83820_VLAN_ACCEL_SUPPORT 929#ifdef NS83820_VLAN_ACCEL_SUPPORT
diff --git a/drivers/net/pasemi_mac.c b/drivers/net/pasemi_mac.c
index 8ab6ae0a6107..828e97cacdbf 100644
--- a/drivers/net/pasemi_mac.c
+++ b/drivers/net/pasemi_mac.c
@@ -808,7 +808,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac_rxring *rx,
808 skb->csum = (macrx & XCT_MACRX_CSUM_M) >> 808 skb->csum = (macrx & XCT_MACRX_CSUM_M) >>
809 XCT_MACRX_CSUM_S; 809 XCT_MACRX_CSUM_S;
810 } else 810 } else
811 skb->ip_summed = CHECKSUM_NONE; 811 skb_checksum_none_assert(skb);
812 812
813 packets++; 813 packets++;
814 tot_bytes += len; 814 tot_bytes += len;
diff --git a/drivers/net/ps3_gelic_net.c b/drivers/net/ps3_gelic_net.c
index 87d6b8f36304..5526ab4895e6 100644
--- a/drivers/net/ps3_gelic_net.c
+++ b/drivers/net/ps3_gelic_net.c
@@ -956,9 +956,9 @@ static void gelic_net_pass_skb_up(struct gelic_descr *descr,
956 (!(data_error & GELIC_DESCR_DATA_ERROR_CHK_MASK))) 956 (!(data_error & GELIC_DESCR_DATA_ERROR_CHK_MASK)))
957 skb->ip_summed = CHECKSUM_UNNECESSARY; 957 skb->ip_summed = CHECKSUM_UNNECESSARY;
958 else 958 else
959 skb->ip_summed = CHECKSUM_NONE; 959 skb_checksum_none_assert(skb);
960 } else 960 } else
961 skb->ip_summed = CHECKSUM_NONE; 961 skb_checksum_none_assert(skb);
962 962
963 /* update netdevice statistics */ 963 /* update netdevice statistics */
964 netdev->stats.rx_packets++; 964 netdev->stats.rx_packets++;
diff --git a/drivers/net/qla3xxx.c b/drivers/net/qla3xxx.c
index 6168a130f33f..7496ed2c34ab 100644
--- a/drivers/net/qla3xxx.c
+++ b/drivers/net/qla3xxx.c
@@ -2029,7 +2029,7 @@ static void ql_process_mac_rx_intr(struct ql3_adapter *qdev,
2029 dma_unmap_len(lrg_buf_cb2, maplen), 2029 dma_unmap_len(lrg_buf_cb2, maplen),
2030 PCI_DMA_FROMDEVICE); 2030 PCI_DMA_FROMDEVICE);
2031 prefetch(skb->data); 2031 prefetch(skb->data);
2032 skb->ip_summed = CHECKSUM_NONE; 2032 skb_checksum_none_assert(skb);
2033 skb->protocol = eth_type_trans(skb, qdev->ndev); 2033 skb->protocol = eth_type_trans(skb, qdev->ndev);
2034 2034
2035 netif_receive_skb(skb); 2035 netif_receive_skb(skb);
@@ -2076,7 +2076,7 @@ static void ql_process_macip_rx_intr(struct ql3_adapter *qdev,
2076 PCI_DMA_FROMDEVICE); 2076 PCI_DMA_FROMDEVICE);
2077 prefetch(skb2->data); 2077 prefetch(skb2->data);
2078 2078
2079 skb2->ip_summed = CHECKSUM_NONE; 2079 skb_checksum_none_assert(skb2);
2080 if (qdev->device_id == QL3022_DEVICE_ID) { 2080 if (qdev->device_id == QL3022_DEVICE_ID) {
2081 /* 2081 /*
2082 * Copy the ethhdr from first buffer to second. This 2082 * Copy the ethhdr from first buffer to second. This
diff --git a/drivers/net/qlcnic/qlcnic_init.c b/drivers/net/qlcnic/qlcnic_init.c
index 8e47d7aea562..26a7d6bca5c7 100644
--- a/drivers/net/qlcnic/qlcnic_init.c
+++ b/drivers/net/qlcnic/qlcnic_init.c
@@ -1369,7 +1369,7 @@ static struct sk_buff *qlcnic_process_rxbuf(struct qlcnic_adapter *adapter,
1369 adapter->stats.csummed++; 1369 adapter->stats.csummed++;
1370 skb->ip_summed = CHECKSUM_UNNECESSARY; 1370 skb->ip_summed = CHECKSUM_UNNECESSARY;
1371 } else { 1371 } else {
1372 skb->ip_summed = CHECKSUM_NONE; 1372 skb_checksum_none_assert(skb);
1373 } 1373 }
1374 1374
1375 skb->dev = adapter->netdev; 1375 skb->dev = adapter->netdev;
diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 5a245211fc53..e2d0e108b9aa 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1566,7 +1566,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
1566 rx_ring->rx_packets++; 1566 rx_ring->rx_packets++;
1567 rx_ring->rx_bytes += skb->len; 1567 rx_ring->rx_bytes += skb->len;
1568 skb->protocol = eth_type_trans(skb, ndev); 1568 skb->protocol = eth_type_trans(skb, ndev);
1569 skb->ip_summed = CHECKSUM_NONE; 1569 skb_checksum_none_assert(skb);
1570 1570
1571 if (qdev->rx_csum && 1571 if (qdev->rx_csum &&
1572 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) { 1572 !(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
@@ -1676,7 +1676,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
1676 rx_ring->rx_packets++; 1676 rx_ring->rx_packets++;
1677 rx_ring->rx_bytes += skb->len; 1677 rx_ring->rx_bytes += skb->len;
1678 skb->protocol = eth_type_trans(skb, ndev); 1678 skb->protocol = eth_type_trans(skb, ndev);
1679 skb->ip_summed = CHECKSUM_NONE; 1679 skb_checksum_none_assert(skb);
1680 1680
1681 /* If rx checksum is on, and there are no 1681 /* If rx checksum is on, and there are no
1682 * csum or frame errors. 1682 * csum or frame errors.
@@ -1996,7 +1996,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
1996 } 1996 }
1997 1997
1998 skb->protocol = eth_type_trans(skb, ndev); 1998 skb->protocol = eth_type_trans(skb, ndev);
1999 skb->ip_summed = CHECKSUM_NONE; 1999 skb_checksum_none_assert(skb);
2000 2000
2001 /* If rx checksum is on, and there are no 2001 /* If rx checksum is on, and there are no
2002 * csum or frame errors. 2002 * csum or frame errors.
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 078bbf4e6f19..07b3fb5175e5 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -4460,7 +4460,7 @@ static inline void rtl8169_rx_csum(struct sk_buff *skb, struct RxDesc *desc)
4460 ((status == RxProtoIP) && !(opts1 & IPFail))) 4460 ((status == RxProtoIP) && !(opts1 & IPFail)))
4461 skb->ip_summed = CHECKSUM_UNNECESSARY; 4461 skb->ip_summed = CHECKSUM_UNNECESSARY;
4462 else 4462 else
4463 skb->ip_summed = CHECKSUM_NONE; 4463 skb_checksum_none_assert(skb);
4464} 4464}
4465 4465
4466static inline bool rtl8169_try_rx_copy(struct sk_buff **sk_buff, 4466static inline bool rtl8169_try_rx_copy(struct sk_buff **sk_buff,
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c
index 7061fc8e99c7..c70ad515383a 100644
--- a/drivers/net/s2io.c
+++ b/drivers/net/s2io.c
@@ -7603,10 +7603,10 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
7603 * Packet with erroneous checksum, let the 7603 * Packet with erroneous checksum, let the
7604 * upper layers deal with it. 7604 * upper layers deal with it.
7605 */ 7605 */
7606 skb->ip_summed = CHECKSUM_NONE; 7606 skb_checksum_none_assert(skb);
7607 } 7607 }
7608 } else 7608 } else
7609 skb->ip_summed = CHECKSUM_NONE; 7609 skb_checksum_none_assert(skb);
7610 7610
7611 swstats->mem_freed += skb->truesize; 7611 swstats->mem_freed += skb->truesize;
7612send_up: 7612send_up:
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c
index 8e6bd45b9f31..d8249d7653c6 100644
--- a/drivers/net/sb1250-mac.c
+++ b/drivers/net/sb1250-mac.c
@@ -1170,7 +1170,7 @@ again:
1170 sb->ip_summed = CHECKSUM_UNNECESSARY; 1170 sb->ip_summed = CHECKSUM_UNNECESSARY;
1171 /* don't need to set sb->csum */ 1171 /* don't need to set sb->csum */
1172 } else { 1172 } else {
1173 sb->ip_summed = CHECKSUM_NONE; 1173 skb_checksum_none_assert(sb);
1174 } 1174 }
1175 } 1175 }
1176 prefetch(sb->data); 1176 prefetch(sb->data);
diff --git a/drivers/net/sfc/rx.c b/drivers/net/sfc/rx.c
index 799c461ce7b8..acb372e841b2 100644
--- a/drivers/net/sfc/rx.c
+++ b/drivers/net/sfc/rx.c
@@ -615,7 +615,7 @@ void __efx_rx_packet(struct efx_channel *channel,
615 EFX_BUG_ON_PARANOID(!skb); 615 EFX_BUG_ON_PARANOID(!skb);
616 616
617 /* Set the SKB flags */ 617 /* Set the SKB flags */
618 skb->ip_summed = CHECKSUM_NONE; 618 skb_checksum_none_assert(skb);
619 619
620 /* Pass the packet up */ 620 /* Pass the packet up */
621 netif_receive_skb(skb); 621 netif_receive_skb(skb);
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c
index a812efc3632e..50259dfec583 100644
--- a/drivers/net/sh_eth.c
+++ b/drivers/net/sh_eth.c
@@ -798,7 +798,7 @@ static int sh_eth_rx(struct net_device *ndev)
798 skb->dev = ndev; 798 skb->dev = ndev;
799 sh_eth_set_receive_align(skb); 799 sh_eth_set_receive_align(skb);
800 800
801 skb->ip_summed = CHECKSUM_NONE; 801 skb_checksum_none_assert(skb);
802 rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4)); 802 rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4));
803 } 803 }
804 if (entry >= RX_RING_SIZE - 1) 804 if (entry >= RX_RING_SIZE - 1)
diff --git a/drivers/net/smsc911x.c b/drivers/net/smsc911x.c
index 0909ae934ad0..13ddcd487200 100644
--- a/drivers/net/smsc911x.c
+++ b/drivers/net/smsc911x.c
@@ -1048,7 +1048,7 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
1048 smsc911x_rx_readfifo(pdata, (unsigned int *)skb->head, 1048 smsc911x_rx_readfifo(pdata, (unsigned int *)skb->head,
1049 pktwords); 1049 pktwords);
1050 skb->protocol = eth_type_trans(skb, dev); 1050 skb->protocol = eth_type_trans(skb, dev);
1051 skb->ip_summed = CHECKSUM_NONE; 1051 skb_checksum_none_assert(skb);
1052 netif_receive_skb(skb); 1052 netif_receive_skb(skb);
1053 1053
1054 /* Update counters */ 1054 /* Update counters */
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index 1636a34d95dd..cb6bcca9d541 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1000,9 +1000,9 @@ spider_net_pass_skb_up(struct spider_net_descr *descr,
1000 !(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK)) 1000 !(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK))
1001 skb->ip_summed = CHECKSUM_UNNECESSARY; 1001 skb->ip_summed = CHECKSUM_UNNECESSARY;
1002 else 1002 else
1003 skb->ip_summed = CHECKSUM_NONE; 1003 skb_checksum_none_assert(skb);
1004 } else 1004 } else
1005 skb->ip_summed = CHECKSUM_NONE; 1005 skb_checksum_none_assert(skb);
1006 1006
1007 if (data_status & SPIDER_NET_VLAN_PACKET) { 1007 if (data_status & SPIDER_NET_VLAN_PACKET) {
1008 /* further enhancements: HW-accel VLAN 1008 /* further enhancements: HW-accel VLAN
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c
index e3f002eba89a..1ccea76d89ae 100644
--- a/drivers/net/stmmac/stmmac_main.c
+++ b/drivers/net/stmmac/stmmac_main.c
@@ -1256,7 +1256,7 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit)
1256 1256
1257 if (unlikely(status == csum_none)) { 1257 if (unlikely(status == csum_none)) {
1258 /* always for the old mac 10/100 */ 1258 /* always for the old mac 10/100 */
1259 skb->ip_summed = CHECKSUM_NONE; 1259 skb_checksum_none_assert(skb);
1260 netif_receive_skb(skb); 1260 netif_receive_skb(skb);
1261 } else { 1261 } else {
1262 skb->ip_summed = CHECKSUM_UNNECESSARY; 1262 skb->ip_summed = CHECKSUM_UNNECESSARY;
diff --git a/drivers/net/tehuti.c b/drivers/net/tehuti.c
index 3128d6a8e9ce..8b3dc1eb4015 100644
--- a/drivers/net/tehuti.c
+++ b/drivers/net/tehuti.c
@@ -1297,12 +1297,13 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
1297 ndev->stats.rx_bytes += len; 1297 ndev->stats.rx_bytes += len;
1298 1298
1299 skb_put(skb, len); 1299 skb_put(skb, len);
1300 skb->ip_summed = CHECKSUM_UNNECESSARY;
1301 skb->protocol = eth_type_trans(skb, ndev); 1300 skb->protocol = eth_type_trans(skb, ndev);
1302 1301
1303 /* Non-IP packets aren't checksum-offloaded */ 1302 /* Non-IP packets aren't checksum-offloaded */
1304 if (GET_RXD_PKT_ID(rxd_val1) == 0) 1303 if (GET_RXD_PKT_ID(rxd_val1) == 0)
1305 skb->ip_summed = CHECKSUM_NONE; 1304 skb_checksum_none_assert(skb);
1305 else
1306 skb->ip_summed = CHECKSUM_UNNECESSARY;
1306 1307
1307 NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb); 1308 NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb);
1308 1309
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index bc3af78a869f..9f6ffffc8376 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -4719,7 +4719,7 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
4719 >> RXD_TCPCSUM_SHIFT) == 0xffff)) 4719 >> RXD_TCPCSUM_SHIFT) == 0xffff))
4720 skb->ip_summed = CHECKSUM_UNNECESSARY; 4720 skb->ip_summed = CHECKSUM_UNNECESSARY;
4721 else 4721 else
4722 skb->ip_summed = CHECKSUM_NONE; 4722 skb_checksum_none_assert(skb);
4723 4723
4724 skb->protocol = eth_type_trans(skb, tp->dev); 4724 skb->protocol = eth_type_trans(skb, tp->dev);
4725 4725
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 3f4681f78262..5dfb39539b3e 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1760,7 +1760,7 @@ typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile __le32 * read
1760 (TYPHOON_RX_IP_CHK_GOOD | TYPHOON_RX_UDP_CHK_GOOD)) { 1760 (TYPHOON_RX_IP_CHK_GOOD | TYPHOON_RX_UDP_CHK_GOOD)) {
1761 new_skb->ip_summed = CHECKSUM_UNNECESSARY; 1761 new_skb->ip_summed = CHECKSUM_UNNECESSARY;
1762 } else 1762 } else
1763 new_skb->ip_summed = CHECKSUM_NONE; 1763 skb_checksum_none_assert(new_skb);
1764 1764
1765 spin_lock(&tp->state_lock); 1765 spin_lock(&tp->state_lock);
1766 if(tp->vlgrp != NULL && rx->rxStatus & TYPHOON_RX_VLAN) 1766 if(tp->vlgrp != NULL && rx->rxStatus & TYPHOON_RX_VLAN)
diff --git a/drivers/net/via-velocity.c b/drivers/net/via-velocity.c
index fd69095ef6e3..ed7f4f5c4062 100644
--- a/drivers/net/via-velocity.c
+++ b/drivers/net/via-velocity.c
@@ -1954,7 +1954,7 @@ static int velocity_tx_srv(struct velocity_info *vptr)
1954 */ 1954 */
1955static inline void velocity_rx_csum(struct rx_desc *rd, struct sk_buff *skb) 1955static inline void velocity_rx_csum(struct rx_desc *rd, struct sk_buff *skb)
1956{ 1956{
1957 skb->ip_summed = CHECKSUM_NONE; 1957 skb_checksum_none_assert(skb);
1958 1958
1959 if (rd->rdesc1.CSM & CSM_IPKT) { 1959 if (rd->rdesc1.CSM & CSM_IPKT) {
1960 if (rd->rdesc1.CSM & CSM_IPOK) { 1960 if (rd->rdesc1.CSM & CSM_IPOK) {
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index abe0ff53daf3..198ce92af0c3 100644
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -1042,11 +1042,11 @@ vmxnet3_rx_csum(struct vmxnet3_adapter *adapter,
1042 skb->csum = htons(gdesc->rcd.csum); 1042 skb->csum = htons(gdesc->rcd.csum);
1043 skb->ip_summed = CHECKSUM_PARTIAL; 1043 skb->ip_summed = CHECKSUM_PARTIAL;
1044 } else { 1044 } else {
1045 skb->ip_summed = CHECKSUM_NONE; 1045 skb_checksum_none_assert(skb);
1046 } 1046 }
1047 } 1047 }
1048 } else { 1048 } else {
1049 skb->ip_summed = CHECKSUM_NONE; 1049 skb_checksum_none_assert(skb);
1050 } 1050 }
1051} 1051}
1052 1052
diff --git a/drivers/net/vxge/vxge-main.c b/drivers/net/vxge/vxge-main.c
index 01cdec712b64..5378b849f54f 100644
--- a/drivers/net/vxge/vxge-main.c
+++ b/drivers/net/vxge/vxge-main.c
@@ -501,7 +501,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr,
501 ext_info.l4_cksum == VXGE_HW_L4_CKSUM_OK) 501 ext_info.l4_cksum == VXGE_HW_L4_CKSUM_OK)
502 skb->ip_summed = CHECKSUM_UNNECESSARY; 502 skb->ip_summed = CHECKSUM_UNNECESSARY;
503 else 503 else
504 skb->ip_summed = CHECKSUM_NONE; 504 skb_checksum_none_assert(skb);
505 505
506 vxge_rx_complete(ring, skb, ext_info.vlan, 506 vxge_rx_complete(ring, skb, ext_info.vlan,
507 pkt_length, &ext_info); 507 pkt_length, &ext_info);
diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
index 71122ee4e830..f3f8be5a35fa 100644
--- a/drivers/net/xilinx_emaclite.c
+++ b/drivers/net/xilinx_emaclite.c
@@ -641,7 +641,7 @@ static void xemaclite_rx_handler(struct net_device *dev)
641 skb_put(skb, len); /* Tell the skb how much data we got */ 641 skb_put(skb, len); /* Tell the skb how much data we got */
642 642
643 skb->protocol = eth_type_trans(skb, dev); 643 skb->protocol = eth_type_trans(skb, dev);
644 skb->ip_summed = CHECKSUM_NONE; 644 skb_checksum_none_assert(skb);
645 645
646 dev->stats.rx_packets++; 646 dev->stats.rx_packets++;
647 dev->stats.rx_bytes += len; 647 dev->stats.rx_bytes += len;
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index f900ffcd847e..9e8085a89589 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -2206,6 +2206,21 @@ static inline void skb_forward_csum(struct sk_buff *skb)
2206 skb->ip_summed = CHECKSUM_NONE; 2206 skb->ip_summed = CHECKSUM_NONE;
2207} 2207}
2208 2208
2209/**
2210 * skb_checksum_none_assert - make sure skb ip_summed is CHECKSUM_NONE
2211 * @skb: skb to check
2212 *
2213 * fresh skbs have their ip_summed set to CHECKSUM_NONE.
2214 * Instead of forcing ip_summed to CHECKSUM_NONE, we can
2215 * use this helper, to document places where we make this assertion.
2216 */
2217static inline void skb_checksum_none_assert(struct sk_buff *skb)
2218{
2219#ifdef DEBUG
2220 BUG_ON(skb->ip_summed != CHECKSUM_NONE);
2221#endif
2222}
2223
2209bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); 2224bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
2210#endif /* __KERNEL__ */ 2225#endif /* __KERNEL__ */
2211#endif /* _LINUX_SKBUFF_H */ 2226#endif /* _LINUX_SKBUFF_H */