diff options
author | Eric Dumazet <eric.dumazet@gmail.com> | 2010-09-02 16:07:41 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-09-02 22:06:22 -0400 |
commit | bc8acf2c8c3e43fcc192762a9f964b3e9a17748b (patch) | |
tree | e3a91392771a22390e59c24fcb7bad3045ce17d1 | |
parent | 7162f6691e9d39d8d866574687cddb3f1ec65d72 (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>
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 | ||
1725 | static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid) | 1725 | static 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, | |||
5455 | static inline void igb_rx_checksum_adv(struct igb_ring *ring, | 5455 | static 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, | |||
103 | static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter, | 103 | static 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, | |||
356 | static inline void ixgbevf_rx_checksum(struct ixgbevf_adapter *adapter, | 356 | static 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 | ||
4466 | static inline bool rtl8169_try_rx_copy(struct sk_buff **sk_buff, | 4466 | static 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; |
7612 | send_up: | 7612 | send_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 | */ |
1955 | static inline void velocity_rx_csum(struct rx_desc *rd, struct sk_buff *skb) | 1955 | static 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 | */ | ||
2217 | static 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 | |||
2209 | bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); | 2224 | bool 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 */ |