summaryrefslogtreecommitdiffstats
path: root/rust/helpers/workqueue.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2025-04-09 21:16:01 +0200
committerPeter Zijlstra <peterz@infradead.org>2025-04-09 21:29:11 +0200
commit1fac13956e9877483ece9d090a62239cdfe9deb7 (patch)
treef426ffb20b65b943526a5cb3cddaed426902ce5e /rust/helpers/workqueue.c
parentf0df00ebc57f803603f2a2e0df197e51f06fbe90 (diff)
downloadlinux-1fac13956e9877483ece9d090a62239cdfe9deb7.tar.gz
linux-1fac13956e9877483ece9d090a62239cdfe9deb7.tar.bz2
linux-1fac13956e9877483ece9d090a62239cdfe9deb7.zip
x86/ibt: Fix hibernate
Todd reported, and Len confirmed, that commit 582077c94052 ("x86/cfi: Clean up linkage") broke S4 hiberate on a fair number of machines. Turns out these machines trip #CP when trying to restore the image. As it happens, the commit in question removes two ENDBR instructions in the hibernate code, and clearly got it wrong. Notably restore_image() does an indirect jump to relocated_restore_code(), which is a relocated copy of core_restore_code(). In turn, core_restore_code(), will at the end do an indirect jump to restore_jump_address (r8), which is pointing at a relocated restore_registers(). So both sites do indeed need to be ENDBR. Fixes: 582077c94052 ("x86/cfi: Clean up linkage") Reported-by: Todd Brandt <todd.e.brandt@intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Tested-by: Todd Brandt <todd.e.brandt@intel.com> Tested-by: Len Brown <len.brown@intel.com> Link: https://bugzilla.kernel.org/show_bug.cgi?id=219998 Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219998
Diffstat (limited to 'rust/helpers/workqueue.c')
0 files changed, 0 insertions, 0 deletions