x86, realmode: fix 64-bit wakeup sequence
There were number of issues in wakeup sequence: - Wakeup stack was placed in hardcoded address. - NX bit in EFER was not enabled. - Initialization incorrectly set physical address of secondary_startup_64. - Some alignment issues. This patch fixes these issues and in addition: - Unifies coding conventions in .S files. - Sets alignments of code and data right. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@intel.com> Link: http://lkml.kernel.org/r/1336501366-28617-18-git-send-email-jarkko.sakkinen@intel.com Originally-by: H. Peter Anvin <hpa@linux.intel.com> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Len Brown <len.brown@intel.com> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:

committed by
H. Peter Anvin

parent
6feb592dce
commit
8e029fcdd8
19
arch/x86/realmode/rm/stack.S
Normal file
19
arch/x86/realmode/rm/stack.S
Normal file
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Common heap and stack allocations
|
||||
*/
|
||||
|
||||
#include <linux/linkage.h>
|
||||
|
||||
.data
|
||||
GLOBAL(HEAP)
|
||||
.long rm_heap
|
||||
GLOBAL(heap_end)
|
||||
.long rm_stack
|
||||
|
||||
.bss
|
||||
.balign 16
|
||||
GLOBAL(rm_heap)
|
||||
.space 2048
|
||||
GLOBAL(rm_stack)
|
||||
.space 2048
|
||||
GLOBAL(rm_stack_end)
|
Reference in New Issue
Block a user