x86/mm: Fix checks during foreign mapping of paged pages

Check that the valid mfn is the one we are mapping, not the
mfn of the page table of the foreign domain.

Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
Acked-by: Tim Deegan <tim@xen.org>
Committed-by: Tim Deegan <tim@xen.org>
This commit is contained in:
Andres Lagar-Cavilla committed 2011-12-01 17:21:24 +00:00
1 parent 70af77fae7
commit cd4e6b4768
1 file changed
+8 -4
+8 -4
View File
@@ -3572,7 +3572,8 @@ int do_mmu_update(
rc = -ENOENT;
break;
}
else if ( p2m_ram_paging_in_start == l1e_p2mt && !mfn_valid(mfn) )
else if ( p2m_ram_paging_in_start == l1e_p2mt &&
!mfn_valid(l1emfn) )
{
put_gfn(pg_owner, l1egfn);
rc = -ENOENT;
@@ -3620,7 +3621,8 @@ int do_mmu_update(
rc = -ENOENT;
break;
}
else if ( p2m_ram_paging_in_start == l2e_p2mt && !mfn_valid(mfn) )
else if ( p2m_ram_paging_in_start == l2e_p2mt &&
!mfn_valid(l2emfn) )
{
put_gfn(pg_owner, l2egfn);
rc = -ENOENT;
@@ -3654,7 +3656,8 @@ int do_mmu_update(
rc = -ENOENT;
break;
}
else if ( p2m_ram_paging_in_start == l3e_p2mt && !mfn_valid(mfn) )
else if ( p2m_ram_paging_in_start == l3e_p2mt &&
!mfn_valid(l3emfn) )
{
put_gfn(pg_owner, l3egfn);
rc = -ENOENT;
@@ -3688,7 +3691,8 @@ int do_mmu_update(
rc = -ENOENT;
break;
}
else if ( p2m_ram_paging_in_start == l4e_p2mt && !mfn_valid(mfn) )
else if ( p2m_ram_paging_in_start == l4e_p2mt &&
!mfn_valid(l4emfn) )
{
put_gfn(pg_owner, l4egfn);
rc = -ENOENT;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.