netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/14] skb fragment API: convert network drivers (part II)
@ 2011-08-31 10:46 Ian Campbell
  2011-08-31 10:46 ` [PATCH 01/14] ibmveth: convert to SKB paged frag API Ian Campbell
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev

The following series converts the second 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].

Cheers,
Ian.

[0] http://marc.info/?l=linux-netdev&m=131072801125521&w=2
[1] http://marc.info/?l=linux-netdev&m=130925719513084&w=2

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 01/14] ibmveth: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 02/14] jme: " Ian Campbell
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Santiago Leon

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Santiago Leon <santil@linux.vnet.ibm.com>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/ibm/ibmveth.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/ibm/ibmveth.c b/drivers/net/ethernet/ibm/ibmveth.c
index bba1ffc..8cca4a6 100644
--- a/drivers/net/ethernet/ibm/ibmveth.c
+++ b/drivers/net/ethernet/ibm/ibmveth.c
@@ -1002,9 +1002,8 @@ retry_bounce:
 		unsigned long dma_addr;
 		skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
-		dma_addr = dma_map_page(&adapter->vdev->dev, frag->page,
-					frag->page_offset, frag->size,
-					DMA_TO_DEVICE);
+		dma_addr = skb_frag_dma_map(&adapter->vdev->dev, frag, 0,
+					    frag->size, DMA_TO_DEVICE);
 
 		if (dma_mapping_error(&adapter->vdev->dev, dma_addr))
 			goto map_failed_frags;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 02/14] jme: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
  2011-08-31 10:46 ` [PATCH 01/14] ibmveth: convert to SKB paged frag API Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 03/14] ksz884x: " Ian Campbell
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Guo-Fu Tseng

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Guo-Fu Tseng <cooldavid@cooldavid.org>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/jme.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index a869ee4..48a0a23 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -1928,8 +1928,9 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx)
 		ctxdesc = txdesc + ((idx + i + 2) & (mask));
 		ctxbi = txbi + ((idx + i + 2) & (mask));
 
-		jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi, frag->page,
-				 frag->page_offset, frag->size, hidma);
+		jme_fill_tx_map(jme->pdev, ctxdesc, ctxbi,
+				skb_frag_page(frag),
+				frag->page_offset, frag->size, hidma);
 	}
 
 	len = skb_is_nonlinear(skb) ? skb_headlen(skb) : skb->len;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 03/14] ksz884x: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
  2011-08-31 10:46 ` [PATCH 01/14] ibmveth: convert to SKB paged frag API Ian Campbell
  2011-08-31 10:46 ` [PATCH 02/14] jme: " Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 04/14] macvtap: " Ian Campbell
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 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/micrel/ksz884x.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c
index 27418d3..710c4ae 100644
--- a/drivers/net/ethernet/micrel/ksz884x.c
+++ b/drivers/net/ethernet/micrel/ksz884x.c
@@ -4704,8 +4704,7 @@ static void send_packet(struct sk_buff *skb, struct net_device *dev)
 
 			dma_buf->dma = pci_map_single(
 				hw_priv->pdev,
-				page_address(this_frag->page) +
-				this_frag->page_offset,
+				skb_frag_address(this_frag),
 				dma_buf->len,
 				PCI_DMA_TODEVICE);
 			set_tx_buf(desc, dma_buf->dma);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 04/14] macvtap: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (2 preceding siblings ...)
  2011-08-31 10:46 ` [PATCH 03/14] ksz884x: " Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 05/14] mv643xx: " Ian Campbell
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: netdev@vger.kernel.org
---
 drivers/net/macvtap.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index ab96c31..7c3f84a 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -503,10 +503,10 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
 		skb->truesize += len;
 		atomic_add(len, &skb->sk->sk_wmem_alloc);
 		while (len) {
-			f = &skb_shinfo(skb)->frags[i];
-			f->page = page[i];
-			f->page_offset = base & ~PAGE_MASK;
-			f->size = min_t(int, len, PAGE_SIZE - f->page_offset);
+			__skb_fill_page_desc(
+				skb, i, page[i],
+				base & ~PAGE_MASK,
+				min_t(int, len, PAGE_SIZE - f->page_offset));
 			skb_shinfo(skb)->nr_frags++;
 			/* increase sk_wmem_alloc */
 			base += f->size;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 05/14] mv643xx: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (3 preceding siblings ...)
  2011-08-31 10:46 ` [PATCH 04/14] macvtap: " Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 06/14] netxen: " Ian Campbell
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Lennert Buytenhek

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Lennert Buytenhek <buytenh@wantstofly.org>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/marvell/mv643xx_eth.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 1e2c9f07..7325737 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -752,10 +752,10 @@ static void txq_submit_frag_skb(struct tx_queue *txq, struct sk_buff *skb)
 
 		desc->l4i_chk = 0;
 		desc->byte_cnt = this_frag->size;
-		desc->buf_ptr = dma_map_page(mp->dev->dev.parent,
-					     this_frag->page,
-					     this_frag->page_offset,
-					     this_frag->size, DMA_TO_DEVICE);
+		desc->buf_ptr = skb_frag_dma_map(mp->dev->dev.parent,
+						 this_frag, 0,
+						 this_frag->size,
+						 DMA_TO_DEVICE);
 	}
 }
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 06/14] netxen: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (4 preceding siblings ...)
  2011-08-31 10:46 ` [PATCH 05/14] mv643xx: " Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:46 ` [PATCH 07/14] niu: " Ian Campbell
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Sony Chacko, Rajesh Borundia

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Sony Chacko <sony.chacko@qlogic.com>
Cc: Rajesh Borundia <rajesh.borundia@qlogic.com>
Cc: netdev@vger.kernel.org
---
 .../net/ethernet/qlogic/netxen/netxen_nic_main.c   |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
index de18e47..694130e 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -1844,8 +1844,8 @@ netxen_map_tx_skb(struct pci_dev *pdev,
 		frag = &skb_shinfo(skb)->frags[i];
 		nf = &pbuf->frag_array[i+1];
 
-		map = pci_map_page(pdev, frag->page, frag->page_offset,
-				frag->size, PCI_DMA_TODEVICE);
+		map = skb_frag_dma_map(&pdev->dev, frag, 0, frag->size,
+				       PCI_DMA_TODEVICE);
 		if (pci_dma_mapping_error(pdev, map))
 			goto unwind;
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 07/14] niu: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (5 preceding siblings ...)
  2011-08-31 10:46 ` [PATCH 06/14] netxen: " Ian Campbell
@ 2011-08-31 10:46 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 08/14] ns83820: " Ian Campbell
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:46 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/niu.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/ethernet/sun/niu.c b/drivers/net/ethernet/sun/niu.c
index 3c9ef1c..cad58f2 100644
--- a/drivers/net/ethernet/sun/niu.c
+++ b/drivers/net/ethernet/sun/niu.c
@@ -3290,11 +3290,8 @@ static void niu_rx_skb_append(struct sk_buff *skb, struct page *page,
 			      u32 offset, u32 size)
 {
 	int i = skb_shinfo(skb)->nr_frags;
-	skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
-	frag->page = page;
-	frag->page_offset = offset;
-	frag->size = size;
+	__skb_fill_page_desc(skb, i, page, offset, size);
 
 	skb->len += size;
 	skb->data_len += size;
@@ -6737,7 +6734,7 @@ static netdev_tx_t niu_start_xmit(struct sk_buff *skb,
 		skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
 		len = frag->size;
-		mapping = np->ops->map_page(np->device, frag->page,
+		mapping = np->ops->map_page(np->device, skb_frag_page(frag),
 					    frag->page_offset, len,
 					    DMA_TO_DEVICE);
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 08/14] ns83820: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (6 preceding siblings ...)
  2011-08-31 10:46 ` [PATCH 07/14] niu: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 09/14] pasemi: " Ian Campbell
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 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/natsemi/ns83820.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/natsemi/ns83820.c b/drivers/net/ethernet/natsemi/ns83820.c
index 1a1e20e..e0895e4 100644
--- a/drivers/net/ethernet/natsemi/ns83820.c
+++ b/drivers/net/ethernet/natsemi/ns83820.c
@@ -1160,9 +1160,8 @@ again:
 		if (!nr_frags)
 			break;
 
-		buf = pci_map_page(dev->pci_dev, frag->page,
-				   frag->page_offset,
-				   frag->size, PCI_DMA_TODEVICE);
+		buf = skb_frag_dma_map(&dev->pci_dev->dev, frag, 0,
+				       frag->size, PCI_DMA_TODEVICE);
 		dprintk("frag: buf=%08Lx  page=%08lx offset=%08lx\n",
 			(long long)buf, (long) page_to_pfn(frag->page),
 			frag->page_offset);
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 09/14] pasemi: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (7 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 08/14] ns83820: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 10/14] qeth: " Ian Campbell
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Olof Johansson

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Olof Johansson <olof@lixom.net>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/pasemi/pasemi_mac.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c
index fad620d..5322095 100644
--- a/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -1505,9 +1505,8 @@ static int pasemi_mac_start_tx(struct sk_buff *skb, struct net_device *dev)
 	for (i = 0; i < nfrags; i++) {
 		skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
 
-		map[i+1] = pci_map_page(mac->dma_pdev, frag->page,
-					frag->page_offset, frag->size,
-					PCI_DMA_TODEVICE);
+		map[i + 1] = skb_frag_dma_map(&mac->dma_pdev->dev, frag, 0,
+					      frag->size, PCI_DMA_TODEVICE);
 		map_size[i+1] = frag->size;
 		if (pci_dma_mapping_error(mac->dma_pdev, map[i+1])) {
 			nfrags = i;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 10/14] qeth: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (8 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 09/14] pasemi: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 11/14] qla3xxx: " Ian Campbell
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev
  Cc: Ian Campbell, Ursula Braun, Frank Blaschka, linux390,
	Martin Schwidefsky, Heiko Carstens, linux-s390

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ursula Braun <ursula.braun@de.ibm.com>
Cc: Frank Blaschka <blaschka@linux.vnet.ibm.com>
Cc: linux390@de.ibm.com
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: linux-s390@vger.kernel.org
Cc: netdev@vger.kernel.org
---
 drivers/s390/net/qeth_core_main.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index 97172f8..8153443 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -3694,7 +3694,8 @@ static inline void __qeth_fill_buffer(struct sk_buff *skb,
 
 	for (cnt = 0; cnt < skb_shinfo(skb)->nr_frags; cnt++) {
 		frag = &skb_shinfo(skb)->frags[cnt];
-		buffer->element[element].addr = (char *)page_to_phys(frag->page)
+		buffer->element[element].addr = (char *)
+			page_to_phys(skb_frag_page(frag))
 			+ frag->page_offset;
 		buffer->element[element].length = frag->size;
 		buffer->element[element].eflags = SBAL_EFLAGS_MIDDLE_FRAG;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 11/14] qla3xxx: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (9 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 10/14] qeth: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 12/14] qlcnic: " Ian Campbell
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Ron Mercer, linux-driver

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ron Mercer <ron.mercer@qlogic.com>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/qlogic/qla3xxx.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c
index 8cab61c..1871d88 100644
--- a/drivers/net/ethernet/qlogic/qla3xxx.c
+++ b/drivers/net/ethernet/qlogic/qla3xxx.c
@@ -2388,9 +2388,8 @@ static int ql_send_map(struct ql3_adapter *qdev,
 			seg++;
 		}
 
-		map = pci_map_page(qdev->pdev, frag->page,
-				   frag->page_offset, frag->size,
-				   PCI_DMA_TODEVICE);
+		map = skb_frag_dma_map(&qdev->pdev->dev, frag, 0, frag->size,
+				       PCI_DMA_TODEVICE);
 
 		err = pci_dma_mapping_error(qdev->pdev, map);
 		if (err) {
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 12/14] qlcnic: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (10 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 11/14] qla3xxx: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 13/14] qlge: " Ian Campbell
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Anirban Chakraborty, Sony Chacko, linux-driver

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Cc: Sony Chacko <sony.chacko@qlogic.com>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index 690c93f..501e16b 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -2135,8 +2135,8 @@ qlcnic_map_tx_skb(struct pci_dev *pdev,
 		frag = &skb_shinfo(skb)->frags[i];
 		nf = &pbuf->frag_array[i+1];
 
-		map = pci_map_page(pdev, frag->page, frag->page_offset,
-				frag->size, PCI_DMA_TODEVICE);
+		map = skb_frag_dma_map(&pdev->dev, frag, 0, frag->size,
+				       PCI_DMA_TODEVICE);
 		if (pci_dma_mapping_error(pdev, map))
 			goto unwind;
 
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 13/14] qlge: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (11 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 12/14] qlcnic: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-08-31 10:47 ` [PATCH 14/14] r8169: " Ian Campbell
  2011-09-15 19:41 ` [PATCH 0/14] skb fragment API: convert network drivers (part II) David Miller
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev
  Cc: Ian Campbell, Anirban Chakraborty, Jitendra Kalsaria, Ron Mercer,
	linux-driver

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Cc: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com>
Cc: Ron Mercer <ron.mercer@qlogic.com>
Cc: linux-driver@qlogic.com
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/qlogic/qlge/qlge_main.c |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index 39360c4..ce6c6fe 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -1431,10 +1431,8 @@ static int ql_map_send(struct ql_adapter *qdev,
 			map_idx++;
 		}
 
-		map =
-		    pci_map_page(qdev->pdev, frag->page,
-				 frag->page_offset, frag->size,
-				 PCI_DMA_TODEVICE);
+		map = skb_frag_dma_map(&qdev->pdev->dev, frag, 0, frag->size,
+				       PCI_DMA_TODEVICE);
 
 		err = pci_dma_mapping_error(qdev->pdev, map);
 		if (err) {
@@ -1477,8 +1475,6 @@ static void ql_process_mac_rx_gro_page(struct ql_adapter *qdev,
 {
 	struct sk_buff *skb;
 	struct bq_desc *lbq_desc = ql_get_curr_lchunk(qdev, rx_ring);
-	struct skb_frag_struct *rx_frag;
-	int nr_frags;
 	struct napi_struct *napi = &rx_ring->napi;
 
 	napi->dev = qdev->ndev;
@@ -1492,12 +1488,10 @@ static void ql_process_mac_rx_gro_page(struct ql_adapter *qdev,
 		return;
 	}
 	prefetch(lbq_desc->p.pg_chunk.va);
-	rx_frag = skb_shinfo(skb)->frags;
-	nr_frags = skb_shinfo(skb)->nr_frags;
-	rx_frag += nr_frags;
-	rx_frag->page = lbq_desc->p.pg_chunk.page;
-	rx_frag->page_offset = lbq_desc->p.pg_chunk.offset;
-	rx_frag->size = length;
+	__skb_fill_page_desc(skb, skb_shinfo(skb)->nr_frags,
+			     lbq_desc->p.pg_chunk.page,
+			     lbq_desc->p.pg_chunk.offset,
+			     length);
 
 	skb->len += length;
 	skb->data_len += length;
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 14/14] r8169: convert to SKB paged frag API.
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (12 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 13/14] qlge: " Ian Campbell
@ 2011-08-31 10:47 ` Ian Campbell
  2011-09-15 19:41 ` [PATCH 0/14] skb fragment API: convert network drivers (part II) David Miller
  14 siblings, 0 replies; 16+ messages in thread
From: Ian Campbell @ 2011-08-31 10:47 UTC (permalink / raw)
  To: netdev; +Cc: Ian Campbell, Realtek linux nic maintainers, Francois Romieu

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>
Cc: Francois Romieu <romieu@fr.zoreil.com>
Cc: netdev@vger.kernel.org
---
 drivers/net/ethernet/realtek/r8169.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 1cf8c3c..835bbb5 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5027,7 +5027,7 @@ static int rtl8169_xmit_frags(struct rtl8169_private *tp, struct sk_buff *skb,
 
 		txd = tp->TxDescArray + entry;
 		len = frag->size;
-		addr = ((void *) page_address(frag->page)) + frag->page_offset;
+		addr = skb_frag_address(frag);
 		mapping = dma_map_single(d, addr, len, DMA_TO_DEVICE);
 		if (unlikely(dma_mapping_error(d, mapping))) {
 			if (net_ratelimit())
-- 
1.7.2.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/14] skb fragment API: convert network drivers (part II)
  2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
                   ` (13 preceding siblings ...)
  2011-08-31 10:47 ` [PATCH 14/14] r8169: " Ian Campbell
@ 2011-09-15 19:41 ` David Miller
  14 siblings, 0 replies; 16+ messages in thread
From: David Miller @ 2011-09-15 19:41 UTC (permalink / raw)
  To: Ian.Campbell; +Cc: netdev

From: Ian Campbell <Ian.Campbell@citrix.com>
Date: Wed, 31 Aug 2011 11:46:48 +0100

> The following series converts the second 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].

Series applied, thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-09-15 19:41 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-31 10:46 [PATCH 0/14] skb fragment API: convert network drivers (part II) Ian Campbell
2011-08-31 10:46 ` [PATCH 01/14] ibmveth: convert to SKB paged frag API Ian Campbell
2011-08-31 10:46 ` [PATCH 02/14] jme: " Ian Campbell
2011-08-31 10:46 ` [PATCH 03/14] ksz884x: " Ian Campbell
2011-08-31 10:46 ` [PATCH 04/14] macvtap: " Ian Campbell
2011-08-31 10:46 ` [PATCH 05/14] mv643xx: " Ian Campbell
2011-08-31 10:46 ` [PATCH 06/14] netxen: " Ian Campbell
2011-08-31 10:46 ` [PATCH 07/14] niu: " Ian Campbell
2011-08-31 10:47 ` [PATCH 08/14] ns83820: " Ian Campbell
2011-08-31 10:47 ` [PATCH 09/14] pasemi: " Ian Campbell
2011-08-31 10:47 ` [PATCH 10/14] qeth: " Ian Campbell
2011-08-31 10:47 ` [PATCH 11/14] qla3xxx: " Ian Campbell
2011-08-31 10:47 ` [PATCH 12/14] qlcnic: " Ian Campbell
2011-08-31 10:47 ` [PATCH 13/14] qlge: " Ian Campbell
2011-08-31 10:47 ` [PATCH 14/14] r8169: " Ian Campbell
2011-09-15 19:41 ` [PATCH 0/14] skb fragment API: convert network drivers (part II) David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).