[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 1/2] xsm/flask: remove get_page call from update_va_mapping hook
This fixes the issue fixed by changeset 25605:9950f2dc2ee6, in another function: GFN to MFN translation should not be done via a struct page when possibly handling frames without an associated struct page. Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> --- xen/xsm/flask/hooks.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index 23b84f3..f2e198e 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1372,8 +1372,9 @@ static int flask_update_va_mapping(struct domain *d, struct domain *f, int rc = 0; u32 psid; u32 map_perms = MMU__MAP_READ; - struct page_info *page = NULL; struct domain_security_struct *dsec; + unsigned long fgfn, fmfn; + p2m_type_t p2mt; if ( !(l1e_get_flags(pte) & _PAGE_PRESENT) ) return 0; @@ -1382,11 +1383,11 @@ static int flask_update_va_mapping(struct domain *d, struct domain *f, map_perms |= MMU__MAP_WRITE; dsec = d->ssid; + fgfn = l1e_get_pfn(pte); + fmfn = mfn_x(get_gfn_query(f, fgfn, &p2mt)); + rc = get_mfn_sid(fmfn, &psid); + put_gfn(f, fgfn); - page = get_page_from_gfn(f, l1e_get_pfn(pte), NULL, P2M_ALLOC); - rc = get_mfn_sid(page ? page_to_mfn(page) : INVALID_MFN, &psid); - if ( page ) - put_page(page); if ( rc ) return rc; -- 1.7.11.2 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |