diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-03-26 08:48:08 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-03-26 08:48:08 +0000 |
commit | b8352255b3eac73ab2f15874575613603aa2e9c0 (patch) | |
tree | 448d31813c65f5fc24973f6b0e314a48a736ad84 | |
parent | daf911baab4db150c38c2a5f379ec074b412c5e5 (diff) | |
download | xen-b8352255b3eac73ab2f15874575613603aa2e9c0.tar.gz xen-b8352255b3eac73ab2f15874575613603aa2e9c0.tar.bz2 xen-b8352255b3eac73ab2f15874575613603aa2e9c0.zip |
shadow: Don't crash xen if hvm_read() from paged or shared memory
There are two new return cases from hvm_copy_from_guest_virt() to deal
with paging or shared memory -- retry the emulation rather than
crash.
Signed-off-by: Steven Hand <steven.hand@cl.cam.ac.uk>
-rw-r--r-- | xen/arch/x86/mm/shadow/common.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 5e37bb01d4..36f92760cf 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -180,6 +180,9 @@ hvm_read(enum x86_segment seg, case HVMCOPY_bad_gfn_to_mfn: case HVMCOPY_unhandleable: return X86EMUL_UNHANDLEABLE; + case HVMCOPY_gfn_paged_out: + case HVMCOPY_gfn_shared: + return X86EMUL_RETRY; } BUG(); |