diff options
author | Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> | 2012-10-16 08:10:59 -0400 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2012-10-29 18:31:04 -0400 |
commit | 81c52c56e2b43589091ee29038bcf793d3f184ab (patch) | |
tree | 763236629eb034e519db87d8568946883499a155 /virt/kvm/kvm_main.c | |
parent | 19bf7f8ac3f8131100027281c495dbbe00cd5ae0 (diff) |
KVM: do not treat noslot pfn as a error pfn
This patch filters noslot pfn out from error pfns based on Marcelo comment:
noslot pfn is not a error pfn
After this patch,
- is_noslot_pfn indicates that the gfn is not in slot
- is_error_pfn indicates that the gfn is in slot but the error is occurred
when translate the gfn to pfn
- is_error_noslot_pfn indicates that the pfn either it is error pfns or it
is noslot pfn
And is_invalid_pfn can be removed, it makes the code more clean
Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index be70035fd42a..2fb73191801f 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -1208,7 +1208,7 @@ __gfn_to_pfn_memslot(struct kvm_memory_slot *slot, gfn_t gfn, bool atomic, | |||
1208 | return KVM_PFN_ERR_RO_FAULT; | 1208 | return KVM_PFN_ERR_RO_FAULT; |
1209 | 1209 | ||
1210 | if (kvm_is_error_hva(addr)) | 1210 | if (kvm_is_error_hva(addr)) |
1211 | return KVM_PFN_ERR_BAD; | 1211 | return KVM_PFN_NOSLOT; |
1212 | 1212 | ||
1213 | /* Do not map writable pfn in the readonly memslot. */ | 1213 | /* Do not map writable pfn in the readonly memslot. */ |
1214 | if (writable && memslot_is_readonly(slot)) { | 1214 | if (writable && memslot_is_readonly(slot)) { |
@@ -1290,7 +1290,7 @@ EXPORT_SYMBOL_GPL(gfn_to_page_many_atomic); | |||
1290 | 1290 | ||
1291 | static struct page *kvm_pfn_to_page(pfn_t pfn) | 1291 | static struct page *kvm_pfn_to_page(pfn_t pfn) |
1292 | { | 1292 | { |
1293 | if (is_error_pfn(pfn)) | 1293 | if (is_error_noslot_pfn(pfn)) |
1294 | return KVM_ERR_PTR_BAD_PAGE; | 1294 | return KVM_ERR_PTR_BAD_PAGE; |
1295 | 1295 | ||
1296 | if (kvm_is_mmio_pfn(pfn)) { | 1296 | if (kvm_is_mmio_pfn(pfn)) { |
@@ -1322,7 +1322,7 @@ EXPORT_SYMBOL_GPL(kvm_release_page_clean); | |||
1322 | 1322 | ||
1323 | void kvm_release_pfn_clean(pfn_t pfn) | 1323 | void kvm_release_pfn_clean(pfn_t pfn) |
1324 | { | 1324 | { |
1325 | if (!is_error_pfn(pfn) && !kvm_is_mmio_pfn(pfn)) | 1325 | if (!is_error_noslot_pfn(pfn) && !kvm_is_mmio_pfn(pfn)) |
1326 | put_page(pfn_to_page(pfn)); | 1326 | put_page(pfn_to_page(pfn)); |
1327 | } | 1327 | } |
1328 | EXPORT_SYMBOL_GPL(kvm_release_pfn_clean); | 1328 | EXPORT_SYMBOL_GPL(kvm_release_pfn_clean); |