|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3/3] x86: tighten MMU_*PT_UPDATE* check and combine error paths
Don't accept anything other than r/w RAM pages and move the paged-out
check into the (unlikely) error path following that check.
Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -3507,18 +3507,18 @@ long do_mmu_update(
gmfn = req.ptr >> PAGE_SHIFT;
page = get_page_from_gfn(pt_owner, gmfn, &p2mt, P2M_ALLOC);
- if ( p2m_is_paged(p2mt) )
+ if ( unlikely(!page) || p2mt != p2m_ram_rw )
{
- ASSERT(!page);
- p2m_mem_paging_populate(pt_owner, gmfn);
- rc = -ENOENT;
- break;
- }
-
- if ( unlikely(!page) )
- {
- gdprintk(XENLOG_WARNING,
- "Could not get page for normal update\n");
+ if ( page )
+ put_page(page);
+ if ( p2m_is_paged(p2mt) )
+ {
+ p2m_mem_paging_populate(pt_owner, gmfn);
+ rc = -ENOENT;
+ }
+ else
+ gdprintk(XENLOG_WARNING,
+ "Could not get page for normal update\n");
break;
}
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |