|
@@ -1302,6 +1302,11 @@ static bool shadow_walk_okay(struct kvm_shadow_walk_iterator *iterator)
|
|
|
{
|
|
|
if (iterator->level < PT_PAGE_TABLE_LEVEL)
|
|
|
return false;
|
|
|
+
|
|
|
+ if (iterator->level == PT_PAGE_TABLE_LEVEL)
|
|
|
+ if (is_large_pte(*iterator->sptep))
|
|
|
+ return false;
|
|
|
+
|
|
|
iterator->index = SHADOW_PT_INDEX(iterator->addr, iterator->level);
|
|
|
iterator->sptep = ((u64 *)__va(iterator->shadow_addr)) + iterator->index;
|
|
|
return true;
|