diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index bf40fdaecfa3..a37039d353c5 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
| @@ -1776,6 +1776,7 @@ static void be_post_rx_frags(struct be_rx_obj *rxo, gfp_t gfp) | |||
| 1776 | struct be_rx_page_info *page_info = NULL, *prev_page_info = NULL; | 1776 | struct be_rx_page_info *page_info = NULL, *prev_page_info = NULL; |
| 1777 | struct be_queue_info *rxq = &rxo->q; | 1777 | struct be_queue_info *rxq = &rxo->q; |
| 1778 | struct page *pagep = NULL; | 1778 | struct page *pagep = NULL; |
| 1779 | struct device *dev = &adapter->pdev->dev; | ||
| 1779 | struct be_eth_rx_d *rxd; | 1780 | struct be_eth_rx_d *rxd; |
| 1780 | u64 page_dmaaddr = 0, frag_dmaaddr; | 1781 | u64 page_dmaaddr = 0, frag_dmaaddr; |
| 1781 | u32 posted, page_offset = 0; | 1782 | u32 posted, page_offset = 0; |
| @@ -1788,9 +1789,15 @@ static void be_post_rx_frags(struct be_rx_obj *rxo, gfp_t gfp) | |||
| 1788 | rx_stats(rxo)->rx_post_fail++; | 1789 | rx_stats(rxo)->rx_post_fail++; |
| 1789 | break; | 1790 | break; |
| 1790 | } | 1791 | } |
| 1791 | page_dmaaddr = dma_map_page(&adapter->pdev->dev, pagep, | 1792 | page_dmaaddr = dma_map_page(dev, pagep, 0, |
| 1792 | 0, adapter->big_page_size, | 1793 | adapter->big_page_size, |
| 1793 | DMA_FROM_DEVICE); | 1794 | DMA_FROM_DEVICE); |
| 1795 | if (dma_mapping_error(dev, page_dmaaddr)) { | ||
| 1796 | put_page(pagep); | ||
| 1797 | pagep = NULL; | ||
| 1798 | rx_stats(rxo)->rx_post_fail++; | ||
| 1799 | break; | ||
| 1800 | } | ||
| 1794 | page_info->page_offset = 0; | 1801 | page_info->page_offset = 0; |
| 1795 | } else { | 1802 | } else { |
| 1796 | get_page(pagep); | 1803 | get_page(pagep); |
