Patchwork linux-next: build failure after merge of the final tree (net-next tree related)

login
register
mail settings
Submitter Stephen Rothwell
Date Jan. 3, 2013, 3:23 a.m.
Message ID <20130103142353.b4fee0ccd57730e4fbd63ba9@canb.auug.org.au>
Download mbox | patch
Permalink /patch/209177/
State Accepted
Delegated to: David Miller
Headers show

Comments

Stephen Rothwell - Jan. 3, 2013, 3:23 a.m.
Hi all,

After merging the final tree, today's linux-next build (powerpc
allyesconfig) failed like this:

drivers/net/built-in.o: In function `pci_get_domain_bus_and_slot':
(.opd+0x449e8): multiple definition of `pci_get_domain_bus_and_slot'
drivers/pci/built-in.o:(.opd+0x1c98): first defined here

Caused by commit 13159183ec7a ("qlcnic: 83xx base driver") from the
net-next tree.  Why is this commit adding a function that already exists
globally?

I added this patch for today:

From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 3 Jan 2013 14:19:16 +1100
Subject: [PATCH] qlcnic: do not duplicate infrastructure functions

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
---
 drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c |   20 +-------------------
 1 file changed, 1 insertion(+), 19 deletions(-)
David Miller - Jan. 3, 2013, 3:28 a.m.
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 3 Jan 2013 14:23:53 +1100

> Caused by commit 13159183ec7a ("qlcnic: 83xx base driver") from the
> net-next tree.  Why is this commit adding a function that already exists
> globally?

And this is after I pushed back on this patch series 5 times or so.

You qlogic guys, can you see why I give you such a hard time with
your patch submissions?  Even after I ask you to correct all of the
most obvious problems, there is still garbage like this that shows
up in your changes.

What in the world do I have to do, other than push back on your
submissions even harder, to keep crap like this from happening
in the future?

Tell me.

You, as a group, are the absolute worst networking driver submitters.

This is a real problem because you submit large bodies of code that 1)
nobody wants to review and 2) has a very small user base.  So you
impart an extremely large burdon upon me, in particular, because I'm
the only person that actually reviews your code at all.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller - Jan. 3, 2013, 9:51 a.m.
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 3 Jan 2013 14:23:53 +1100

> From: Stephen Rothwell <sfr@canb.auug.org.au>
> Date: Thu, 3 Jan 2013 14:19:16 +1100
> Subject: [PATCH] qlcnic: do not duplicate infrastructure functions
> 
> Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
index e1a3625..3bdb1beae 100644
--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c
@@ -2,12 +2,6 @@ 
  * QLogic qlcnic NIC Driver
  * Copyright (c)  2009-2010 QLogic Corporation
  *
- * PCI searching functions pci_get_domain_bus_and_slot & pci_channel_offline
- * Copyright (C) 1993 -- 1997 Drew Eckhardt, Frederic Potter,
- *					David Mosberger-Tang
- * Copyright (C) 1997 -- 2000 Martin Mares <mj@ucw.cz>
- * Copyright (C) 2003 -- 2004 Greg Kroah-Hartman <greg@kroah.com>.
- *
  * See LICENSE.qlcnic for copyright and licensing details.
  */
 
@@ -25,6 +19,7 @@ 
 #include <linux/inetdevice.h>
 #include <linux/aer.h>
 #include <linux/log2.h>
+#include <linux/pci.h>
 
 MODULE_DESCRIPTION("QLogic 1/10 GbE Converged/Intelligent Ethernet Driver");
 MODULE_LICENSE("GPL");
@@ -2907,19 +2902,6 @@  reschedule:
 	qlcnic_schedule_work(adapter, qlcnic_fw_poll_work, FW_POLL_DELAY);
 }
 
-struct pci_dev *pci_get_domain_bus_and_slot(int domain, unsigned int bus,
-					    unsigned int devfn)
-{
-	struct pci_dev *dev = NULL;
-
-	while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-		if (pci_domain_nr(dev->bus) == domain &&
-		    (dev->bus->number == bus && dev->devfn == devfn))
-			return dev;
-	}
-	return NULL;
-}
-
 static int qlcnic_is_first_func(struct pci_dev *pdev)
 {
 	struct pci_dev *oth_pdev;