Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Linux: Kernel

[patch] fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'

 

 

Linux kernel RSS feed   Index | Next | Previous | View Threaded


mingo at elte

Jun 20, 2008, 2:33 AM

Post #1 of 3 (250 views)
Permalink
[patch] fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'

commit 2538003ce2ea0b936d273692bc4e51c5b52fe70d
Author: Ingo Molnar <mingo [at] elte>
Date: Fri Jun 20 11:29:31 2008 +0200

fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'

-tip testing found the following build failure:

drivers/built-in.o: In function `corkscrew_setup':
3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'

which happens if 3c515.c is build without CONFIG_PNP:

http://redhat.com/~mingo/misc/config-Fri_Jun_20_10_02_43_CEST_2008.bad

the reason is pnp_irq() use outside of its __ISAPNP__ section.

corkscrew_setup() always called with NULL in the !__ISAPNP__ case, but
also check this condition to make sure.

Signed-off-by: Ingo Molnar <mingo [at] elte>

diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
index 105a8c7..09dd063 100644
--- a/drivers/net/3c515.c
+++ b/drivers/net/3c515.c
@@ -573,7 +573,12 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
DECLARE_MAC_BUF(mac);

if (idev) {
+#ifdef __ISAPNP__
irq = pnp_irq(idev, 0);
+#else
+ /* Can not happen - in the !PNP case we always pass in NULL */
+ BUG_ON(1);
+#endif
vp->dev = &idev->dev;
} else {
irq = inw(ioaddr + 0x2002) & 15;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


randy.dunlap at oracle

Jun 20, 2008, 8:13 AM

Post #2 of 3 (215 views)
Permalink
Re: [patch] fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource' [In reply to]

On Fri, 20 Jun 2008 11:33:16 +0200 Ingo Molnar wrote:

> commit 2538003ce2ea0b936d273692bc4e51c5b52fe70d
> Author: Ingo Molnar <mingo [at] elte>
> Date: Fri Jun 20 11:29:31 2008 +0200
>
> fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'
>
> -tip testing found the following build failure:
>
> drivers/built-in.o: In function `corkscrew_setup':
> 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource'
>
> which happens if 3c515.c is build without CONFIG_PNP:
>
> http://redhat.com/~mingo/misc/config-Fri_Jun_20_10_02_43_CEST_2008.bad
>
> the reason is pnp_irq() use outside of its __ISAPNP__ section.
>
> corkscrew_setup() always called with NULL in the !__ISAPNP__ case, but
> also check this condition to make sure.
>
> Signed-off-by: Ingo Molnar <mingo [at] elte>

Patch is in Jeff's tree.

Sometimes we need to have build patches merged sooner rather than later... :(


> diff --git a/drivers/net/3c515.c b/drivers/net/3c515.c
> index 105a8c7..09dd063 100644
> --- a/drivers/net/3c515.c
> +++ b/drivers/net/3c515.c
> @@ -573,7 +573,12 @@ static int corkscrew_setup(struct net_device *dev, int ioaddr,
> DECLARE_MAC_BUF(mac);
>
> if (idev) {
> +#ifdef __ISAPNP__
> irq = pnp_irq(idev, 0);
> +#else
> + /* Can not happen - in the !PNP case we always pass in NULL */
> + BUG_ON(1);
> +#endif
> vp->dev = &idev->dev;
> } else {
> irq = inw(ioaddr + 0x2002) & 15;
> --


---
~Randy
Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA
http://linuxplumbersconf.org/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/


mingo at elte

Jun 20, 2008, 8:51 AM

Post #3 of 3 (215 views)
Permalink
Re: [patch] fix 3c515.c:(.text+0x57200): undefined reference to `pnp_get_resource' [In reply to]

* Randy Dunlap <randy.dunlap [at] oracle> wrote:

> > Signed-off-by: Ingo Molnar <mingo [at] elte>
>
> Patch is in Jeff's tree.

i see. Hm, as far as i can see the patch was not Cc:-ed to lkml hence i
did not see that it exist and created a patch for it. Please Cc: lkml
for any mainline fix you think other people might trigger.

also, here's some small nitpicking about your patch:

+#ifdef __ISAPNP__
if (idev) {
irq = pnp_irq(idev, 0);
vp->dev = &idev->dev;
} else {
irq = inw(ioaddr + 0x2002) & 15;
}
+#else
+ irq = inw(ioaddr + 0x2002) & 15;
+#endif

as you now unconditonally assume that idev is NULL in the !__ISAPNP__.
Which is true currently but might not be with other changes (which is
unlikely but still). It also duplicates code visually.

So i'd still slightly prefer my patch instead of yours which avoids the
duplication and puts the assumption/constraint straight in there via a
BUG_ON():

> > if (idev) {
> > +#ifdef __ISAPNP__
> > irq = pnp_irq(idev, 0);
> > +#else
> > + /* Can not happen - in the !PNP case we always pass in NULL */
> > + BUG_ON(1);
> > +#endif
> > vp->dev = &idev->dev;
> > } else {
> > irq = inw(ioaddr + 0x2002) & 15;
> > --

no strong feelings though - it's a nitpick and this code is obviously
obsolete.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo [at] vger
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

Linux kernel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.