diff options
author | Jan Beulich <[email protected]> | 2019-11-11 15:32:12 +0100 |
---|---|---|
committer | Thomas Gleixner <[email protected]> | 2019-11-19 21:58:28 +0100 |
commit | 29b810f5a5ec127d3143770098e05981baa3eb77 (patch) | |
tree | da09a8c8e9d7ad026bcb3d99222464a91aa16dd0 /scripts/gcc-plugins/cyc_complexity_plugin.c | |
parent | 81ff2c37f9e5d77593928df0536d86443195fd64 (diff) |
x86/xen/32: Make xen_iret_crit_fixup() independent of frame layout
Now that SS:ESP always get saved by SAVE_ALL, this also needs to be
accounted for in xen_iret_crit_fixup(). Otherwise the old_ax value gets
interpreted as EFLAGS, and hence VM86 mode appears to be active all the
time, leading to random "vm86_32: no user_vm86: BAD" log messages alongside
processes randomly crashing.
Since following the previous model (sitting after SAVE_ALL) would further
complicate the code _and_ retain the dependency of xen_iret_crit_fixup() on
frame manipulations done by entry_32.S, switch things around and do the
adjustment ahead of SAVE_ALL.
Fixes: 3c88c692c287 ("x86/stackframe/32: Provide consistent pt_regs")
Signed-off-by: Jan Beulich <[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: Juergen Gross <[email protected]>
Cc: Stable Team <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
Diffstat (limited to 'scripts/gcc-plugins/cyc_complexity_plugin.c')
0 files changed, 0 insertions, 0 deletions