Commit 3e847423 authored by Al Viro's avatar Al Viro Committed by Linus Torvalds

fix s2io regression

 * wrong argument passed to pci_unmap_single() on failure
   exit paths
 * leak in the same area
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c73d8347
...@@ -2430,7 +2430,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no) ...@@ -2430,7 +2430,7 @@ static int fill_rx_buffers(struct s2io_nic *nic, int ring_no)
(rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) {
pci_unmap_single pci_unmap_single
(nic->pdev, (nic->pdev,
(dma_addr_t)skb->data, (dma_addr_t)rxdp3->Buffer2_ptr,
dev->mtu + 4, dev->mtu + 4,
PCI_DMA_FROMDEVICE); PCI_DMA_FROMDEVICE);
goto pci_map_failed; goto pci_map_failed;
...@@ -6211,7 +6211,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp, ...@@ -6211,7 +6211,7 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
if( (rxdp3->Buffer0_ptr == 0) || if( (rxdp3->Buffer0_ptr == 0) ||
(rxdp3->Buffer0_ptr == DMA_ERROR_CODE)) { (rxdp3->Buffer0_ptr == DMA_ERROR_CODE)) {
pci_unmap_single (sp->pdev, pci_unmap_single (sp->pdev,
(dma_addr_t)(*skb)->data, (dma_addr_t)rxdp3->Buffer2_ptr,
dev->mtu + 4, PCI_DMA_FROMDEVICE); dev->mtu + 4, PCI_DMA_FROMDEVICE);
goto memalloc_failed; goto memalloc_failed;
} }
...@@ -6224,7 +6224,10 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp, ...@@ -6224,7 +6224,10 @@ static int set_rxd_buffer_pointer(struct s2io_nic *sp, struct RxD_t *rxdp,
if( (rxdp3->Buffer1_ptr == 0) || if( (rxdp3->Buffer1_ptr == 0) ||
(rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) { (rxdp3->Buffer1_ptr == DMA_ERROR_CODE)) {
pci_unmap_single (sp->pdev, pci_unmap_single (sp->pdev,
(dma_addr_t)(*skb)->data, (dma_addr_t)rxdp3->Buffer0_ptr,
BUF0_LEN, PCI_DMA_FROMDEVICE);
pci_unmap_single (sp->pdev,
(dma_addr_t)rxdp3->Buffer2_ptr,
dev->mtu + 4, PCI_DMA_FROMDEVICE); dev->mtu + 4, PCI_DMA_FROMDEVICE);
goto memalloc_failed; goto memalloc_failed;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment