public inbox for linux-next@vger.kernel.org 
 help / color / mirror / Atom feed
* [PATCH] sfc: Fix DMA mapping cleanup in case of an error in TSO
@ 2010-01-06 15:59 Ben Hutchings
  0 siblings, 0 replies; only message in thread
From: Ben Hutchings @ 2010-01-06 15:59 UTC (permalink / raw)
  To: stable; +Cc: linux-next

From: Neil Turton <nturton@solarflare•com>

commit a7ebd27a13757248863cd61e541af7fa9e7727ee upstream

We need buffer->len to remain valid to work out the correct address to
be unmapped.  We therefore need to clear buffer->len after the unmap
operation.

Signed-off-by: Ben Hutchings <bhutchings@solarflare•com>
---
This applies to 2.6.31 and .32 with harmless fuzz.
For 2.6.27, change 'true' to '1' before applying.

Ben.

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

diff --git a/drivers/net/sfc/tx.c b/drivers/net/sfc/tx.c
index e669f94..a8b70ef 100644
--- a/drivers/net/sfc/tx.c
+++ b/drivers/net/sfc/tx.c
@@ -821,8 +821,6 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue)
 					   EFX_TXQ_MASK];
 		efx_tsoh_free(tx_queue, buffer);
 		EFX_BUG_ON_PARANOID(buffer->skb);
-		buffer->len = 0;
-		buffer->continuation = true;
 		if (buffer->unmap_len) {
 			unmap_addr = (buffer->dma_addr + buffer->len -
 				      buffer->unmap_len);
@@ -836,6 +834,8 @@ static void efx_enqueue_unwind(struct efx_tx_queue *tx_queue)
 					       PCI_DMA_TODEVICE);
 			buffer->unmap_len = 0;
 		}
+		buffer->len = 0;
+		buffer->continuation = true;
 	}
 }
 
-- 
1.5.5


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

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2010-01-06 15:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-06 15:59 [PATCH] sfc: Fix DMA mapping cleanup in case of an error in TSO Ben Hutchings

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox