فهرست منبع

KVM: MMU: Merge shadow level check in FNAME(fetch)

Remove the redundant level check when fetching
shadow pte for present & non-present spte.

Signed-off-by: Yaozu (Eddie) Dong <eddie.dong@intel.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Dong, Eddie 17 سال پیش
والد
کامیت
5882842f9b
1فایلهای تغییر یافته به همراه2 افزوده شده و 5 حذف شده
  1. 2 5
      arch/x86/kvm/paging_tmpl.h

+ 2 - 5
arch/x86/kvm/paging_tmpl.h

@@ -300,16 +300,13 @@ static u64 *FNAME(fetch)(struct kvm_vcpu *vcpu, gva_t addr,
 		bool new_page = 0;
 		bool new_page = 0;
 
 
 		shadow_ent = ((u64 *)__va(shadow_addr)) + index;
 		shadow_ent = ((u64 *)__va(shadow_addr)) + index;
+		if (level == PT_PAGE_TABLE_LEVEL)
+			break;
 		if (is_shadow_present_pte(*shadow_ent)) {
 		if (is_shadow_present_pte(*shadow_ent)) {
-			if (level == PT_PAGE_TABLE_LEVEL)
-				break;
 			shadow_addr = *shadow_ent & PT64_BASE_ADDR_MASK;
 			shadow_addr = *shadow_ent & PT64_BASE_ADDR_MASK;
 			continue;
 			continue;
 		}
 		}
 
 
-		if (level == PT_PAGE_TABLE_LEVEL)
-			break;
-
 		if (level - 1 == PT_PAGE_TABLE_LEVEL
 		if (level - 1 == PT_PAGE_TABLE_LEVEL
 		    && walker->level == PT_DIRECTORY_LEVEL) {
 		    && walker->level == PT_DIRECTORY_LEVEL) {
 			metaphysical = 1;
 			metaphysical = 1;