]> xenbits.xensource.com Git - xen.git/commit
x86/entry: Partially revert IST-exit checks
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 19 Sep 2023 10:23:34 +0000 (11:23 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 19 Sep 2023 18:35:22 +0000 (19:35 +0100)
commit9b57c800b79b96769ea3dcd6468578fa664d19f9
treefc8d3742a0b94a943f4fe3b6b1b9518ed9fd0929
parentea36ac0de27c2a7c847a2a52c3e0f97a45864d81
x86/entry: Partially revert IST-exit checks

The patch adding check_ist_exit() didn't account for the fact that
reset_stack_and_jump() is not an ABI-preserving boundary.  The IST-ness in
%r12 doesn't survive into the next context, and is a stale value C.

This shows up in Gitlab CI for the Clang build:

  https://gitlab.com/xen-project/people/andyhhp/xen/-/jobs/5112783827

and in OSSTest for GCC 8:

  http://logs.test-lab.xenproject.org/osstest/logs/183045/test-amd64-amd64-xl-qemuu-debianhvm-amd64/serial-pinot0.log

There's no straightforward way to reconstruct the IST-exit-ness on the
exit-to-guest path after a context switch.  For now, we only need IST-exit on
the return-to-Xen path.

Fixes: 21bdc25b05a0 ("x86/entry: Track the IST-ness of an entry for the exit paths")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/x86_64/compat/entry.S
xen/arch/x86/x86_64/entry.S