[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)
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.