* [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