x86, trampoline: Common infrastructure for low memory trampolines
authorH. Peter Anvin <hpa@linux.intel.com>
Mon, 14 Feb 2011 23:34:57 +0000 (15:34 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Fri, 18 Feb 2011 05:02:43 +0000 (21:02 -0800)
commit4822b7fc6d4870685a9feadfc348d48f5e47460a
tree52a482fde76ff8bae64fc09761967a33b9b7b08b
parent85e2efbb1db9a18d218006706d6e4fbeb0216213
x86, trampoline: Common infrastructure for low memory trampolines

Common infrastructure for low memory trampolines.  This code installs
the trampolines permanently in low memory very early.  It also permits
multiple pieces of code to be used for this purpose.

This code also introduces a standard infrastructure for computing
symbol addresses in the trampoline code.

The only change to the actual SMP trampolines themselves is that the
64-bit trampoline has been made reusable -- the previous version would
overwrite the code with a status variable; this moves the status
variable to a separate location.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
LKML-Reference: <4D5DFBE4.7090104@intel.com>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Matthieu Castet <castet.matthieu@free.fr>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
arch/x86/Kconfig
arch/x86/kernel/Makefile
arch/x86/kernel/head32.c
arch/x86/kernel/head_64.S
arch/x86/kernel/setup.c
arch/x86/kernel/smpboot.c
arch/x86/kernel/trampoline.c
arch/x86/kernel/trampoline_32.S
arch/x86/kernel/trampoline_64.S
arch/x86/kernel/vmlinux.lds.S