Messages in this thread |  | | Date | Sat, 9 Jun 2001 11:13:46 -0700 | | From | Wayne Whitney <> | | Subject | Re: missing symbol do_softirq in net moduels for pre-2 |
| |
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/
|  |