* [PATCH 01/14] s2io: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 02/14] sfc: " Ian Campbell
` (13 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Jon Mason
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Jon Mason <jdmason@kudzu.us>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/neterion/s2io.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/neterion/s2io.c b/drivers/net/ethernet/neterion/s2io.c
index 840cbb2..ef5b825 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 02/14] sfc: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
2011-09-22 7:53 ` [PATCH 01/14] s2io: convert to SKB paged frag API Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 03/14] skge: " Ian Campbell
` (12 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev
Cc: Ian Campbell, Solarflare linux maintainers, Steve Hodgson, Ben Hutchings
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
Cc: Steve Hodgson <shodgson@solarflare.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/sfc/rx.c | 2 +-
drivers/net/ethernet/sfc/tx.c | 13 ++++---------
2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c
index 62e4364..91a6b71 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 84eb99e..f2467a1 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 03/14] skge: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
2011-09-22 7:53 ` [PATCH 01/14] s2io: convert to SKB paged frag API Ian Campbell
2011-09-22 7:53 ` [PATCH 02/14] sfc: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 04/14] sky2: " Ian Campbell
` (11 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Stephen Hemminger
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/marvell/skge.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
index 34622b0..88e5856 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 04/14] sky2: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (2 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 03/14] skge: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 05/14] starfire: " Ian Campbell
` (10 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Stephen Hemminger
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/marvell/sky2.c | 13 ++++++-------
1 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 3ff0a12..ef2dc02 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);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 05/14] starfire: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (3 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 04/14] sky2: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 06/14] stmmac: " Ian Campbell
` (9 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/adaptec/starfire.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/net/ethernet/adaptec/starfire.c b/drivers/net/ethernet/adaptec/starfire.c
index df51fdd..d6b0155 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);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 06/14] stmmac: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (4 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 05/14] starfire: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 07/14] sungem: " Ian Campbell
` (8 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Giuseppe Cavallaro
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index d0fbc54..c0ee6b6 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();
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 07/14] sungem: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (5 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 06/14] stmmac: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 08/14] sunhme: " Ian Campbell
` (7 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/sun/sungem.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/sun/sungem.c b/drivers/net/ethernet/sun/sungem.c
index 11fd299..2bfa171 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 08/14] sunhme: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (6 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 07/14] sungem: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 09/14] tehuti: " Ian Campbell
` (6 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/sun/sunhme.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/sun/sunhme.c b/drivers/net/ethernet/sun/sunhme.c
index 42f866e..869d47b 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 09/14] tehuti: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (7 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 08/14] sunhme: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 8:08 ` [PATCH] MAINTAINERS: tehuti: Alexander Indenbaum's address bounces Ian Campbell
2011-09-22 7:53 ` [PATCH 10/14] tsi108: convert to SKB paged frag API Ian Campbell
` (5 subsequent siblings)
14 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Alexander Indenbaum, Andy Gospodarek
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Alexander Indenbaum <baum@tehutinetworks.net>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/tehuti/tehuti.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/tehuti/tehuti.c b/drivers/net/ethernet/tehuti/tehuti.c
index bc65aa8..371ab7a 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);
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH] MAINTAINERS: tehuti: Alexander Indenbaum's address bounces
2011-09-22 7:53 ` [PATCH 09/14] tehuti: " Ian Campbell
@ 2011-09-22 8:08 ` Ian Campbell
2011-09-29 4:32 ` David Miller
0 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 8:08 UTC (permalink / raw)
To: linux-kernel
Cc: Ian Campbell, Alexander Indenbaum, Andy Gospodarek,
Andrew Morton, netdev
I got:
Generating server: Tehuti.onmicrosoft.com
baum@tehutinetworks.net
#< #5.1.1 smtp;550 5.1.1 RESOLVER.ADR.RecipNotFound; not found> #SMTP#
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Alexander Indenbaum <baum@tehutinetworks.net>
Cc: Andy Gospodarek <andy@greyhouse.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: netdev@vger.kernel.org
---
MAINTAINERS | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 579713e..4a8a9c6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6370,7 +6370,6 @@ S: Supported
F: arch/arm/mach-tegra
TEHUTI ETHERNET DRIVER
-M: Alexander Indenbaum <baum@tehutinetworks.net>
M: Andy Gospodarek <andy@greyhouse.net>
L: netdev@vger.kernel.org
S: Supported
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 10/14] tsi108: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (8 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 09/14] tehuti: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 11/14] typhoon: " Ian Campbell
` (4 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/tundra/tsi108_eth.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/tundra/tsi108_eth.c b/drivers/net/ethernet/tundra/tsi108_eth.c
index 480a4ba..a03996c 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;
}
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 11/14] typhoon: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (9 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 10/14] tsi108: convert to SKB paged frag API Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 12/14] via-velocity: " Ian Campbell
` (3 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, David Dillow
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: David Dillow <dave@thedillows.org>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/3com/typhoon.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/3com/typhoon.c b/drivers/net/ethernet/3com/typhoon.c
index f1dc9acf..607c09e 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 12/14] via-velocity: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (10 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 11/14] typhoon: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 13/14] virtionet: " Ian Campbell
` (2 subsequent siblings)
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Francois Romieu
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Francois Romieu <romieu@fr.zoreil.com>
Cc: netdev@vger.kernel.org
---
drivers/net/ethernet/via/via-velocity.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
index 086463b..1ec32c4 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 13/14] virtionet: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (11 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 12/14] via-velocity: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 7:53 ` [PATCH 14/14] vmxnet3: " Ian Campbell
2011-09-22 20:05 ` [PATCH 0/14] skb fragment API: convert network drivers (part III) David Miller
14 siblings, 0 replies; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Rusty Russell, Michael S. Tsirkin, virtualization
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: virtualization@lists.linux-foundation.org
Cc: netdev@vger.kernel.org
---
drivers/net/virtio_net.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 4f09f88..d6e93ba 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (12 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 13/14] virtionet: " Ian Campbell
@ 2011-09-22 7:53 ` Ian Campbell
2011-09-22 16:30 ` [Pv-drivers] " Bhavesh Davda
2011-09-22 20:05 ` [PATCH 0/14] skb fragment API: convert network drivers (part III) David Miller
14 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 7:53 UTC (permalink / raw)
To: netdev; +Cc: Ian Campbell, Shreyas Bhatewara, VMware, Inc.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
Cc: "VMware, Inc." <pv-drivers@vmware.com>
Cc: netdev@vger.kernel.org
---
drivers/net/vmxnet3/vmxnet3_drv.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
index 759c1a4..57e7c66 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;
--
1.7.2.5
^ permalink raw reply related [flat|nested] 21+ messages in thread
* RE: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
2011-09-22 7:53 ` [PATCH 14/14] vmxnet3: " Ian Campbell
@ 2011-09-22 16:30 ` Bhavesh Davda
2011-09-22 16:46 ` Ian Campbell
0 siblings, 1 reply; 21+ messages in thread
From: Bhavesh Davda @ 2011-09-22 16:30 UTC (permalink / raw)
To: Ian Campbell, netdev; +Cc: VMware, Inc.
These changes look sane. What about frag->page_offset and frag->size, are there APIs to access those as well?
[sorry can't pull from git.kernel.org at the moment to answer my own quesion]
- Bhavesh
Bhavesh P. Davda
> -----Original Message-----
> From: pv-drivers-bounces@vmware.com [mailto:pv-drivers-bounces@vmware.com] On
> Behalf Of Ian Campbell
> Sent: Thursday, September 22, 2011 12:53 AM
> To: netdev@vger.kernel.org
> Cc: VMware, Inc.; Ian Campbell
> Subject: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
> Cc: "VMware, Inc." <pv-drivers@vmware.com>
> Cc: netdev@vger.kernel.org
> ---
> drivers/net/vmxnet3/vmxnet3_drv.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c
> b/drivers/net/vmxnet3/vmxnet3_drv.c
> index 759c1a4..57e7c66 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;
>
> --
> 1.7.2.5
>
> _______________________________________________
> Pv-drivers mailing list
> Pv-drivers@vmware.com
> http://mailman2.vmware.com/mailman/listinfo/pv-drivers
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
2011-09-22 16:30 ` [Pv-drivers] " Bhavesh Davda
@ 2011-09-22 16:46 ` Ian Campbell
2011-09-22 16:49 ` Bhavesh Davda
0 siblings, 1 reply; 21+ messages in thread
From: Ian Campbell @ 2011-09-22 16:46 UTC (permalink / raw)
To: Bhavesh Davda; +Cc: netdev, VMware, Inc.
On Thu, 2011-09-22 at 17:30 +0100, Bhavesh Davda wrote:
> These changes look sane. What about frag->page_offset and frag->size, are there APIs to access those as well?
You can go at those directly.
The important part here is to abstract away the access to the ->page
variable so we can change how the reference counting works.
So unless people think there is a compelling reason to hide away size
and offset I wasn't planning on doing anything like that.
Ian.
>
> [sorry can't pull from git.kernel.org at the moment to answer my own quesion]
>
> - Bhavesh
>
> Bhavesh P. Davda
>
> > -----Original Message-----
> > From: pv-drivers-bounces@vmware.com [mailto:pv-drivers-bounces@vmware.com] On
> > Behalf Of Ian Campbell
> > Sent: Thursday, September 22, 2011 12:53 AM
> > To: netdev@vger.kernel.org
> > Cc: VMware, Inc.; Ian Campbell
> > Subject: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
> >
> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> > Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
> > Cc: "VMware, Inc." <pv-drivers@vmware.com>
> > Cc: netdev@vger.kernel.org
> > ---
> > drivers/net/vmxnet3/vmxnet3_drv.c | 8 ++++----
> > 1 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c
> > b/drivers/net/vmxnet3/vmxnet3_drv.c
> > index 759c1a4..57e7c66 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;
> >
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > Pv-drivers mailing list
> > Pv-drivers@vmware.com
> > http://mailman2.vmware.com/mailman/listinfo/pv-drivers
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag API.
2011-09-22 16:46 ` Ian Campbell
@ 2011-09-22 16:49 ` Bhavesh Davda
0 siblings, 0 replies; 21+ messages in thread
From: Bhavesh Davda @ 2011-09-22 16:49 UTC (permalink / raw)
To: Ian Campbell; +Cc: netdev, VMware, Inc.
Okay.
Signed-off-by: Bhavesh Davda <bhavesh@vmware.com>
- Bhavesh
Bhavesh P. Davda
> -----Original Message-----
> From: Ian Campbell [mailto:Ian.Campbell@eu.citrix.com]
> Sent: Thursday, September 22, 2011 9:47 AM
> To: Bhavesh Davda
> Cc: netdev@vger.kernel.org; VMware, Inc.
> Subject: RE: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag
> API.
>
> On Thu, 2011-09-22 at 17:30 +0100, Bhavesh Davda wrote:
> > These changes look sane. What about frag->page_offset and frag->size, are
> there APIs to access those as well?
>
> You can go at those directly.
>
> The important part here is to abstract away the access to the ->page
> variable so we can change how the reference counting works.
>
> So unless people think there is a compelling reason to hide away size
> and offset I wasn't planning on doing anything like that.
>
> Ian.
>
> >
> > [sorry can't pull from git.kernel.org at the moment to answer my own
> quesion]
> >
> > - Bhavesh
> >
> > Bhavesh P. Davda
> >
> > > -----Original Message-----
> > > From: pv-drivers-bounces@vmware.com [mailto:pv-drivers-bounces@vmware.com]
> On
> > > Behalf Of Ian Campbell
> > > Sent: Thursday, September 22, 2011 12:53 AM
> > > To: netdev@vger.kernel.org
> > > Cc: VMware, Inc.; Ian Campbell
> > > Subject: [Pv-drivers] [PATCH 14/14] vmxnet3: convert to SKB paged frag
> API.
> > >
> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> > > Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
> > > Cc: "VMware, Inc." <pv-drivers@vmware.com>
> > > Cc: netdev@vger.kernel.org
> > > ---
> > > drivers/net/vmxnet3/vmxnet3_drv.c | 8 ++++----
> > > 1 files changed, 4 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c
> > > b/drivers/net/vmxnet3/vmxnet3_drv.c
> > > index 759c1a4..57e7c66 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;
> > >
> > > --
> > > 1.7.2.5
> > >
> > > _______________________________________________
> > > Pv-drivers mailing list
> > > Pv-drivers@vmware.com
> > > http://mailman2.vmware.com/mailman/listinfo/pv-drivers
>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 0/14] skb fragment API: convert network drivers (part III)
2011-09-22 7:53 [PATCH 0/14] skb fragment API: convert network drivers (part III) Ian Campbell
` (13 preceding siblings ...)
2011-09-22 7:53 ` [PATCH 14/14] vmxnet3: " Ian Campbell
@ 2011-09-22 20:05 ` David Miller
14 siblings, 0 replies; 21+ messages in thread
From: David Miller @ 2011-09-22 20:05 UTC (permalink / raw)
To: Ian.Campbell; +Cc: netdev
From: Ian Campbell <Ian.Campbell@citrix.com>
Date: Thu, 22 Sep 2011 08:53:16 +0100
> The following series converts the third batch of network drivers to the
> SKB pages fragment API introduced in 131ea6675c76. I expect there will
> be ~4 similarly sized batches to convert all the drivers over.
>
> This is part of my series to enable visibility into SKB paged fragment's
> lifecycles, [0] contains some more background and rationale but
> basically the completed series will allow entities which inject pages
> into the networking stack to receive a notification when the stack has
> really finished with those pages (i.e. including retransmissions,
> clones, pull-ups etc) and not just when the original skb is finished
> with, which is beneficial to many subsystems which wish to inject pages
> into the network stack without giving up full ownership of those page's
> lifecycle. It implements something broadly along the lines of what was
> described in [1].
ALl applied, thanks Ian.
^ permalink raw reply [flat|nested] 21+ messages in thread