pull request: sfc 2012-02-25

4 messages, 3 authors, 2012-02-25 · open the first message on its own page

pull request: sfc 2012-02-25

From: Ben Hutchings <hidden>
Date: 2012-02-25 01:11:28

The following changes since commit 8a49ad6e89feb5015e77ce6efeb2678947117e20:

  ppp: fix 'ppp_mp_reconstruct bad seq' errors (2012-02-24 17:53:21 -0500)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc.git sfc-3.3

(commit ff3bc1e7527504a93710535611b2f812f3bb89bf)

Fixes incorrect marking of skbs as checksummed.  Please send this on to
stable as well; the bug was introduced in 2.6.37.

Ben.

Ben Hutchings (1):
      sfc: Fix assignment of ip_summed for pre-allocated skbs

 drivers/net/ethernet/sfc/rx.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


[PATCH net] sfc: Fix assignment of ip_summed for pre-allocated skbs

From: Ben Hutchings <hidden>
Date: 2012-02-25 01:12:37

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 <redacted>
---
 drivers/net/ethernet/sfc/rx.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
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);
 	}
-- 
1.7.7.6


-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

Re: pull request: sfc 2012-02-25

From: David Miller <davem@davemloft.net>
Date: 2012-02-25 03:13:49

From: Ben Hutchings <redacted>
Date: Sat, 25 Feb 2012 01:11:17 +0000
The following changes since commit 8a49ad6e89feb5015e77ce6efeb2678947117e20:

  ppp: fix 'ppp_mp_reconstruct bad seq' errors (2012-02-24 17:53:21 -0500)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc.git sfc-3.3

(commit ff3bc1e7527504a93710535611b2f812f3bb89bf)

Fixes incorrect marking of skbs as checksummed.  Please send this on to
stable as well; the bug was introduced in 2.6.37.
Pulled and queued up for -stable, thanks.

Re: [PATCH net] sfc: Fix assignment of ip_summed for pre-allocated skbs

From: Eric Dumazet <hidden>
Date: 2012-02-25 06:01:20

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 <redacted>
---
Ah, I'm sorry I missed this.

Thanks !
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help