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

Wayne Whitney (
Sat, 9 Jun 2001 11:13:46 -0700

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

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at