summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/smm.h
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-09-29 19:20:12 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2022-11-09 18:31:18 +0100
commit1d0da94cdafe38b2c501a8d55f981204e588e259 (patch)
tree0c52eb40bdfa50955aa7012e3e79fd4311d57d97 /arch/x86/kvm/smm.h
parentKVM: x86: move SMM exit to a new file (diff)
downloadlinux-1d0da94cdafe38b2c501a8d55f981204e588e259.tar.xz
linux-1d0da94cdafe38b2c501a8d55f981204e588e259.zip
KVM: x86: do not go through ctxt->ops when emulating rsm
Now that RSM is implemented in a single emulator callback, there is no point in going through other callbacks for the sake of modifying processor state. Just invoke KVM's own internal functions directly, and remove the callbacks that were only used by em_rsm; the only substantial difference is in the handling of the segment registers and descriptor cache, which have to be parsed into a struct kvm_segment instead of a struct desc_struct. This also fixes a bug where emulator_set_segment was shifting the limit left by 12 if the G bit is set, but the limit had not been shifted right upon entry to SMM. The emulator context is still used to restore EIP and the general purpose registers. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Message-Id: <20220929172016.319443-5-pbonzini@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/smm.h')
0 files changed, 0 insertions, 0 deletions