diff options
| author | Ian Campbell <[email protected]> | 2011-08-29 23:18:26 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2011-08-30 21:58:01 +0000 |
| commit | 877749bf3f2f7a517ae74cd2c2fa4eed7aa9b51d (patch) | |
| tree | 31ae3231c7a81515b82bd8e60397a05cdf61709b /drivers/net/ethernet/intel/e1000/e1000_main.c | |
| parent | cassini: convert to SKB paged frag API. (diff) | |
| download | kernel-877749bf3f2f7a517ae74cd2c2fa4eed7aa9b51d.tar.gz kernel-877749bf3f2f7a517ae74cd2c2fa4eed7aa9b51d.zip | |
intel: convert to SKB paged frag API.
Signed-off-by: Ian Campbell <[email protected]>
Cc: Jeff Kirsher <[email protected]>
Cc: Jesse Brandeburg <[email protected]>
Cc: Bruce Allan <[email protected]>
Cc: Carolyn Wyborny <[email protected]>
Cc: Don Skidmore <[email protected]>
Cc: Greg Rose <[email protected]>
Cc: PJ Waskiewicz <[email protected]>
Cc: Alex Duyck <[email protected]>
Cc: John Ronciak <[email protected]>
Cc: [email protected]
Cc: [email protected]
Acked-by: Jeff Kirsher <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/e1000/e1000_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 4a32c15524c9..27f586afcc34 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -2911,9 +2911,10 @@ static int e1000_tx_map(struct e1000_adapter *adapter, frag = &skb_shinfo(skb)->frags[f]; len = frag->size; - offset = frag->page_offset; + offset = 0; while (len) { + unsigned long bufend; i++; if (unlikely(i == tx_ring->count)) i = 0; @@ -2927,18 +2928,19 @@ static int e1000_tx_map(struct e1000_adapter *adapter, /* Workaround for potential 82544 hang in PCI-X. * Avoid terminating buffers within evenly-aligned * dwords. */ + bufend = (unsigned long) + page_to_phys(skb_frag_page(frag)); + bufend += offset + size - 1; if (unlikely(adapter->pcix_82544 && - !((unsigned long)(page_to_phys(frag->page) + offset - + size - 1) & 4) && - size > 4)) + !(bufend & 4) && + size > 4)) size -= 4; buffer_info->length = size; buffer_info->time_stamp = jiffies; buffer_info->mapped_as_page = true; - buffer_info->dma = dma_map_page(&pdev->dev, frag->page, - offset, size, - DMA_TO_DEVICE); + buffer_info->dma = skb_frag_dma_map(&pdev->dev, frag, + offset, size, DMA_TO_DEVICE); if (dma_mapping_error(&pdev->dev, buffer_info->dma)) goto dma_error; buffer_info->next_to_watch = i; |
