summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2023-05-30 12:46:22 +0200
committerThomas Gleixner <tglx@linutronix.de>2023-05-30 14:11:47 +0200
commit33e20b07bec4991c169e3c6ff28c2126583724fc (patch)
treed4995aef3605ac5ee4e899500af620b54f449a4e /arch/arm
parent5da80b28bf25c3458c7beb23794ff53622ce7eb4 (diff)
x86/realmode: Make stack lock work in trampoline_compat()
The stack locking and stack assignment macro LOAD_REALMODE_ESP fails to work when invoked from the 64bit trampoline entry point: trampoline_start64 trampoline_compat LOAD_REALMODE_ESP <- lock Accessing tr_lock is only possible from 16bit mode. For the compat entry point this needs to be pa_tr_lock so that the required relocation entry is generated. Otherwise it locks the non-relocated address which is aside of being wrong never cleared in secondary_startup_64() causing all but the first CPU to get stuck on the lock. Make the macro take an argument lock_pa which defaults to 0 and rename it to LOCK_AND_LOAD_REALMODE_ESP to make it clear what this is about. Fixes: f6f1ae9128d2 ("x86/smpboot: Implement a bit spinlock to protect the realmode stack") Reported-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Link: https://lore.kernel.org/r/87h6rujdvl.ffs@tglx
Diffstat (limited to 'arch/arm')
0 files changed, 0 insertions, 0 deletions