[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/12] xen: mark grant mapped pages as foreign
On Fri, 2015-01-09 at 16:03 +0000, Stefano Stabellini wrote: > On Tue, 6 Jan 2015, David Vrabel wrote: > > From: Jenny Herbert <jennifer.herbert@xxxxxxxxxx> > > > > Use the "foreign" page flag to mark pages that have a grant map. Use > > page->private to store information of the grant (the granting domain > > and the grant reference). > > > > Signed-off-by: Jenny Herbert <jenny.herbert@xxxxxxxxxx> > > Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx> > > --- > > arch/x86/xen/p2m.c | 50 > > ++++++++++++++++++++++++++++++++++++++------- > > include/xen/grant_table.h | 13 ++++++++++++ > > 2 files changed, 56 insertions(+), 7 deletions(-) > > > > diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c > > index 0d70814..22624a3 100644 > > --- a/arch/x86/xen/p2m.c > > +++ b/arch/x86/xen/p2m.c > > @@ -648,6 +648,43 @@ bool set_phys_to_machine(unsigned long pfn, unsigned > > long mfn) > > return true; > > } > > > > +static int > > +init_page_grant_ref(struct page *p, domid_t domid, grant_ref_t grantref) > > +{ > > +#ifdef CONFIG_X86_64 > > + uint64_t gref; > > + uint64_t* gref_p = &gref; > > +#else > > + uint64_t* gref_p = kmalloc(sizeof(uint64_t), GFP_KERNEL); > > + if (!gref) > > + return -ENOMEM; > > + uint64_t* gref = gref_p; > > +#endif > > + > > + *gref_p = ((uint64_t) grantref << 32) | domid; > > + p->private = gref; > > + > > + WARN_ON(PagePrivate(p)); > > + WARN_ON(PageForeign(p)); > > + SetPagePrivate(p); > > + SetPageForeign(p); > > + return 0; > > +} > > + > > +static void > > +clear_page_grant_ref(struct page *p) > > +{ > > + WARN_ON(!PagePrivate(p)); > > + WARN_ON(!PageForeign(p)); > > + > > +#ifndef CONFIG_X86_64 > > + kfree(p->private); > > +#endif > > + p->private = 0; > > + ClearPagePrivate(p); > > + ClearPageForeign(p); > > +} > > Given that get_page_grant_ref is used by netback, these functions need > to be made arch-independent, moved to an arch-independent code location > and called appropriately. ... or stubbed out for arches which don't need this (which might include arm*?). _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |