Re: [patch] 2.4.6-pre3 unresolved symbol do_softirq
David S. Miller (davem@redhat.com)
Wed, 13 Jun 2001 07:01:34 -0700 (PDT)
Keith Owens writes:
 > It works for integers but call do_softirq is more of a problem.  I
 > could not find an asm constraint that generated correct code in a
 > single instruction.  The closest I could get was
 >   __asm__("call *%%eax" : : "a" (do_softirq));
 > The 'obvious'
 >   __asm__("call %0" : : "m" (do_softirq));
 > calls to a location that contains the address of do_softirq, oops.
 > 
 > Any other architectures that call do_softirq inside asm would need
 > similar hard coding of indirect branches.  It is simpler to export
 > do_softirq with no version, and have cleaner asm.
Why doesn't this work on x86?
#define my_symbol	my_symbol_versioned
extern void my_symbol(void);
__asm__("call %0" : : "i" (my_symbol));
Later,
David S. Miller
davem@redhat.com
-
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/