diff options
| author | David S. Miller <davem@davemloft.net> | 2012-10-31 14:25:33 -0400 | 
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-10-31 14:26:44 -0400 | 
| commit | 810b6d7638a288216f99bd190470d67061c8bd88 (patch) | |
| tree | 5c8dd20b10cf4d7d40d286c9b3dd71d6dedaf78c /drivers/net/ethernet/intel/igbvf/netdev.c | |
| parent | f7b4fb22b838f895ce9fa994f0ef4f7f541f5266 (diff) | |
| parent | ac61d515f14fd205d8c917a34b27a767b4fe9e05 (diff) | |
| download | olio-linux-3.10-810b6d7638a288216f99bd190470d67061c8bd88.tar.xz olio-linux-3.10-810b6d7638a288216f99bd190470d67061c8bd88.zip  | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next
Jeff Kirsher says:
====================
This series contains updates to ixgbe, ixgbevf, igbvf, igb and
networking core (bridge).  Most notably is the addition of support
for local link multicast addresses in SR-IOV mode to the networking
core.
Also note, the ixgbe patch "ixgbe: Add support for pipeline reset" and
"ixgbe: Fix return value from macvlan filter function" is revised based
on community feedback.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/intel/igbvf/netdev.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igbvf/netdev.c | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c index 0ac11f527a8..4051ec40461 100644 --- a/drivers/net/ethernet/intel/igbvf/netdev.c +++ b/drivers/net/ethernet/intel/igbvf/netdev.c @@ -184,6 +184,13 @@ static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring,  				             buffer_info->page_offset,  				             PAGE_SIZE / 2,  					     DMA_FROM_DEVICE); +			if (dma_mapping_error(&pdev->dev, +					      buffer_info->page_dma)) { +				__free_page(buffer_info->page); +				buffer_info->page = NULL; +				dev_err(&pdev->dev, "RX DMA map failed\n"); +				break; +			}  		}  		if (!buffer_info->skb) { @@ -197,6 +204,12 @@ static void igbvf_alloc_rx_buffers(struct igbvf_ring *rx_ring,  			buffer_info->dma = dma_map_single(&pdev->dev, skb->data,  			                                  bufsz,  							  DMA_FROM_DEVICE); +			if (dma_mapping_error(&pdev->dev, buffer_info->dma)) { +				dev_kfree_skb(buffer_info->skb); +				buffer_info->skb = NULL; +				dev_err(&pdev->dev, "RX DMA map failed\n"); +				goto no_buffers; +			}  		}  		/* Refresh the desc even if buffer_addrs didn't change because  		 * each write-back erases this info. */  |