Re: missing symbol do_softirq in net moduels for pre-2

Ed Tomlinson (tomlins@cam.org)
Sat, 9 Jun 2001 13:20:19 -0400


On Saturday 09 June 2001 13:04, Keith Owens wrote:
> On Sat, 9 Jun 2001 18:56:24 +0200,
>
> Thomas Langås <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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/