ixgb: fix bug when freeing resources
Subsystems (2)
PATCH 1/1 ixgb: fix bug when freeing resources
From: Jesse Brandeburg <[email protected]>
It was pointed out by Breno Leitao <[email protected]> that ixgb would crash on PPC when an IOMMU was in use, if change_mtu was called.
It appears to be a pretty simple issue in the driver that wasn't discovered because most systems don't run with an IOMMU. The driver needs to only unmap buffers that are mapped (duh).
Signed-off-by Jesse Brandeburg <[email protected]>
Signed-off-by Jeff Kirsher <[email protected]>
CC Breno Leitao <[email protected]>
---
drivers/net/ixgb/ixgb_main.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
drivers/net/ixgb/ixgb_main.c +5 -3
@@ -977,15 +977,17 @@ ixgb_clean_rx_ring(struct ixgb_adapter *adapter)for (i =0 ; i < rx_ring->count; i++) { buffer_info = &rx_ring->buffer_info[i]; -if (buffer_info->skb) { - +if (buffer_info->dma) {pci_unmap_single (pdev, buffer_info->dma, buffer_info->length,PCI_DMA_FROMDEVICE ); + buffer_info->dma =0 ; + buffer_info->length =0 ; + } +if (buffer_info->skb) {dev_kfree_skb (buffer_info->skb); - buffer_info->skb =NULL ; } }