7f3646aa16
This patch changes the kernel's references to addresses in the vDSO image to be based on the symbols defined by vdso-syms.lds instead of the old vdso-syms.o symbols. This is all wrapped up in a macro defined by the new asm-x86/vdso.h header; that's the only place in the kernel source that has to know the details of the scheme for getting vDSO symbol values. Signed-off-by: Roland McGrath <roland@redhat.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
15 lines
411 B
C
15 lines
411 B
C
#ifndef _ASM_X86_VDSO_H
|
|
#define _ASM_X86_VDSO_H 1
|
|
|
|
extern const char VDSO64_PRELINK[];
|
|
|
|
/*
|
|
* Given a pointer to the vDSO image, find the pointer to VDSO64_name
|
|
* as that symbol is defined in the vDSO sources or linker script.
|
|
*/
|
|
#define VDSO64_SYMBOL(base, name) ({ \
|
|
extern const char VDSO64_##name[]; \
|
|
(void *) (VDSO64_##name - VDSO64_PRELINK + (unsigned long) (base)); })
|
|
|
|
#endif /* asm-x86/vdso.h */
|