* missing symbol do_softirq in net moduels for pre-2
@ 2001-06-09 15:07 Ed Tomlinson
2001-06-09 16:17 ` Keith Owens
2001-06-09 16:56 ` Wayne Whitney
0 siblings, 2 replies; 9+ messages in thread
From: Ed Tomlinson @ 2001-06-09 15:07 UTC (permalink / raw)
To: linux-kernel
Hi,
Built -pre2 and noticed most of the modules in net/* are getting
a missing symbol for do_softirq.
Have I messed up, or is there a real error?
Ed Tomlinson <tomlins@cam.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 15:07 missing symbol do_softirq in net moduels for pre-2 Ed Tomlinson
@ 2001-06-09 16:17 ` Keith Owens
2001-06-09 16:56 ` Thomas Langås
2001-06-09 16:56 ` Wayne Whitney
1 sibling, 1 reply; 9+ messages in thread
From: Keith Owens @ 2001-06-09 16:17 UTC (permalink / raw)
To: Ed Tomlinson; +Cc: linux-kernel
On Sat, 9 Jun 2001 11:07:52 -0400,
Ed Tomlinson <tomlins@cam.org> wrote:
>Built -pre2 and noticed most of the modules in net/* are getting
>a missing symbol for do_softirq.
http://www.tux.org/lkml/#s8-8
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 16:17 ` Keith Owens
@ 2001-06-09 16:56 ` Thomas Langås
2001-06-09 17:04 ` Keith Owens
0 siblings, 1 reply; 9+ messages in thread
From: Thomas Langås @ 2001-06-09 16:56 UTC (permalink / raw)
To: Keith Owens; +Cc: Ed Tomlinson, linux-kernel
Keith Owens:
> >Built -pre2 and noticed most of the modules in net/* are getting
> >a missing symbol for do_softirq.
> http://www.tux.org/lkml/#s8-8
I got the same error on -pre1, and tried the info in the link, didn't help:
root@test4:/usr/src# depmod -ae
depmod: *** Unresolved symbols in /lib/modules/2.4.6-pre1/kernel/net/ipv4/netfilter/ip_tables.o
depmod: do_softirq
depmod: *** Unresolved symbols in /lib/modules/2.4.6-pre1/kernel/net/ipv4/netfilter/ipt_LOG.o
depmod: do_softirq
Am I missing something in my .config, or is there something else that's
wrong? Any clues to where I should look?
--
-Thomas
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 15:07 missing symbol do_softirq in net moduels for pre-2 Ed Tomlinson
2001-06-09 16:17 ` Keith Owens
@ 2001-06-09 16:56 ` Wayne Whitney
2001-06-09 17:04 ` Ed Tomlinson
1 sibling, 1 reply; 9+ messages in thread
From: Wayne Whitney @ 2001-06-09 16:56 UTC (permalink / raw)
To: kaos, Ed Tomlinson; +Cc: linux-kernel
In mailing-lists.linux-kernel, Keith Owens wrote:
> On Sat, 9 Jun 2001 Ed Tomlinson <tomlins@cam.org> wrote:
>
> > Built -pre2 and noticed most of the modules in net/* are getting
> > a missing symbol for do_softirq.
>
> http://www.tux.org/lkml/#s8-8
Hmm, I don't think this is it--I'm seeing the same thing, and I have
tried 'make mrproper'. All symbols are getting versionated except
certain calls to do_softirq() in, e.g., sunrpc.o and the iptables
modules.
I looked into this, and I believe the problem is due to 2.4.6-pre2's
change to the i386 local_bh_enable() macro--the C version has been
replaced with an assembly language version that does "call
do_doftirq;". Perhaps this function call from the assembly language
version does not get versionated?
Cheers, Wayne
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 16:56 ` Wayne Whitney
@ 2001-06-09 17:04 ` Ed Tomlinson
0 siblings, 0 replies; 9+ messages in thread
From: Ed Tomlinson @ 2001-06-09 17:04 UTC (permalink / raw)
To: Wayne Whitney, kaos, Ed Tomlinson; +Cc: linux-kernel
On Saturday 09 June 2001 12:56, Wayne Whitney wrote:
> In mailing-lists.linux-kernel, Keith Owens wrote:
> > On Sat, 9 Jun 2001 Ed Tomlinson <tomlins@cam.org> wrote:
> > > Built -pre2 and noticed most of the modules in net/* are getting
> > > a missing symbol for do_softirq.
> >
> > http://www.tux.org/lkml/#s8-8
>
> Hmm, I don't think this is it--I'm seeing the same thing, and I have
> tried 'make mrproper'. All symbols are getting versionated except
> certain calls to do_softirq() in, e.g., sunrpc.o and the iptables
> modules.
>
> I looked into this, and I believe the problem is due to 2.4.6-pre2's
> change to the i386 local_bh_enable() macro--the C version has been
> replaced with an assembly language version that does "call
> do_doftirq;". Perhaps this function call from the assembly language
> version does not get versionated?
In my case its off a clean tree patched with lvm, ide patches, dma timeout
retry patch and reiserfs fixes. Did we not have a problem a while back
in ac with versioned symbols in assembly?
Ed Tomlinson
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 16:56 ` Thomas Langås
@ 2001-06-09 17:04 ` Keith Owens
2001-06-09 17:20 ` Ed Tomlinson
2001-06-09 18:13 ` Wayne Whitney
0 siblings, 2 replies; 9+ messages in thread
From: Keith Owens @ 2001-06-09 17:04 UTC (permalink / raw)
To: tlan; +Cc: Ed Tomlinson, linux-kernel
On Sat, 9 Jun 2001 18:56:24 +0200,
=?iso-8859-1?Q?Thomas_Lang=E5s?= <tlan@stud.ntnu.no> wrote:
>Keith Owens:
>> >Built -pre2 and noticed most of the modules in net/* are getting
>> >a missing symbol for do_softirq.
>> http://www.tux.org/lkml/#s8-8
>
>I got the same error on -pre1, and tried the info in the link, didn't help:
>
>root@test4:/usr/src# depmod -ae
>depmod: *** Unresolved symbols in /lib/modules/2.4.6-pre1/kernel/net/ipv4/netfilter/ip_tables.o
>depmod: do_softirq
It was missing in 6-pre1. It should have been fixed in 6-pre2.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 17:04 ` Keith Owens
@ 2001-06-09 17:20 ` Ed Tomlinson
2001-06-09 18:13 ` Wayne Whitney
1 sibling, 0 replies; 9+ messages in thread
From: Ed Tomlinson @ 2001-06-09 17:20 UTC (permalink / raw)
To: Keith Owens, tlan; +Cc: Ed Tomlinson, linux-kernel
On Saturday 09 June 2001 13:04, Keith Owens wrote:
> On Sat, 9 Jun 2001 18:56:24 +0200,
>
> =?iso-8859-1?Q?Thomas_Lang=E5s?= <tlan@stud.ntnu.no> wrote:
> >Keith Owens:
> >> >Built -pre2 and noticed most of the modules in net/* are getting
> >> >a missing symbol for do_softirq.
> >>
> >> http://www.tux.org/lkml/#s8-8
> >
> >I got the same error on -pre1, and tried the info in the link, didn't
> > help:
> >
> >root@test4:/usr/src# depmod -ae
> >depmod: *** Unresolved symbols in
> > /lib/modules/2.4.6-pre1/kernel/net/ipv4/netfilter/ip_tables.o depmod:
> > do_softirq
>
> It was missing in 6-pre1. It should have been fixed in 6-pre2.
The fix to export ksyms for do_softirq is _in_ pre2... its just not working.
from ksyms in pre2:
/* software interrupts */
EXPORT_SYMBOL(tasklet_hi_vec);
EXPORT_SYMBOL(tasklet_vec);
EXPORT_SYMBOL(bh_task_vec);
EXPORT_SYMBOL(init_bh);
EXPORT_SYMBOL(remove_bh);
EXPORT_SYMBOL(tasklet_init);
EXPORT_SYMBOL(tasklet_kill);
EXPORT_SYMBOL(__run_task_queue);
EXPORT_SYMBOL(do_softirq);
EXPORT_SYMBOL(tasklet_schedule);
EXPORT_SYMBOL(tasklet_hi_schedule);
in the arch code for softirq we now have:
+#define local_bh_enable() \
+do { \
+ unsigned int *ptr = &local_bh_count(smp_processor_id()); \
+ \
+ if (!--*ptr) \
+ __asm__ __volatile__ ( \
+ "cmpl $0, -8(%0);" \
+ "jnz 2f;" \
+ "1:;" \
+ \
+ ".section .text.lock,\"ax\";" \
+ "2: pushl %%eax; pushl %%ecx; pushl %%edx;" \
+ "call do_softirq;"
What has to happen to get assembly code to version the symbol?
Ed Tomlinson
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 17:04 ` Keith Owens
2001-06-09 17:20 ` Ed Tomlinson
@ 2001-06-09 18:13 ` Wayne Whitney
2001-06-09 18:28 ` Keith Owens
1 sibling, 1 reply; 9+ messages in thread
From: Wayne Whitney @ 2001-06-09 18:13 UTC (permalink / raw)
To: tomlins, Keith Owens, tlan; +Cc: linux-kernel, whitney
On 09 June 2001, Ed Tomlinson wrote:
>in the arch code for softirq we now have:
>
>+#define local_bh_enable() \
>+do { \
>+ unsigned int *ptr = &local_bh_count(smp_processor_id()); \
>+ \
>+ if (!--*ptr) \
>+ __asm__ __volatile__ ( \
>+ "cmpl $0, -8(%0);" \
>+ "jnz 2f;" \
>+ "1:;" \
>+ \
>+ ".section .text.lock,\"ax\";" \
>+ "2: pushl %%eax; pushl %%ecx; pushl %%edx;" \
>+ "call do_softirq;"
>
>What has to happen to get assembly code to version the symbol?
I have verified that the versioning of the do_softirq symbol above is
the source of the problems in 2.4.6-pre2: I made two copies of the
local_bh_enable macro, one with the versioning hash explicitly
appended to the symbol, and chose between with #ifdef MODULE.
Everything works fine now.
Of course, this is ugly, ugly, ugly, so hopefully someone will answer
Ed's question as to the correct way of doing this.
Cheers, Wayne
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: missing symbol do_softirq in net moduels for pre-2
2001-06-09 18:13 ` Wayne Whitney
@ 2001-06-09 18:28 ` Keith Owens
0 siblings, 0 replies; 9+ messages in thread
From: Keith Owens @ 2001-06-09 18:28 UTC (permalink / raw)
To: whitney; +Cc: tomlins, tlan, linux-kernel, mingo, torvalds
On Sat, 9 Jun 2001 11:13:46 -0700,
Wayne Whitney <whitney@math.berkeley.edu> wrote:
>I have verified that the versioning of the do_softirq symbol above is
>the source of the problems in 2.4.6-pre2
Resend, the first patch never appeared. The problem is the call to
do_softirq inside an asm string where cpp cannot convert it. The
correct fix is toe xpose do_softirq so cpp can convert it then map to a
string and concatenate with teh asm string. But that requires ugly
helper macros, a cleaner fix is:
Against 2.4.6-pre2. Note: you must run make mrproper after applying
this patch.
Index: 6-pre2.1/kernel/ksyms.c
--- 6-pre2.1/kernel/ksyms.c Sat, 09 Jun 2001 11:25:53 +1000 kaos (linux-2.4/j/46_ksyms.c 1.1.2.2.1.1.2.1.1.8.2.1.2.1 644)
+++ 6-pre2.1(w)/kernel/ksyms.c Sun, 10 Jun 2001 03:36:12 +1000 kaos (linux-2.4/j/46_ksyms.c 1.1.2.2.1.1.2.1.1.8.2.1.2.1 644)
@@ -536,7 +536,7 @@ EXPORT_SYMBOL(remove_bh);
EXPORT_SYMBOL(tasklet_init);
EXPORT_SYMBOL(tasklet_kill);
EXPORT_SYMBOL(__run_task_queue);
-EXPORT_SYMBOL(do_softirq);
+EXPORT_SYMBOL_NOVERS(do_softirq);
EXPORT_SYMBOL(tasklet_schedule);
EXPORT_SYMBOL(tasklet_hi_schedule);
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2001-06-09 18:28 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-06-09 15:07 missing symbol do_softirq in net moduels for pre-2 Ed Tomlinson
2001-06-09 16:17 ` Keith Owens
2001-06-09 16:56 ` Thomas Langås
2001-06-09 17:04 ` Keith Owens
2001-06-09 17:20 ` Ed Tomlinson
2001-06-09 18:13 ` Wayne Whitney
2001-06-09 18:28 ` Keith Owens
2001-06-09 16:56 ` Wayne Whitney
2001-06-09 17:04 ` Ed Tomlinson
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).