From: Jeff Dike Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton --- 25-akpm/include/asm-um/processor-generic.h | 2 -- 25-akpm/include/asm-um/processor-i386.h | 7 +++++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff -puN include/asm-um/processor-generic.h~uml-implement-current_text_addr include/asm-um/processor-generic.h --- 25/include/asm-um/processor-generic.h~uml-implement-current_text_addr 2004-09-23 00:08:06.592073816 -0700 +++ 25-akpm/include/asm-um/processor-generic.h 2004-09-23 00:08:06.597073056 -0700 @@ -16,8 +16,6 @@ struct task_struct; struct mm_struct; -#define current_text_addr() ((void *) 0) - #define cpu_relax() barrier() struct thread_struct { diff -puN include/asm-um/processor-i386.h~uml-implement-current_text_addr include/asm-um/processor-i386.h --- 25/include/asm-um/processor-i386.h~uml-implement-current_text_addr 2004-09-23 00:08:06.593073664 -0700 +++ 25-akpm/include/asm-um/processor-i386.h 2004-09-23 00:08:06.597073056 -0700 @@ -19,6 +19,13 @@ struct arch_thread { #include "asm/arch/user.h" +/* + * Default implementation of macro that returns current + * instruction pointer ("program counter"). Stolen + * from asm-i386/processor.h + */ +#define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; }) + #include "asm/processor-generic.h" #endif _