[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 09/20] x86/shadow: Alter shadow_{pro, de}mote() to take a domain
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> --- xen/arch/x86/mm/shadow/common.c | 6 ++---- xen/arch/x86/mm/shadow/multi.c | 10 +++++----- xen/arch/x86/mm/shadow/private.h | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c index 6945dfe..c6b8e6f 100644 --- a/xen/arch/x86/mm/shadow/common.c +++ b/xen/arch/x86/mm/shadow/common.c @@ -990,9 +990,8 @@ int sh_unsync(struct vcpu *v, mfn_t gmfn) * involves making sure there are no writable mappings available to the guest * for this page. */ -void shadow_promote(struct vcpu *v, mfn_t gmfn, unsigned int type) +void shadow_promote(struct domain *d, mfn_t gmfn, unsigned int type) { - struct domain *d = v->domain; struct page_info *page = mfn_to_page(gmfn); ASSERT(mfn_valid(gmfn)); @@ -1017,9 +1016,8 @@ void shadow_promote(struct vcpu *v, mfn_t gmfn, unsigned int type) TRACE_SHADOW_PATH_FLAG(TRCE_SFLAG_PROMOTE); } -void shadow_demote(struct vcpu *v, mfn_t gmfn, u32 type) +void shadow_demote(struct domain *d, mfn_t gmfn, u32 type) { - struct domain *d = v->domain; struct page_info *page = mfn_to_page(gmfn); ASSERT(test_bit(_PGC_page_table, &page->count_info)); diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c index 82759a6..f2dea16 100644 --- a/xen/arch/x86/mm/shadow/multi.c +++ b/xen/arch/x86/mm/shadow/multi.c @@ -1563,7 +1563,7 @@ sh_make_shadow(struct vcpu *v, mfn_t gmfn, u32 shadow_type) } } - shadow_promote(v, gmfn, shadow_type); + shadow_promote(d, gmfn, shadow_type); set_shadow_status(d, gmfn, shadow_type, smfn); return smfn; @@ -1898,7 +1898,7 @@ void sh_destroy_l4_shadow(struct vcpu *v, mfn_t smfn) /* Record that the guest page isn't shadowed any more (in this type) */ gmfn = backpointer(sp); delete_shadow_status(d, gmfn, t, smfn); - shadow_demote(v, gmfn, t); + shadow_demote(d, gmfn, t); /* Decrement refcounts of all the old entries */ sl4mfn = smfn; SHADOW_FOREACH_L4E(sl4mfn, sl4e, 0, 0, d, { @@ -1930,7 +1930,7 @@ void sh_destroy_l3_shadow(struct vcpu *v, mfn_t smfn) /* Record that the guest page isn't shadowed any more (in this type) */ gmfn = backpointer(sp); delete_shadow_status(d, gmfn, t, smfn); - shadow_demote(v, gmfn, t); + shadow_demote(d, gmfn, t); /* Decrement refcounts of all the old entries */ sl3mfn = smfn; @@ -1968,7 +1968,7 @@ void sh_destroy_l2_shadow(struct vcpu *v, mfn_t smfn) /* Record that the guest page isn't shadowed any more (in this type) */ gmfn = backpointer(sp); delete_shadow_status(d, gmfn, t, smfn); - shadow_demote(v, gmfn, t); + shadow_demote(d, gmfn, t); /* Decrement refcounts of all the old entries */ sl2mfn = smfn; @@ -2005,7 +2005,7 @@ void sh_destroy_l1_shadow(struct vcpu *v, mfn_t smfn) { mfn_t gmfn = backpointer(sp); delete_shadow_status(d, gmfn, t, smfn); - shadow_demote(v, gmfn, t); + shadow_demote(d, gmfn, t); } if ( shadow_mode_refcounts(d) ) diff --git a/xen/arch/x86/mm/shadow/private.h b/xen/arch/x86/mm/shadow/private.h index 7abb0e0..3820d9e 100644 --- a/xen/arch/x86/mm/shadow/private.h +++ b/xen/arch/x86/mm/shadow/private.h @@ -350,8 +350,8 @@ void shadow_hash_delete(struct domain *d, unsigned long n, unsigned int t, mfn_t smfn); /* shadow promotion */ -void shadow_promote(struct vcpu *v, mfn_t gmfn, u32 type); -void shadow_demote(struct vcpu *v, mfn_t gmfn, u32 type); +void shadow_promote(struct domain *d, mfn_t gmfn, u32 type); +void shadow_demote(struct domain *d, mfn_t gmfn, u32 type); /* Shadow page allocation functions */ void shadow_prealloc(struct domain *d, u32 shadow_type, unsigned int count); -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |