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

Wayne Whitney (whitney@math.berkeley.edu)
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 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/