diff options
-rw-r--r-- | drivers/net/ethernet/3com/typhoon.c | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/adaptec/starfire.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/skge.c | 4 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/sky2.c | 13 | ||||
-rw-r--r-- | drivers/net/ethernet/neterion/s2io.c | 8 | ||||
-rw-r--r-- | drivers/net/ethernet/seeq/Kconfig | 1 | ||||
-rw-r--r-- | drivers/net/ethernet/sfc/rx.c | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/sfc/tx.c | 13 | ||||
-rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/sun/sungem.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/sun/sunhme.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/tehuti/tehuti.c | 6 | ||||
-rw-r--r-- | drivers/net/ethernet/tundra/tsi108_eth.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/via/via-velocity.c | 7 | ||||
-rw-r--r-- | drivers/net/virtio_net.c | 2 | ||||
-rw-r--r-- | drivers/net/vmxnet3/vmxnet3_drv.c | 8 |
16 files changed, 45 insertions, 50 deletions
diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c index f1dc9acf6105..607c09e3dc80 100644 --- a/drivers/net/ethernet/3com/typhoon.c +++ b/drivers/net/ethernet/3com/typhoon.c @@ -819,8 +819,7 @@ typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) typhoon_inc_tx_index(&txRing->lastWrite, 1); len = frag->size; - frag_addr = (void *) page_address(frag->page) + - frag->page_offset; + frag_addr = skb_frag_address(frag); skb_dma = pci_map_single(tp->tx_pdev, frag_addr, len, PCI_DMA_TODEVICE); txd->flags = TYPHOON_FRAG_DESC | TYPHOON_DESC_VALID; diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c index df51fdd72353..d6b015598569 100644 --- a/drivers/net/ethernet/adaptec/starfire.c +++ b/drivers/net/ethernet/adaptec/starfire.c @@ -1259,7 +1259,10 @@ static netdev_tx_t start_tx(struct sk_buff *skb, struct net_device *dev) skb_frag_t *this_frag = &skb_shinfo(skb)->frags[i - 1]; status |= this_frag->size; np->tx_info[entry].mapping = - pci_map_single(np->pci_dev, page_address(this_frag->page) + this_frag->page_offset, this_frag->size, PCI_DMA_TODEVICE); + pci_map_single(np->pci_dev, + skb_frag_address(this_frag), + this_frag->size, + PCI_DMA_TODEVICE); } np->tx_ring[entry].addr = cpu_to_dma(np->tx_info[entry].mapping); diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c index 34622b038094..88e5856e06db 100644 --- a/drivers/net/ethernet/marvell/skge.c +++ b/drivers/net/ethernet/marvell/skge.c @@ -2758,8 +2758,8 @@ static netdev_tx_t skge_xmit_frame(struct sk_buff *skb, for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - map = pci_map_page(hw->pdev, frag->page, frag->page_offset, - frag->size, PCI_DMA_TODEVICE); + map = skb_frag_dma_map(&hw->pdev->dev, frag, 0, + frag->size, PCI_DMA_TODEVICE); e = e->next; e->skb = skb; diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index 3ff0a1292933..ef2dc021d09c 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c @@ -1226,10 +1226,9 @@ static int sky2_rx_map_skb(struct pci_dev *pdev, struct rx_ring_info *re, for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - re->frag_addr[i] = pci_map_page(pdev, frag->page, - frag->page_offset, - frag->size, - PCI_DMA_FROMDEVICE); + re->frag_addr[i] = skb_frag_dma_map(&pdev->dev, frag, 0, + frag->size, + PCI_DMA_FROMDEVICE); if (pci_dma_mapping_error(pdev, re->frag_addr[i])) goto map_page_error; @@ -1910,8 +1909,8 @@ static netdev_tx_t sky2_xmit_frame(struct sk_buff *skb, for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - mapping = pci_map_page(hw->pdev, frag->page, frag->page_offset, - frag->size, PCI_DMA_TODEVICE); + mapping = skb_frag_dma_map(&hw->pdev->dev, frag, 0, + frag->size, PCI_DMA_TODEVICE); if (pci_dma_mapping_error(hw->pdev, mapping)) goto mapping_unwind; @@ -2449,7 +2448,7 @@ static void skb_put_frags(struct sk_buff *skb, unsigned int hdr_space, if (length == 0) { /* don't need this page */ - __free_page(frag->page); + __skb_frag_unref(frag); --skb_shinfo(skb)->nr_frags; } else { size = min(length, (unsigned) PAGE_SIZE); diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c index 840cbb25bdde..ef5b825a9a9c 100644 --- a/drivers/net/ethernet/neterion/s2io.c +++ b/drivers/net/ethernet/neterion/s2io.c @@ -4190,10 +4190,10 @@ static netdev_tx_t s2io_xmit(struct sk_buff *skb, struct net_device *dev) if (!frag->size) continue; txdp++; - txdp->Buffer_Pointer = (u64)pci_map_page(sp->pdev, frag->page, - frag->page_offset, - frag->size, - PCI_DMA_TODEVICE); + txdp->Buffer_Pointer = (u64)skb_frag_dma_map(&sp->pdev->dev, + frag, 0, + frag->size, + PCI_DMA_TODEVICE); txdp->Control_1 = TXD_BUFFER0_SIZE(frag->size); if (offload_type == SKB_GSO_UDP) txdp->Control_1 |= TXD_UFO_EN; diff --git a/drivers/net/ethernet/seeq/Kconfig b/drivers/net/ethernet/seeq/Kconfig index 49b6d5b1dfd2..29f18533fdc7 100644 --- a/drivers/net/ethernet/seeq/Kconfig +++ b/drivers/net/ethernet/seeq/Kconfig @@ -5,6 +5,7 @@ config NET_VENDOR_SEEQ bool "SEEQ devices" default y + depends on HAS_IOMEM depends on (ARM && ARCH_ACORN) || SGI_HAS_SEEQ || EXPERIMENTAL ---help--- If you have a network (Ethernet) card belonging to this class, say Y diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c index 62e43649466e..91a6b7123539 100644 --- a/drivers/net/ethernet/sfc/rx.c +++ b/drivers/net/ethernet/sfc/rx.c @@ -478,7 +478,7 @@ static void efx_rx_packet_gro(struct efx_channel *channel, if (efx->net_dev->features & NETIF_F_RXHASH) skb->rxhash = efx_rx_buf_hash(eh); - skb_shinfo(skb)->frags[0].page = page; + skb_frag_set_page(skb, 0, page); skb_shinfo(skb)->frags[0].page_offset = efx_rx_buf_offset(efx, rx_buf); skb_shinfo(skb)->frags[0].size = rx_buf->len; diff --git a/drivers/net/ethernet/sfc/tx.c b/drivers/net/ethernet/sfc/tx.c index 84eb99e0f8d2..f2467a1b51bd 100644 --- a/drivers/net/ethernet/sfc/tx.c +++ b/drivers/net/ethernet/sfc/tx.c @@ -137,8 +137,6 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) struct pci_dev *pci_dev = efx->pci_dev; struct efx_tx_buffer *buffer; skb_frag_t *fragment; - struct page *page; - int page_offset; unsigned int len, unmap_len = 0, fill_level, insert_ptr; dma_addr_t dma_addr, unmap_addr = 0; unsigned int dma_len; @@ -241,13 +239,11 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb) break; fragment = &skb_shinfo(skb)->frags[i]; len = fragment->size; - page = fragment->page; - page_offset = fragment->page_offset; i++; /* Map for DMA */ unmap_single = false; - dma_addr = pci_map_page(pci_dev, page, page_offset, len, - PCI_DMA_TODEVICE); + dma_addr = skb_frag_dma_map(&pci_dev->dev, fragment, 0, len, + PCI_DMA_TODEVICE); } /* Transfer ownership of the skb to the final buffer */ @@ -929,9 +925,8 @@ static void tso_start(struct tso_state *st, const struct sk_buff *skb) static int tso_get_fragment(struct tso_state *st, struct efx_nic *efx, skb_frag_t *frag) { - st->unmap_addr = pci_map_page(efx->pci_dev, frag->page, - frag->page_offset, frag->size, - PCI_DMA_TODEVICE); + st->unmap_addr = skb_frag_dma_map(&efx->pci_dev->dev, frag, 0, + frag->size, PCI_DMA_TODEVICE); if (likely(!pci_dma_mapping_error(efx->pci_dev, st->unmap_addr))) { st->unmap_single = false; st->unmap_len = frag->size; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index d0fbc5477d10..c0ee6b6b0198 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1113,9 +1113,8 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev) desc = priv->dma_tx + entry; TX_DBG("\t[entry %d] segment len: %d\n", entry, len); - desc->des2 = dma_map_page(priv->device, frag->page, - frag->page_offset, - len, DMA_TO_DEVICE); + desc->des2 = skb_frag_dma_map(priv->device, frag, 0, len, + DMA_TO_DEVICE); priv->tx_skbuff[entry] = NULL; priv->hw->desc->prepare_tx_desc(desc, 0, len, csum_insertion); wmb(); diff --git a/drivers/net/ethernet/sun/sungem.c b/drivers/net/ethernet/sun/sungem.c index 11fd299f5b99..2bfa1715fe23 100644 --- a/drivers/net/ethernet/sun/sungem.c +++ b/drivers/net/ethernet/sun/sungem.c @@ -1071,10 +1071,8 @@ static netdev_tx_t gem_start_xmit(struct sk_buff *skb, u64 this_ctrl; len = this_frag->size; - mapping = pci_map_page(gp->pdev, - this_frag->page, - this_frag->page_offset, - len, PCI_DMA_TODEVICE); + mapping = skb_frag_dma_map(&gp->pdev->dev, this_frag, + 0, len, PCI_DMA_TODEVICE); this_ctrl = ctrl; if (frag == skb_shinfo(skb)->nr_frags - 1) this_ctrl |= TXDCTRL_EOF; diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c index 42f866ef81e1..869d47be54b4 100644 --- a/drivers/net/ethernet/sun/sunhme.c +++ b/drivers/net/ethernet/sun/sunhme.c @@ -2309,9 +2309,8 @@ static netdev_tx_t happy_meal_start_xmit(struct sk_buff *skb, u32 len, mapping, this_txflags; len = this_frag->size; - mapping = dma_map_page(hp->dma_dev, this_frag->page, - this_frag->page_offset, len, - DMA_TO_DEVICE); + mapping = skb_frag_dma_map(hp->dma_dev, this_frag, + 0, len, DMA_TO_DEVICE); this_txflags = tx_flags; if (frag == skb_shinfo(skb)->nr_frags - 1) this_txflags |= TXFLAG_EOP; diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c index bc65aa8de4d0..371ab7abd377 100644 --- a/drivers/net/ethernet/tehuti/tehuti.c +++ b/drivers/net/ethernet/tehuti/tehuti.c @@ -1497,9 +1497,9 @@ bdx_tx_map_skb(struct bdx_priv *priv, struct sk_buff *skb, frag = &skb_shinfo(skb)->frags[i]; db->wptr->len = frag->size; - db->wptr->addr.dma = - pci_map_page(priv->pdev, frag->page, frag->page_offset, - frag->size, PCI_DMA_TODEVICE); + db->wptr->addr.dma = skb_frag_dma_map(&priv->pdev->dev, frag, + 0, frag->size, + PCI_DMA_TODEVICE); pbl++; pbl->len = CPU_CHIP_SWAP32(db->wptr->len); diff --git a/drivers/net/ethernet/tundra/tsi108_eth.c b/drivers/net/ethernet/tundra/tsi108_eth.c index 480a4ba53172..a03996cf88ed 100644 --- a/drivers/net/ethernet/tundra/tsi108_eth.c +++ b/drivers/net/ethernet/tundra/tsi108_eth.c @@ -711,9 +711,10 @@ static int tsi108_send_packet(struct sk_buff * skb, struct net_device *dev) } else { skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1]; - data->txring[tx].buf0 = - dma_map_page(NULL, frag->page, frag->page_offset, - frag->size, DMA_TO_DEVICE); + data->txring[tx].buf0 = skb_frag_dma_map(NULL, frag, + 0, + frag->size, + DMA_TO_DEVICE); data->txring[tx].len = frag->size; } diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c index 086463b141b6..1ec32c424e07 100644 --- a/drivers/net/ethernet/via/via-velocity.c +++ b/drivers/net/ethernet/via/via-velocity.c @@ -2556,9 +2556,10 @@ static netdev_tx_t velocity_xmit(struct sk_buff *skb, for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - tdinfo->skb_dma[i + 1] = pci_map_page(vptr->pdev, frag->page, - frag->page_offset, frag->size, - PCI_DMA_TODEVICE); + tdinfo->skb_dma[i + 1] = skb_frag_dma_map(&vptr->pdev->dev, + frag, 0, + frag->size, + PCI_DMA_TODEVICE); td_ptr->td_buf[i + 1].pa_low = cpu_to_le32(tdinfo->skb_dma[i + 1]); td_ptr->td_buf[i + 1].pa_high = 0; diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 4f09f88f1c28..d6e93ba9ff47 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -149,7 +149,7 @@ static void set_skb_frag(struct sk_buff *skb, struct page *page, f = &skb_shinfo(skb)->frags[i]; f->size = min((unsigned)PAGE_SIZE - offset, *len); f->page_offset = offset; - f->page = page; + __skb_frag_set_page(f, page); skb->data_len += f->size; skb->len += f->size; diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 759c1a49cc7b..57e7c66a9057 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -654,7 +654,7 @@ vmxnet3_append_frag(struct sk_buff *skb, struct Vmxnet3_RxCompDesc *rcd, BUG_ON(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS); - frag->page = rbi->page; + __skb_frag_set_page(frag, rbi->page); frag->page_offset = 0; frag->size = rcd->len; skb->data_len += frag->size; @@ -748,9 +748,9 @@ vmxnet3_map_pkt(struct sk_buff *skb, struct vmxnet3_tx_ctx *ctx, tbi = tq->buf_info + tq->tx_ring.next2fill; tbi->map_type = VMXNET3_MAP_PAGE; - tbi->dma_addr = pci_map_page(adapter->pdev, frag->page, - frag->page_offset, frag->size, - PCI_DMA_TODEVICE); + tbi->dma_addr = skb_frag_dma_map(&adapter->pdev->dev, frag, + 0, frag->size, + PCI_DMA_TODEVICE); tbi->len = frag->size; |