Message ID | 1330132354.2397.18.camel@bwh-desktop |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Le samedi 25 février 2012 à 01:12 +0000, Ben Hutchings a écrit : > When pre-allocating skbs for received packets, we set ip_summed = > CHECKSUM_UNNCESSARY. We used to change it back to CHECKSUM_NONE when > the received packet had an incorrect checksum or unhandled protocol. > > Commit bc8acf2c8c3e43fcc192762a9f964b3e9a17748b ('drivers/net: avoid > some skb->ip_summed initializations') mistakenly replaced the latter > assignment with a DEBUG-only assertion that ip_summed == > CHECKSUM_NONE. This assertion is always false, but it seems no-one > has exercised this code path in a DEBUG build. > > Fix this by moving our assignment of CHECKSUM_UNNECESSARY into > efx_rx_packet_gro(). > > Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> > --- Ah, I'm sorry I missed this. Thanks ! -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c index aca3498..fc52fca 100644 --- a/drivers/net/ethernet/sfc/rx.c +++ b/drivers/net/ethernet/sfc/rx.c @@ -156,11 +156,10 @@ static int efx_init_rx_buffers_skb(struct efx_rx_queue *rx_queue) if (unlikely(!skb)) return -ENOMEM; - /* Adjust the SKB for padding and checksum */ + /* Adjust the SKB for padding */ skb_reserve(skb, NET_IP_ALIGN); rx_buf->len = skb_len - NET_IP_ALIGN; rx_buf->is_page = false; - skb->ip_summed = CHECKSUM_UNNECESSARY; rx_buf->dma_addr = pci_map_single(efx->pci_dev, skb->data, rx_buf->len, @@ -496,6 +495,7 @@ static void efx_rx_packet_gro(struct efx_channel *channel, EFX_BUG_ON_PARANOID(!checksummed); rx_buf->u.skb = NULL; + skb->ip_summed = CHECKSUM_UNNECESSARY; gro_result = napi_gro_receive(napi, skb); }
When pre-allocating skbs for received packets, we set ip_summed = CHECKSUM_UNNCESSARY. We used to change it back to CHECKSUM_NONE when the received packet had an incorrect checksum or unhandled protocol. Commit bc8acf2c8c3e43fcc192762a9f964b3e9a17748b ('drivers/net: avoid some skb->ip_summed initializations') mistakenly replaced the latter assignment with a DEBUG-only assertion that ip_summed == CHECKSUM_NONE. This assertion is always false, but it seems no-one has exercised this code path in a DEBUG build. Fix this by moving our assignment of CHECKSUM_UNNECESSARY into efx_rx_packet_gro(). Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> --- drivers/net/ethernet/sfc/rx.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)