sfc: Don't leak PCI DMA maps in the TSO code when the queue fills up

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
This commit is contained in:
Ben Hutchings 2008-09-01 12:46:36 +01:00 committed by Jeff Garzik
parent b9aafb0e91
commit 5988b63a53
1 changed files with 5 additions and 0 deletions

View File

@ -1096,6 +1096,11 @@ static int efx_enqueue_skb_tso(struct efx_tx_queue *tx_queue,
efx_stop_queue(tx_queue->efx);
unwind:
/* Free the DMA mapping we were in the process of writing out */
if (state.ifc.unmap_len)
pci_unmap_page(tx_queue->efx->pci_dev, state.ifc.unmap_addr,
state.ifc.unmap_len, PCI_DMA_TODEVICE);
efx_enqueue_unwind(tx_queue);
return rc2;
}