[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/2] xen/xenbus: Fix granting of vmalloc'd memory
On Tue, 25 Aug 2020, Simon Leiner wrote: > On some architectures (like ARM), virt_to_gfn cannot be used for > vmalloc'd memory because of its reliance on virt_to_phys. This patch > introduces a check for vmalloc'd addresses and obtains the PFN using > vmalloc_to_pfn in that case. > > Signed-off-by: Simon Leiner <simon@xxxxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > drivers/xen/xenbus/xenbus_client.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/xen/xenbus/xenbus_client.c > b/drivers/xen/xenbus/xenbus_client.c > index 786fbb7d8be0..907bcbb93afb 100644 > --- a/drivers/xen/xenbus/xenbus_client.c > +++ b/drivers/xen/xenbus/xenbus_client.c > @@ -379,8 +379,14 @@ int xenbus_grant_ring(struct xenbus_device *dev, void > *vaddr, > int i, j; > > for (i = 0; i < nr_pages; i++) { > - err = gnttab_grant_foreign_access(dev->otherend_id, > - virt_to_gfn(vaddr), 0); > + unsigned long gfn; > + > + if (is_vmalloc_addr(vaddr)) > + gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr)); > + else > + gfn = virt_to_gfn(vaddr); > + > + err = gnttab_grant_foreign_access(dev->otherend_id, gfn, 0); > if (err < 0) { > xenbus_dev_fatal(dev, err, > "granting access to ring page"); > -- > 2.24.3 (Apple Git-128) >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |