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>
This commit is contained in:
parent
7162f6691e
commit
bc8acf2c8c
|
@ -561,7 +561,7 @@ rx_status_loop:
|
||||||
if (cp_rx_csum_ok(status))
|
if (cp_rx_csum_ok(status))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
skb_put(skb, len);
|
skb_put(skb, len);
|
||||||
|
|
||||||
|
|
|
@ -2033,7 +2033,7 @@ static void ace_rx_int(struct net_device *dev, u32 rxretprd, u32 rxretcsm)
|
||||||
skb->csum = htons(csum);
|
skb->csum = htons(csum);
|
||||||
skb->ip_summed = CHECKSUM_COMPLETE;
|
skb->ip_summed = CHECKSUM_COMPLETE;
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* send it up */
|
/* send it up */
|
||||||
|
|
|
@ -1719,7 +1719,7 @@ static inline void atl1c_rx_checksum(struct atl1c_adapter *adapter,
|
||||||
* cannot figure out if the packet is fragmented or not,
|
* cannot figure out if the packet is fragmented or not,
|
||||||
* so we tell the KERNEL CHECKSUM_NONE
|
* so we tell the KERNEL CHECKSUM_NONE
|
||||||
*/
|
*/
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid)
|
static int atl1c_alloc_rx_buffer(struct atl1c_adapter *adapter, const int ringid)
|
||||||
|
|
|
@ -1331,7 +1331,7 @@ static inline void atl1e_rx_checksum(struct atl1e_adapter *adapter,
|
||||||
u16 pkt_flags;
|
u16 pkt_flags;
|
||||||
u16 err_flags;
|
u16 err_flags;
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
pkt_flags = prrs->pkt_flag;
|
pkt_flags = prrs->pkt_flag;
|
||||||
err_flags = prrs->err_flag;
|
err_flags = prrs->err_flag;
|
||||||
if (((pkt_flags & RRS_IS_IPV4) || (pkt_flags & RRS_IS_IPV6)) &&
|
if (((pkt_flags & RRS_IS_IPV4) || (pkt_flags & RRS_IS_IPV6)) &&
|
||||||
|
|
|
@ -1805,7 +1805,7 @@ static void atl1_rx_checksum(struct atl1_adapter *adapter,
|
||||||
* the higher layers and let it be sorted out there.
|
* the higher layers and let it be sorted out there.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (unlikely(rrd->pkt_flg & PACKET_FLAG_ERR)) {
|
if (unlikely(rrd->pkt_flg & PACKET_FLAG_ERR)) {
|
||||||
if (rrd->err_flg & (ERR_FLAG_CRC | ERR_FLAG_TRUNC |
|
if (rrd->err_flg & (ERR_FLAG_CRC | ERR_FLAG_TRUNC |
|
||||||
|
|
|
@ -818,7 +818,7 @@ static int b44_rx(struct b44 *bp, int budget)
|
||||||
copy_skb->data, len);
|
copy_skb->data, len);
|
||||||
skb = copy_skb;
|
skb = copy_skb;
|
||||||
}
|
}
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
skb->protocol = eth_type_trans(skb, bp->dev);
|
skb->protocol = eth_type_trans(skb, bp->dev);
|
||||||
netif_receive_skb(skb);
|
netif_receive_skb(skb);
|
||||||
received++;
|
received++;
|
||||||
|
|
|
@ -1016,7 +1016,7 @@ static void be_rx_compl_process(struct be_adapter *adapter,
|
||||||
skb_fill_rx_data(adapter, skb, rxcp, num_rcvd);
|
skb_fill_rx_data(adapter, skb, rxcp, num_rcvd);
|
||||||
|
|
||||||
if (do_pkt_csum(rxcp, adapter->rx_csum))
|
if (do_pkt_csum(rxcp, adapter->rx_csum))
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
|
|
||||||
|
|
|
@ -510,7 +510,7 @@ bnad_poll_cq(struct bnad *bnad, struct bna_ccb *ccb, int budget)
|
||||||
(flags & BNA_CQ_EF_L4_CKSUM_OK)))
|
(flags & BNA_CQ_EF_L4_CKSUM_OK)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
rcb->rxq->rx_packets++;
|
rcb->rxq->rx_packets++;
|
||||||
rcb->rxq->rx_bytes += skb->len;
|
rcb->rxq->rx_bytes += skb->len;
|
||||||
|
|
|
@ -3218,7 +3218,7 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
if (bp->rx_csum &&
|
if (bp->rx_csum &&
|
||||||
(status & (L2_FHDR_STATUS_TCP_SEGMENT |
|
(status & (L2_FHDR_STATUS_TCP_SEGMENT |
|
||||||
L2_FHDR_STATUS_UDP_DATAGRAM))) {
|
L2_FHDR_STATUS_UDP_DATAGRAM))) {
|
||||||
|
|
|
@ -623,7 +623,7 @@ reuse_rx:
|
||||||
/* Set Toeplitz hash for a none-LRO skb */
|
/* Set Toeplitz hash for a none-LRO skb */
|
||||||
bnx2x_set_skb_rxhash(bp, cqe, skb);
|
bnx2x_set_skb_rxhash(bp, cqe, skb);
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
if (bp->rx_csum) {
|
if (bp->rx_csum) {
|
||||||
if (likely(BNX2X_RX_CSUM_OK(cqe)))
|
if (likely(BNX2X_RX_CSUM_OK(cqe)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
|
|
|
@ -2149,7 +2149,7 @@ end_copy_pkt:
|
||||||
skb->csum = csum_unfold(~csum);
|
skb->csum = csum_unfold(~csum);
|
||||||
skb->ip_summed = CHECKSUM_COMPLETE;
|
skb->ip_summed = CHECKSUM_COMPLETE;
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1388,7 +1388,7 @@ static void sge_rx(struct sge *sge, struct freelQ *fl, unsigned int len)
|
||||||
++st->rx_cso_good;
|
++st->rx_cso_good;
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (unlikely(adapter->vlan_grp && p->vlan_valid)) {
|
if (unlikely(adapter->vlan_grp && p->vlan_valid)) {
|
||||||
st->vlan_xtract++;
|
st->vlan_xtract++;
|
||||||
|
|
|
@ -391,7 +391,7 @@ static struct sk_buff *cpmac_rx_one(struct cpmac_priv *priv,
|
||||||
if (likely(skb)) {
|
if (likely(skb)) {
|
||||||
skb_put(desc->skb, desc->datalen);
|
skb_put(desc->skb, desc->datalen);
|
||||||
desc->skb->protocol = eth_type_trans(desc->skb, priv->dev);
|
desc->skb->protocol = eth_type_trans(desc->skb, priv->dev);
|
||||||
desc->skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(desc->skb);
|
||||||
priv->dev->stats.rx_packets++;
|
priv->dev->stats.rx_packets++;
|
||||||
priv->dev->stats.rx_bytes += desc->datalen;
|
priv->dev->stats.rx_bytes += desc->datalen;
|
||||||
result = desc->skb;
|
result = desc->skb;
|
||||||
|
|
|
@ -2022,7 +2022,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,
|
||||||
qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++;
|
qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++;
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
skb_record_rx_queue(skb, qs - &adap->sge.qs[0]);
|
skb_record_rx_queue(skb, qs - &adap->sge.qs[0]);
|
||||||
|
|
||||||
if (unlikely(p->vlan_valid)) {
|
if (unlikely(p->vlan_valid)) {
|
||||||
|
|
|
@ -1605,7 +1605,7 @@ int t4_ethrx_handler(struct sge_rspq *q, const __be64 *rsp,
|
||||||
rxq->stats.rx_cso++;
|
rxq->stats.rx_cso++;
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (unlikely(pkt->vlan_ex)) {
|
if (unlikely(pkt->vlan_ex)) {
|
||||||
struct vlan_group *grp = pi->vlan_grp;
|
struct vlan_group *grp = pi->vlan_grp;
|
||||||
|
|
|
@ -1534,7 +1534,7 @@ int t4vf_ethrx_handler(struct sge_rspq *rspq, const __be64 *rsp,
|
||||||
}
|
}
|
||||||
rxq->stats.rx_cso++;
|
rxq->stats.rx_cso++;
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (unlikely(pkt->vlan_ex)) {
|
if (unlikely(pkt->vlan_ex)) {
|
||||||
struct vlan_group *grp = pi->vlan_grp;
|
struct vlan_group *grp = pi->vlan_grp;
|
||||||
|
|
|
@ -1056,7 +1056,7 @@ dm9000_rx(struct net_device *dev)
|
||||||
if ((((rxbyte & 0x1c) << 3) & rxbyte) == 0)
|
if ((((rxbyte & 0x1c) << 3) & rxbyte) == 0)
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
dev->stats.rx_packets++;
|
dev->stats.rx_packets++;
|
||||||
|
|
|
@ -3552,7 +3552,8 @@ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err,
|
||||||
struct e1000_hw *hw = &adapter->hw;
|
struct e1000_hw *hw = &adapter->hw;
|
||||||
u16 status = (u16)status_err;
|
u16 status = (u16)status_err;
|
||||||
u8 errors = (u8)(status_err >> 24);
|
u8 errors = (u8)(status_err >> 24);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
|
||||||
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* 82543 or newer only */
|
/* 82543 or newer only */
|
||||||
if (unlikely(hw->mac_type < e1000_82543)) return;
|
if (unlikely(hw->mac_type < e1000_82543)) return;
|
||||||
|
|
|
@ -475,7 +475,8 @@ static void e1000_rx_checksum(struct e1000_adapter *adapter, u32 status_err,
|
||||||
{
|
{
|
||||||
u16 status = (u16)status_err;
|
u16 status = (u16)status_err;
|
||||||
u8 errors = (u8)(status_err >> 24);
|
u8 errors = (u8)(status_err >> 24);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
|
||||||
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Ignore Checksum bit is set */
|
/* Ignore Checksum bit is set */
|
||||||
if (status & E1000_RXD_STAT_IXSM)
|
if (status & E1000_RXD_STAT_IXSM)
|
||||||
|
|
|
@ -2654,7 +2654,7 @@ static inline void gfar_rx_checksum(struct sk_buff *skb, struct rxfcb *fcb)
|
||||||
if ((fcb->flags & RXFCB_CSUM_MASK) == (RXFCB_CIP | RXFCB_CTU))
|
if ((fcb->flags & RXFCB_CSUM_MASK) == (RXFCB_CIP | RXFCB_CTU))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -893,7 +893,7 @@ static int greth_rx_gbit(struct net_device *dev, int limit)
|
||||||
if (greth->flags & GRETH_FLAG_RX_CSUM && hw_checksummed(status))
|
if (greth->flags & GRETH_FLAG_RX_CSUM && hw_checksummed(status))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
dev->stats.rx_packets++;
|
dev->stats.rx_packets++;
|
||||||
|
|
|
@ -602,7 +602,7 @@ static void irqrx_handler(struct net_device *dev)
|
||||||
/* set up skb fields */
|
/* set up skb fields */
|
||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* bookkeeping */
|
/* bookkeeping */
|
||||||
dev->stats.rx_packets++;
|
dev->stats.rx_packets++;
|
||||||
|
|
|
@ -5455,7 +5455,7 @@ static void igb_receive_skb(struct igb_q_vector *q_vector,
|
||||||
static inline void igb_rx_checksum_adv(struct igb_ring *ring,
|
static inline void igb_rx_checksum_adv(struct igb_ring *ring,
|
||||||
u32 status_err, struct sk_buff *skb)
|
u32 status_err, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Ignore Checksum bit is set or checksum is disabled through ethtool */
|
/* Ignore Checksum bit is set or checksum is disabled through ethtool */
|
||||||
if (!(ring->flags & IGB_RING_FLAG_RX_CSUM) ||
|
if (!(ring->flags & IGB_RING_FLAG_RX_CSUM) ||
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void igbvf_receive_skb(struct igbvf_adapter *adapter,
|
||||||
static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter,
|
static inline void igbvf_rx_checksum_adv(struct igbvf_adapter *adapter,
|
||||||
u32 status_err, struct sk_buff *skb)
|
u32 status_err, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Ignore Checksum bit is set or checksum is disabled through ethtool */
|
/* Ignore Checksum bit is set or checksum is disabled through ethtool */
|
||||||
if ((status_err & E1000_RXD_STAT_IXSM) ||
|
if ((status_err & E1000_RXD_STAT_IXSM) ||
|
||||||
|
|
|
@ -1213,7 +1213,7 @@ static void ipg_nic_rx_with_start_and_end(struct net_device *dev,
|
||||||
|
|
||||||
skb_put(skb, framelen);
|
skb_put(skb, framelen);
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
netif_rx(skb);
|
netif_rx(skb);
|
||||||
sp->rx_buff[entry] = NULL;
|
sp->rx_buff[entry] = NULL;
|
||||||
}
|
}
|
||||||
|
@ -1278,7 +1278,7 @@ static void ipg_nic_rx_with_end(struct net_device *dev,
|
||||||
jumbo->skb->protocol =
|
jumbo->skb->protocol =
|
||||||
eth_type_trans(jumbo->skb, dev);
|
eth_type_trans(jumbo->skb, dev);
|
||||||
|
|
||||||
jumbo->skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(jumbo->skb);
|
||||||
netif_rx(jumbo->skb);
|
netif_rx(jumbo->skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1476,7 +1476,7 @@ static int ipg_nic_rx(struct net_device *dev)
|
||||||
* IP/TCP/UDP frame was received. Let the
|
* IP/TCP/UDP frame was received. Let the
|
||||||
* upper layer decide.
|
* upper layer decide.
|
||||||
*/
|
*/
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Hand off frame for higher layer processing.
|
/* Hand off frame for higher layer processing.
|
||||||
* The function netif_rx() releases the sk_buff
|
* The function netif_rx() releases the sk_buff
|
||||||
|
|
|
@ -1524,7 +1524,7 @@ static void veth_receive(struct veth_lpar_connection *cnx,
|
||||||
|
|
||||||
skb_put(skb, length);
|
skb_put(skb, length);
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
netif_rx(skb); /* send it up */
|
netif_rx(skb); /* send it up */
|
||||||
dev->stats.rx_packets++;
|
dev->stats.rx_packets++;
|
||||||
dev->stats.rx_bytes += length;
|
dev->stats.rx_bytes += length;
|
||||||
|
|
|
@ -1905,7 +1905,7 @@ ixgb_rx_checksum(struct ixgb_adapter *adapter,
|
||||||
*/
|
*/
|
||||||
if ((rx_desc->status & IXGB_RX_DESC_STATUS_IXSM) ||
|
if ((rx_desc->status & IXGB_RX_DESC_STATUS_IXSM) ||
|
||||||
(!(rx_desc->status & IXGB_RX_DESC_STATUS_TCPCS))) {
|
(!(rx_desc->status & IXGB_RX_DESC_STATUS_TCPCS))) {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1913,7 +1913,7 @@ ixgb_rx_checksum(struct ixgb_adapter *adapter,
|
||||||
/* now look at the TCP checksum error bit */
|
/* now look at the TCP checksum error bit */
|
||||||
if (rx_desc->errors & IXGB_RX_DESC_ERRORS_TCPE) {
|
if (rx_desc->errors & IXGB_RX_DESC_ERRORS_TCPE) {
|
||||||
/* let the stack verify checksum errors */
|
/* let the stack verify checksum errors */
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
adapter->hw_csum_rx_error++;
|
adapter->hw_csum_rx_error++;
|
||||||
} else {
|
} else {
|
||||||
/* TCP checksum is good */
|
/* TCP checksum is good */
|
||||||
|
|
|
@ -304,12 +304,13 @@ int ixgbe_fcoe_ddp(struct ixgbe_adapter *adapter,
|
||||||
if (!ixgbe_rx_is_fcoe(rx_desc))
|
if (!ixgbe_rx_is_fcoe(rx_desc))
|
||||||
goto ddp_out;
|
goto ddp_out;
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
|
||||||
sterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
sterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
||||||
fcerr = (sterr & IXGBE_RXDADV_ERR_FCERR);
|
fcerr = (sterr & IXGBE_RXDADV_ERR_FCERR);
|
||||||
fceofe = (sterr & IXGBE_RXDADV_ERR_FCEOFE);
|
fceofe = (sterr & IXGBE_RXDADV_ERR_FCEOFE);
|
||||||
if (fcerr == IXGBE_FCERR_BADCRC)
|
if (fcerr == IXGBE_FCERR_BADCRC)
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
else
|
||||||
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
|
|
||||||
if (eth_hdr(skb)->h_proto == htons(ETH_P_8021Q))
|
if (eth_hdr(skb)->h_proto == htons(ETH_P_8021Q))
|
||||||
fh = (struct fc_frame_header *)(skb->data +
|
fh = (struct fc_frame_header *)(skb->data +
|
||||||
|
|
|
@ -980,7 +980,7 @@ static inline void ixgbe_rx_checksum(struct ixgbe_adapter *adapter,
|
||||||
{
|
{
|
||||||
u32 status_err = le32_to_cpu(rx_desc->wb.upper.status_error);
|
u32 status_err = le32_to_cpu(rx_desc->wb.upper.status_error);
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Rx csum disabled */
|
/* Rx csum disabled */
|
||||||
if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
|
if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
|
||||||
|
|
|
@ -356,7 +356,7 @@ static void ixgbevf_receive_skb(struct ixgbevf_q_vector *q_vector,
|
||||||
static inline void ixgbevf_rx_checksum(struct ixgbevf_adapter *adapter,
|
static inline void ixgbevf_rx_checksum(struct ixgbevf_adapter *adapter,
|
||||||
u32 status_err, struct sk_buff *skb)
|
u32 status_err, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Rx csum disabled */
|
/* Rx csum disabled */
|
||||||
if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
|
if (!(adapter->flags & IXGBE_FLAG_RX_CSUM_ENABLED))
|
||||||
|
|
|
@ -936,7 +936,7 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx)
|
||||||
if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags)))
|
if (jme_rxsum_ok(jme, le16_to_cpu(rxdesc->descwb.flags)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) {
|
if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) {
|
||||||
if (jme->vlgrp) {
|
if (jme->vlgrp) {
|
||||||
|
|
|
@ -760,7 +760,7 @@ static void ll_temac_recv(struct net_device *ndev)
|
||||||
skb_put(skb, length);
|
skb_put(skb, length);
|
||||||
skb->dev = ndev;
|
skb->dev = ndev;
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* if we're doing rx csum offload, set it up */
|
/* if we're doing rx csum offload, set it up */
|
||||||
if (((lp->temac_features & TEMAC_FEATURE_RX_CSUM) != 0) &&
|
if (((lp->temac_features & TEMAC_FEATURE_RX_CSUM) != 0) &&
|
||||||
|
|
|
@ -407,7 +407,7 @@ static int macb_rx_frame(struct macb *bp, unsigned int first_frag,
|
||||||
}
|
}
|
||||||
|
|
||||||
skb_reserve(skb, RX_OFFSET);
|
skb_reserve(skb, RX_OFFSET);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
skb_put(skb, len);
|
skb_put(skb, len);
|
||||||
|
|
||||||
for (frag = first_frag; ; frag = NEXT_RX(frag)) {
|
for (frag = first_frag; ; frag = NEXT_RX(frag)) {
|
||||||
|
|
|
@ -3484,7 +3484,7 @@ static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
|
||||||
RCR_ENTRY_ERROR)))
|
RCR_ENTRY_ERROR)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
} else if (!(val & RCR_ENTRY_MULTI))
|
} else if (!(val & RCR_ENTRY_MULTI))
|
||||||
append_size = len - skb->len;
|
append_size = len - skb->len;
|
||||||
|
|
||||||
|
|
|
@ -923,7 +923,7 @@ static void rx_irq(struct net_device *ndev)
|
||||||
if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) {
|
if ((extsts & 0x002a0000) && !(extsts & 0x00540000)) {
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
||||||
|
|
|
@ -808,7 +808,7 @@ static int pasemi_mac_clean_rx(struct pasemi_mac_rxring *rx,
|
||||||
skb->csum = (macrx & XCT_MACRX_CSUM_M) >>
|
skb->csum = (macrx & XCT_MACRX_CSUM_M) >>
|
||||||
XCT_MACRX_CSUM_S;
|
XCT_MACRX_CSUM_S;
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
packets++;
|
packets++;
|
||||||
tot_bytes += len;
|
tot_bytes += len;
|
||||||
|
|
|
@ -956,9 +956,9 @@ static void gelic_net_pass_skb_up(struct gelic_descr *descr,
|
||||||
(!(data_error & GELIC_DESCR_DATA_ERROR_CHK_MASK)))
|
(!(data_error & GELIC_DESCR_DATA_ERROR_CHK_MASK)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* update netdevice statistics */
|
/* update netdevice statistics */
|
||||||
netdev->stats.rx_packets++;
|
netdev->stats.rx_packets++;
|
||||||
|
|
|
@ -2029,7 +2029,7 @@ static void ql_process_mac_rx_intr(struct ql3_adapter *qdev,
|
||||||
dma_unmap_len(lrg_buf_cb2, maplen),
|
dma_unmap_len(lrg_buf_cb2, maplen),
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
prefetch(skb->data);
|
prefetch(skb->data);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
skb->protocol = eth_type_trans(skb, qdev->ndev);
|
skb->protocol = eth_type_trans(skb, qdev->ndev);
|
||||||
|
|
||||||
netif_receive_skb(skb);
|
netif_receive_skb(skb);
|
||||||
|
@ -2076,7 +2076,7 @@ static void ql_process_macip_rx_intr(struct ql3_adapter *qdev,
|
||||||
PCI_DMA_FROMDEVICE);
|
PCI_DMA_FROMDEVICE);
|
||||||
prefetch(skb2->data);
|
prefetch(skb2->data);
|
||||||
|
|
||||||
skb2->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb2);
|
||||||
if (qdev->device_id == QL3022_DEVICE_ID) {
|
if (qdev->device_id == QL3022_DEVICE_ID) {
|
||||||
/*
|
/*
|
||||||
* Copy the ethhdr from first buffer to second. This
|
* Copy the ethhdr from first buffer to second. This
|
||||||
|
|
|
@ -1369,7 +1369,7 @@ static struct sk_buff *qlcnic_process_rxbuf(struct qlcnic_adapter *adapter,
|
||||||
adapter->stats.csummed++;
|
adapter->stats.csummed++;
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
skb->dev = adapter->netdev;
|
skb->dev = adapter->netdev;
|
||||||
|
|
|
@ -1566,7 +1566,7 @@ static void ql_process_mac_rx_page(struct ql_adapter *qdev,
|
||||||
rx_ring->rx_packets++;
|
rx_ring->rx_packets++;
|
||||||
rx_ring->rx_bytes += skb->len;
|
rx_ring->rx_bytes += skb->len;
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (qdev->rx_csum &&
|
if (qdev->rx_csum &&
|
||||||
!(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
|
!(ib_mac_rsp->flags1 & IB_MAC_CSUM_ERR_MASK)) {
|
||||||
|
@ -1676,7 +1676,7 @@ static void ql_process_mac_rx_skb(struct ql_adapter *qdev,
|
||||||
rx_ring->rx_packets++;
|
rx_ring->rx_packets++;
|
||||||
rx_ring->rx_bytes += skb->len;
|
rx_ring->rx_bytes += skb->len;
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* If rx checksum is on, and there are no
|
/* If rx checksum is on, and there are no
|
||||||
* csum or frame errors.
|
* csum or frame errors.
|
||||||
|
@ -1996,7 +1996,7 @@ static void ql_process_mac_split_rx_intr(struct ql_adapter *qdev,
|
||||||
}
|
}
|
||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* If rx checksum is on, and there are no
|
/* If rx checksum is on, and there are no
|
||||||
* csum or frame errors.
|
* csum or frame errors.
|
||||||
|
|
|
@ -4460,7 +4460,7 @@ static inline void rtl8169_rx_csum(struct sk_buff *skb, struct RxDesc *desc)
|
||||||
((status == RxProtoIP) && !(opts1 & IPFail)))
|
((status == RxProtoIP) && !(opts1 & IPFail)))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool rtl8169_try_rx_copy(struct sk_buff **sk_buff,
|
static inline bool rtl8169_try_rx_copy(struct sk_buff **sk_buff,
|
||||||
|
|
|
@ -7603,10 +7603,10 @@ static int rx_osm_handler(struct ring_info *ring_data, struct RxD_t * rxdp)
|
||||||
* Packet with erroneous checksum, let the
|
* Packet with erroneous checksum, let the
|
||||||
* upper layers deal with it.
|
* upper layers deal with it.
|
||||||
*/
|
*/
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
swstats->mem_freed += skb->truesize;
|
swstats->mem_freed += skb->truesize;
|
||||||
send_up:
|
send_up:
|
||||||
|
|
|
@ -1170,7 +1170,7 @@ again:
|
||||||
sb->ip_summed = CHECKSUM_UNNECESSARY;
|
sb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
/* don't need to set sb->csum */
|
/* don't need to set sb->csum */
|
||||||
} else {
|
} else {
|
||||||
sb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(sb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
prefetch(sb->data);
|
prefetch(sb->data);
|
||||||
|
|
|
@ -615,7 +615,7 @@ void __efx_rx_packet(struct efx_channel *channel,
|
||||||
EFX_BUG_ON_PARANOID(!skb);
|
EFX_BUG_ON_PARANOID(!skb);
|
||||||
|
|
||||||
/* Set the SKB flags */
|
/* Set the SKB flags */
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
/* Pass the packet up */
|
/* Pass the packet up */
|
||||||
netif_receive_skb(skb);
|
netif_receive_skb(skb);
|
||||||
|
|
|
@ -798,7 +798,7 @@ static int sh_eth_rx(struct net_device *ndev)
|
||||||
skb->dev = ndev;
|
skb->dev = ndev;
|
||||||
sh_eth_set_receive_align(skb);
|
sh_eth_set_receive_align(skb);
|
||||||
|
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4));
|
rxdesc->addr = virt_to_phys(PTR_ALIGN(skb->data, 4));
|
||||||
}
|
}
|
||||||
if (entry >= RX_RING_SIZE - 1)
|
if (entry >= RX_RING_SIZE - 1)
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
|
||||||
smsc911x_rx_readfifo(pdata, (unsigned int *)skb->head,
|
smsc911x_rx_readfifo(pdata, (unsigned int *)skb->head,
|
||||||
pktwords);
|
pktwords);
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
netif_receive_skb(skb);
|
netif_receive_skb(skb);
|
||||||
|
|
||||||
/* Update counters */
|
/* Update counters */
|
||||||
|
|
|
@ -1000,9 +1000,9 @@ spider_net_pass_skb_up(struct spider_net_descr *descr,
|
||||||
!(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK))
|
!(data_error & SPIDER_NET_DATA_ERR_CKSUM_MASK))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
} else
|
} else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (data_status & SPIDER_NET_VLAN_PACKET) {
|
if (data_status & SPIDER_NET_VLAN_PACKET) {
|
||||||
/* further enhancements: HW-accel VLAN
|
/* further enhancements: HW-accel VLAN
|
||||||
|
|
|
@ -1256,7 +1256,7 @@ static int stmmac_rx(struct stmmac_priv *priv, int limit)
|
||||||
|
|
||||||
if (unlikely(status == csum_none)) {
|
if (unlikely(status == csum_none)) {
|
||||||
/* always for the old mac 10/100 */
|
/* always for the old mac 10/100 */
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
netif_receive_skb(skb);
|
netif_receive_skb(skb);
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
|
|
|
@ -1297,12 +1297,13 @@ static int bdx_rx_receive(struct bdx_priv *priv, struct rxd_fifo *f, int budget)
|
||||||
ndev->stats.rx_bytes += len;
|
ndev->stats.rx_bytes += len;
|
||||||
|
|
||||||
skb_put(skb, len);
|
skb_put(skb, len);
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
|
||||||
skb->protocol = eth_type_trans(skb, ndev);
|
skb->protocol = eth_type_trans(skb, ndev);
|
||||||
|
|
||||||
/* Non-IP packets aren't checksum-offloaded */
|
/* Non-IP packets aren't checksum-offloaded */
|
||||||
if (GET_RXD_PKT_ID(rxd_val1) == 0)
|
if (GET_RXD_PKT_ID(rxd_val1) == 0)
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
else
|
||||||
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
|
|
||||||
NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb);
|
NETIF_RX_MUX(priv, rxd_val1, rxd_vlan, skb);
|
||||||
|
|
||||||
|
|
|
@ -4719,7 +4719,7 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget)
|
||||||
>> RXD_TCPCSUM_SHIFT) == 0xffff))
|
>> RXD_TCPCSUM_SHIFT) == 0xffff))
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, tp->dev);
|
skb->protocol = eth_type_trans(skb, tp->dev);
|
||||||
|
|
||||||
|
|
|
@ -1760,7 +1760,7 @@ typhoon_rx(struct typhoon *tp, struct basic_ring *rxRing, volatile __le32 * read
|
||||||
(TYPHOON_RX_IP_CHK_GOOD | TYPHOON_RX_UDP_CHK_GOOD)) {
|
(TYPHOON_RX_IP_CHK_GOOD | TYPHOON_RX_UDP_CHK_GOOD)) {
|
||||||
new_skb->ip_summed = CHECKSUM_UNNECESSARY;
|
new_skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
} else
|
} else
|
||||||
new_skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(new_skb);
|
||||||
|
|
||||||
spin_lock(&tp->state_lock);
|
spin_lock(&tp->state_lock);
|
||||||
if(tp->vlgrp != NULL && rx->rxStatus & TYPHOON_RX_VLAN)
|
if(tp->vlgrp != NULL && rx->rxStatus & TYPHOON_RX_VLAN)
|
||||||
|
|
|
@ -1954,7 +1954,7 @@ static int velocity_tx_srv(struct velocity_info *vptr)
|
||||||
*/
|
*/
|
||||||
static inline void velocity_rx_csum(struct rx_desc *rd, struct sk_buff *skb)
|
static inline void velocity_rx_csum(struct rx_desc *rd, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
if (rd->rdesc1.CSM & CSM_IPKT) {
|
if (rd->rdesc1.CSM & CSM_IPKT) {
|
||||||
if (rd->rdesc1.CSM & CSM_IPOK) {
|
if (rd->rdesc1.CSM & CSM_IPOK) {
|
||||||
|
|
|
@ -1042,11 +1042,11 @@ vmxnet3_rx_csum(struct vmxnet3_adapter *adapter,
|
||||||
skb->csum = htons(gdesc->rcd.csum);
|
skb->csum = htons(gdesc->rcd.csum);
|
||||||
skb->ip_summed = CHECKSUM_PARTIAL;
|
skb->ip_summed = CHECKSUM_PARTIAL;
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -501,7 +501,7 @@ vxge_rx_1b_compl(struct __vxge_hw_ring *ringh, void *dtr,
|
||||||
ext_info.l4_cksum == VXGE_HW_L4_CKSUM_OK)
|
ext_info.l4_cksum == VXGE_HW_L4_CKSUM_OK)
|
||||||
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
skb->ip_summed = CHECKSUM_UNNECESSARY;
|
||||||
else
|
else
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
vxge_rx_complete(ring, skb, ext_info.vlan,
|
vxge_rx_complete(ring, skb, ext_info.vlan,
|
||||||
pkt_length, &ext_info);
|
pkt_length, &ext_info);
|
||||||
|
|
|
@ -641,7 +641,7 @@ static void xemaclite_rx_handler(struct net_device *dev)
|
||||||
skb_put(skb, len); /* Tell the skb how much data we got */
|
skb_put(skb, len); /* Tell the skb how much data we got */
|
||||||
|
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb_checksum_none_assert(skb);
|
||||||
|
|
||||||
dev->stats.rx_packets++;
|
dev->stats.rx_packets++;
|
||||||
dev->stats.rx_bytes += len;
|
dev->stats.rx_bytes += len;
|
||||||
|
|
|
@ -2206,6 +2206,21 @@ static inline void skb_forward_csum(struct sk_buff *skb)
|
||||||
skb->ip_summed = CHECKSUM_NONE;
|
skb->ip_summed = CHECKSUM_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* skb_checksum_none_assert - make sure skb ip_summed is CHECKSUM_NONE
|
||||||
|
* @skb: skb to check
|
||||||
|
*
|
||||||
|
* fresh skbs have their ip_summed set to CHECKSUM_NONE.
|
||||||
|
* Instead of forcing ip_summed to CHECKSUM_NONE, we can
|
||||||
|
* use this helper, to document places where we make this assertion.
|
||||||
|
*/
|
||||||
|
static inline void skb_checksum_none_assert(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
BUG_ON(skb->ip_summed != CHECKSUM_NONE);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
|
bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* _LINUX_SKBUFF_H */
|
#endif /* _LINUX_SKBUFF_H */
|
||||||
|
|
Loading…
Reference in New Issue