2008-02-04 15:29:27

by Pierre Peiffer

[permalink] [raw]
Subject: [PATCH 2.6.24-mm1] error compiling net driver NE2000/NE1000

Hi,

When I compile the kernel 2.6.24-mm1 with:
CONFIG_NET_ISA=y
CONFIG_NE2000=y

I have the following compile error:
...
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD .tmp_vmlinux1
drivers/built-in.o: In function `ne_block_output':
linux-2.6.24-mm1/drivers/net/ne.c:797: undefined reference to `NS8390_init'
drivers/built-in.o: In function `ne_drv_resume':
linux-2.6.24-mm1/drivers/net/ne.c:858: undefined reference to `NS8390_init'
drivers/built-in.o: In function `ne_probe1':
linux-2.6.24-mm1/drivers/net/ne.c:539: undefined reference to `NS8390_init'
make[1]: *** [.tmp_vmlinux1] Error 1
make: *** [sub-make] Error 2

As I saw that the file 8390p.c is compiled for this driver, but not the file
8390.c which contains this function NS8390_init(), I fixed this error with
the following patch.

As NS8390p_init() does the same thing than NS8390_init(), I suppose that this is the right fix ?

Signed-off-by: Pierre Peiffer <[email protected]>
---
drivers/net/ne.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

Index: b/drivers/net/ne.c
===================================================================
--- a/drivers/net/ne.c
+++ b/drivers/net/ne.c
@@ -536,7 +536,7 @@ static int __init ne_probe1(struct net_d
#ifdef CONFIG_NET_POLL_CONTROLLER
dev->poll_controller = eip_poll;
#endif
- NS8390_init(dev, 0);
+ NS8390p_init(dev, 0);

ret = register_netdev(dev);
if (ret)
@@ -794,7 +794,7 @@ retry:
if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
ne_reset_8390(dev);
- NS8390_init(dev,1);
+ NS8390p_init(dev,1);
break;
}

@@ -855,7 +855,7 @@ static int ne_drv_resume(struct platform

if (netif_running(dev)) {
ne_reset_8390(dev);
- NS8390_init(dev, 1);
+ NS8390p_init(dev, 1);
netif_device_attach(dev);
}
return 0;

--
Pierre


2008-02-04 21:12:06

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH 2.6.24-mm1] error compiling net driver NE2000/NE1000

On Mon, 4 Feb 2008 16:29:21 +0100
Pierre Peiffer <[email protected]> wrote:

> Hi,
>
> When I compile the kernel 2.6.24-mm1 with:
> CONFIG_NET_ISA=y
> CONFIG_NE2000=y
>
> I have the following compile error:
> ...
> GEN .version
> CHK include/linux/compile.h
> UPD include/linux/compile.h
> CC init/version.o
> LD init/built-in.o
> LD .tmp_vmlinux1
> drivers/built-in.o: In function `ne_block_output':
> linux-2.6.24-mm1/drivers/net/ne.c:797: undefined reference to `NS8390_init'
> drivers/built-in.o: In function `ne_drv_resume':
> linux-2.6.24-mm1/drivers/net/ne.c:858: undefined reference to `NS8390_init'
> drivers/built-in.o: In function `ne_probe1':
> linux-2.6.24-mm1/drivers/net/ne.c:539: undefined reference to `NS8390_init'
> make[1]: *** [.tmp_vmlinux1] Error 1
> make: *** [sub-make] Error 2

Thanks for reporting this.

> As I saw that the file 8390p.c is compiled for this driver, but not the file
> 8390.c which contains this function NS8390_init(), I fixed this error with
> the following patch.

Alan's
8390-split-8390-support-into-a-pausing-and-a-non-pausing-driver-core.patch
would be a prime suspect. I assume this bug isn't present ing mainline or
in 2.6.24?

> As NS8390p_init() does the same thing than NS8390_init(), I suppose that this is the right fix ?
>
> Signed-off-by: Pierre Peiffer <[email protected]>
> ---
> drivers/net/ne.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> Index: b/drivers/net/ne.c
> ===================================================================
> --- a/drivers/net/ne.c
> +++ b/drivers/net/ne.c
> @@ -536,7 +536,7 @@ static int __init ne_probe1(struct net_d
> #ifdef CONFIG_NET_POLL_CONTROLLER
> dev->poll_controller = eip_poll;
> #endif
> - NS8390_init(dev, 0);
> + NS8390p_init(dev, 0);
>
> ret = register_netdev(dev);
> if (ret)
> @@ -794,7 +794,7 @@ retry:
> if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
> printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
> ne_reset_8390(dev);
> - NS8390_init(dev,1);
> + NS8390p_init(dev,1);
> break;
> }
>
> @@ -855,7 +855,7 @@ static int ne_drv_resume(struct platform
>
> if (netif_running(dev)) {
> ne_reset_8390(dev);
> - NS8390_init(dev, 1);
> + NS8390p_init(dev, 1);
> netif_device_attach(dev);
> }
> return 0;

2008-02-18 15:04:31

by Pierre Peiffer

[permalink] [raw]
Subject: Re: [PATCH 2.6.24-mm1] error compiling net driver NE2000/NE1000

Hi,

I don't know if I have to warn on this or not, but as I didn't find any
discussion, it's probably better to mention it: the compiling error reported
below (or here: http://lkml.org/lkml/2008/2/4/173 ) does not seem to be
corrected in 2.6.25-rc2.mm1... So, I don't know if a fix is going on somewhere
or if the bug has fallen in a black hole.

(In the original mail, I've proposed a patch as a quick fix, but I don't know if
it can be considered as a definitive correction or not)

Thanks,

P.

Andrew Morton wrote:
> On Mon, 4 Feb 2008 16:29:21 +0100
> Pierre Peiffer <[email protected]> wrote:
>
>> Hi,
>>
>> When I compile the kernel 2.6.24-mm1 with:
>> CONFIG_NET_ISA=y
>> CONFIG_NE2000=y
>>
>> I have the following compile error:
>> ...
>> GEN .version
>> CHK include/linux/compile.h
>> UPD include/linux/compile.h
>> CC init/version.o
>> LD init/built-in.o
>> LD .tmp_vmlinux1
>> drivers/built-in.o: In function `ne_block_output':
>> linux-2.6.24-mm1/drivers/net/ne.c:797: undefined reference to `NS8390_init'
>> drivers/built-in.o: In function `ne_drv_resume':
>> linux-2.6.24-mm1/drivers/net/ne.c:858: undefined reference to `NS8390_init'
>> drivers/built-in.o: In function `ne_probe1':
>> linux-2.6.24-mm1/drivers/net/ne.c:539: undefined reference to `NS8390_init'
>> make[1]: *** [.tmp_vmlinux1] Error 1
>> make: *** [sub-make] Error 2
>
> Thanks for reporting this.
>
>> As I saw that the file 8390p.c is compiled for this driver, but not the file
>> 8390.c which contains this function NS8390_init(), I fixed this error with
>> the following patch.
>
> Alan's
> 8390-split-8390-support-into-a-pausing-and-a-non-pausing-driver-core.patch
> would be a prime suspect. I assume this bug isn't present ing mainline or
> in 2.6.24?
>
>> As NS8390p_init() does the same thing than NS8390_init(), I suppose that this is the right fix ?
>>
>> Signed-off-by: Pierre Peiffer <[email protected]>
>> ---
>> drivers/net/ne.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> Index: b/drivers/net/ne.c
>> ===================================================================
>> --- a/drivers/net/ne.c
>> +++ b/drivers/net/ne.c
>> @@ -536,7 +536,7 @@ static int __init ne_probe1(struct net_d
>> #ifdef CONFIG_NET_POLL_CONTROLLER
>> dev->poll_controller = eip_poll;
>> #endif
>> - NS8390_init(dev, 0);
>> + NS8390p_init(dev, 0);
>>
>> ret = register_netdev(dev);
>> if (ret)
>> @@ -794,7 +794,7 @@ retry:
>> if (time_after(jiffies, dma_start + 2*HZ/100)) { /* 20ms */
>> printk(KERN_WARNING "%s: timeout waiting for Tx RDC.\n", dev->name);
>> ne_reset_8390(dev);
>> - NS8390_init(dev,1);
>> + NS8390p_init(dev,1);
>> break;
>> }
>>
>> @@ -855,7 +855,7 @@ static int ne_drv_resume(struct platform
>>
>> if (netif_running(dev)) {
>> ne_reset_8390(dev);
>> - NS8390_init(dev, 1);
>> + NS8390p_init(dev, 1);
>> netif_device_attach(dev);
>> }
>> return 0;
>
>
>
>

--
Pierre Peiffer