netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ian Campbell <Ian.Campbell@eu.citrix.com>
To: "Michał Mirosław" <mirqus@gmail.com>
Cc: David Miller <davem@davemloft.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Jon Mason <jdmason@kudzu.us>
Subject: Re: [PATCH 1/8] vxge: convert to SKB paged frag API.
Date: Thu, 6 Oct 2011 22:08:30 +0100	[thread overview]
Message-ID: <1317935310.24742.18.camel@dagon.hellion.org.uk> (raw)
In-Reply-To: <CAHXqBFJsGcAdH0zFS_Gd34oR3Ov6ssbXRMzK-KrnSxq8c3=WNg@mail.gmail.com>

On Thu, 2011-10-06 at 21:45 +0100, Michał Mirosław wrote:
> W dniu 6 października 2011 18:00 użytkownik Ian Campbell
> <Ian.Campbell@citrix.com> napisał:
> > On Thu, 2011-10-06 at 08:05 +0100, Ian Campbell wrote:
> >> On Wed, 2011-10-05 at 22:03 +0100, Michał Mirosław wrote:
> >> > 2011/10/5 Ian Campbell <ian.campbell@citrix.com>:
> >> > [...]
> >> > > --- a/drivers/net/ethernet/neterion/vxge/vxge-main.c
> >> > > +++ b/drivers/net/ethernet/neterion/vxge/vxge-main.c
> >> > > @@ -923,9 +923,9 @@ vxge_xmit(struct sk_buff *skb, struct net_device *dev)
> >> > >                if (!frag->size)
> >> > >                        continue;
> >> > >
> >> > > -               dma_pointer = (u64) pci_map_page(fifo->pdev, frag->page,
> >> > > -                               frag->page_offset, frag->size,
> >> > > -                               PCI_DMA_TODEVICE);
> >> > > +               dma_pointer = (u64)skb_frag_dma_map(&fifo->pdev->dev, frag,
> >> > > +                                                   0, frag->size,
> >> > > +                                                   PCI_DMA_TODEVICE);
> >> >
> >> > This should be DMA_TO_DEVICE instead of PCI_DMA_TODEVICE.
> >> > >                if (unlikely(pci_dma_mapping_error(fifo->pdev, dma_pointer)))
> >> > >                        goto _exit2;
> >> > I would also change this to dma_mapping_error() in one go.
> >> > Just a random patch check.
> >> Thanks Michał.
> >> I'm sure I must have made the same mistakes in a whole bunch of patches
> >> which have already been applied. I'll knock up a fixup patch.
> > Here it is. David, if you want N separate patches (or a git pull
> > request?) let me know.
> 
> There's a catch there, though:
> 
> [...]
> >                        mapping = skb_frag_dma_map(&tp->pdev->dev, frag, 0,
> > -                                                  len, PCI_DMA_TODEVICE);
> > +                                                  len, DMA_TO_DEVICE);
> >
> >                        tnapi->tx_buffers[entry].skb = NULL;
> >                        dma_unmap_addr_set(&tnapi->tx_buffers[entry], mapping,
> >                                           mapping);
> > -                       if (pci_dma_mapping_error(tp->pdev, mapping))
> > +                       if (dma_mapping_error(tp->pdev, mapping))
> 
> dma_mapping_error() takes struct device *, so those changes should be:
> 
> dma_mapping_error(&tp->pdev->dev, mapping)
> 
> (Like skb_frag_dma_map()'s first argument).

You are absolutely right, I've no idea how I missed the very obvious
warning this produces. Incremental patch is below, sorry about this!

8<-------------------------------------------------------

From 5be2edc6eec5c66b58f4287f1d3ba3637afa7ad6 Mon Sep 17 00:00:00 2001
From: Ian Campbell <ian.campbell@citrix.com>
Date: Thu, 6 Oct 2011 22:05:41 +0100
Subject: [PATCH] net: fix argument to dma_mapping_error after conversion to skb_frag_dma_map

The recent conversion from pci_dma_mapping_error to dma_mapping_error missed
the change in the exact parameter, which needs to be the struct device * not
the struct pci_device *.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 drivers/net/ethernet/broadcom/tg3.c                |    2 +-
 drivers/net/ethernet/marvell/sky2.c                |    4 ++--
 drivers/net/ethernet/pasemi/pasemi_mac.c           |    2 +-
 .../net/ethernet/qlogic/netxen/netxen_nic_main.c   |    2 +-
 drivers/net/ethernet/qlogic/qla3xxx.c              |    2 +-
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c   |    2 +-
 drivers/net/ethernet/qlogic/qlge/qlge_main.c       |    2 +-
 drivers/net/ethernet/sfc/tx.c                      |    2 +-
 8 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 3abcb4d..9dbd1af 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -6784,7 +6784,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
 			tnapi->tx_buffers[entry].skb = NULL;
 			dma_unmap_addr_set(&tnapi->tx_buffers[entry], mapping,
 					   mapping);
-			if (dma_mapping_error(tp->pdev, mapping))
+			if (dma_mapping_error(&tp->pdev->dev, mapping))
 				goto dma_error;
 
 			if (tg3_tx_frag_set(tnapi, &entry, &budget, mapping,
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index 7baff3e..a3ce9b6 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -1231,7 +1231,7 @@ static int sky2_rx_map_skb(struct pci_dev *pdev, struct rx_ring_info *re,
 						    frag->size,
 						    DMA_FROM_DEVICE);
 
-		if (dma_mapping_error(pdev, re->frag_addr[i]))
+		if (dma_mapping_error(&pdev->dev, re->frag_addr[i]))
 			goto map_page_error;
 	}
 	return 0;
@@ -1938,7 +1938,7 @@ static netdev_tx_t sky2_xmit_frame(struct sk_buff *skb,
 		mapping = skb_frag_dma_map(&hw->pdev->dev, frag, 0,
 					   frag->size, DMA_TO_DEVICE);
 
-		if (dma_mapping_error(hw->pdev, mapping))
+		if (dma_mapping_error(&hw->pdev->dev, mapping))
 			goto mapping_unwind;
 
 		upper = upper_32_bits(mapping);
diff --git a/drivers/net/ethernet/pasemi/pasemi_mac.c b/drivers/net/ethernet/pasemi/pasemi_mac.c
index d247030..c6f0056 100644
--- a/drivers/net/ethernet/pasemi/pasemi_mac.c
+++ b/drivers/net/ethernet/pasemi/pasemi_mac.c
@@ -1508,7 +1508,7 @@ static int pasemi_mac_start_tx(struct sk_buff *skb, struct net_device *dev)
 		map[i + 1] = skb_frag_dma_map(&mac->dma_pdev->dev, frag, 0,
 					      frag->size, DMA_TO_DEVICE);
 		map_size[i+1] = frag->size;
-		if (dma_mapping_error(mac->dma_pdev, map[i + 1])) {
+		if (dma_mapping_error(&mac->dma_pdev->dev, map[i + 1])) {
 			nfrags = i;
 			goto out_err_nolock;
 		}
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
index b061c07..e2ba78b 100644
--- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
+++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c
@@ -1907,7 +1907,7 @@ netxen_map_tx_skb(struct pci_dev *pdev,
 
 		map = skb_frag_dma_map(&pdev->dev, frag, 0, frag->size,
 				       DMA_TO_DEVICE);
-		if (dma_mapping_error(pdev, map))
+		if (dma_mapping_error(&pdev->dev, map))
 			goto unwind;
 
 		nf->dma = map;
diff --git a/drivers/net/ethernet/qlogic/qla3xxx.c b/drivers/net/ethernet/qlogic/qla3xxx.c
index 8932265..46f9b64 100644
--- a/drivers/net/ethernet/qlogic/qla3xxx.c
+++ b/drivers/net/ethernet/qlogic/qla3xxx.c
@@ -2391,7 +2391,7 @@ static int ql_send_map(struct ql3_adapter *qdev,
 		map = skb_frag_dma_map(&qdev->pdev->dev, frag, 0, frag->size,
 				       DMA_TO_DEVICE);
 
-		err = dma_mapping_error(qdev->pdev, map);
+		err = dma_mapping_error(&qdev->pdev->dev, map);
 		if (err) {
 			netdev_err(qdev->ndev,
 				   "PCI mapping frags failed with error: %d\n",
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index c9756e7..eac19e7d 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -2137,7 +2137,7 @@ qlcnic_map_tx_skb(struct pci_dev *pdev,
 
 		map = skb_frag_dma_map(&pdev->dev, frag, 0, frag->size,
 				       DMA_TO_DEVICE);
-		if (dma_mapping_error(pdev, map))
+		if (dma_mapping_error(&pdev->dev, map))
 			goto unwind;
 
 		nf->dma = map;
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index 094ac22..f2d9bb7 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -1434,7 +1434,7 @@ static int ql_map_send(struct ql_adapter *qdev,
 		map = skb_frag_dma_map(&qdev->pdev->dev, frag, 0, frag->size,
 				       DMA_TO_DEVICE);
 
-		err = dma_mapping_error(qdev->pdev, map);
+		err = dma_mapping_error(&qdev->pdev->dev, map);
 		if (err) {
 			netif_err(qdev, tx_queued, qdev->ndev,
 				  "PCI mapping frags failed with error: %d.\n",
diff --git a/drivers/net/ethernet/sfc/tx.c b/drivers/net/ethernet/sfc/tx.c
index 7f47efc..3964a62 100644
--- a/drivers/net/ethernet/sfc/tx.c
+++ b/drivers/net/ethernet/sfc/tx.c
@@ -927,7 +927,7 @@ static int tso_get_fragment(struct tso_state *st, struct efx_nic *efx,
 {
 	st->unmap_addr = skb_frag_dma_map(&efx->pci_dev->dev, frag, 0,
 					  frag->size, DMA_TO_DEVICE);
-	if (likely(!dma_mapping_error(efx->pci_dev, st->unmap_addr))) {
+	if (likely(!dma_mapping_error(&efx->pci_dev->dev, st->unmap_addr))) {
 		st->unmap_single = false;
 		st->unmap_len = frag->size;
 		st->in_len = frag->size;
-- 
1.7.2.5



Ian.

  reply	other threads:[~2011-10-06 21:08 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-05 10:28 [PATCH 0/8] skb fragment API: convert network drivers (part IV) Ian Campbell
2011-10-05 10:28 ` [PATCH 1/8] vxge: convert to SKB paged frag API Ian Campbell
2011-10-05 21:03   ` Michał Mirosław
2011-10-05 21:32     ` David Miller
2011-10-06  7:05     ` Ian Campbell
2011-10-06 16:00       ` Ian Campbell
2011-10-06 20:00         ` David Miller
2011-10-06 20:45         ` Michał Mirosław
2011-10-06 21:08           ` Ian Campbell [this message]
2011-10-06 21:16             ` David Miller
2011-10-06 21:25               ` Ian Campbell
2011-10-06 21:56                 ` David Miller
2011-10-07  5:29                   ` Ian Campbell
2011-10-06 21:15           ` David Miller
2011-10-06 21:19             ` Ian Campbell
2011-10-06 21:28             ` Michał Mirosław
2011-10-05 10:28 ` [PATCH 2/8] xen: netback: " Ian Campbell
2011-10-05 10:28 ` [PATCH 3/8] xen: netfront: " Ian Campbell
2011-10-05 10:28 ` [PATCH 4/8] et131x: " Ian Campbell
2011-10-05 10:28 ` [PATCH 5/8] hv: netvsc: " Ian Campbell
2011-10-05 10:28 ` [PATCH 6/8] myri10ge: " Ian Campbell
2011-10-05 10:28 ` [PATCH 7/8] cxgb3: " Ian Campbell
2011-10-05 10:28 ` [PATCH 8/8] chelsio: " Ian Campbell
2011-10-05 19:17 ` [PATCH 0/8] skb fragment API: convert network drivers (part IV) Greg KH
2011-10-05 20:13   ` David Miller
2011-10-05 20:25     ` Greg KH
2011-10-05 20:49       ` David Miller
2011-10-05 21:36 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1317935310.24742.18.camel@dagon.hellion.org.uk \
    --to=ian.campbell@eu.citrix.com \
    --cc=davem@davemloft.net \
    --cc=jdmason@kudzu.us \
    --cc=mirqus@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).