diff options
author | Avi Kivity <avi@qumranet.com> | 2007-06-04 15:58:30 +0300 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2007-07-16 12:05:45 +0300 |
commit | 17c3ba9d37dbda490792a2b52953f09d0dee30d6 (patch) | |
tree | 44749b8658b61c7aa6cdb38d7823fa061d24b12c /drivers/kvm/vmx.c | |
parent | bd2b2baa5c5fbb08b4b0df7508ff419407f7ece6 (diff) | |
download | lwn-17c3ba9d37dbda490792a2b52953f09d0dee30d6.tar.gz lwn-17c3ba9d37dbda490792a2b52953f09d0dee30d6.zip |
KVM: Lazy guest cr3 switching
Switch guest paging context may require us to allocate memory, which
might fail. Instead of wiring up error paths everywhere, make context
switching lazy and actually do the switch before the next guest entry,
where we can return an error if allocation fails.
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm/vmx.c')
-rw-r--r-- | drivers/kvm/vmx.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c index 93e5bb2c40e3..4d255493a57e 100644 --- a/drivers/kvm/vmx.c +++ b/drivers/kvm/vmx.c @@ -1988,6 +1988,10 @@ again: vmx_save_host_state(vcpu); kvm_load_guest_fpu(vcpu); + r = kvm_mmu_reload(vcpu); + if (unlikely(r)) + goto out; + /* * Loading guest fpu may have cleared host cr0.ts */ |