From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758926AbdACVhH (ORCPT ); Tue, 3 Jan 2017 16:37:07 -0500 Received: from mx2.suse.de ([195.135.220.15]:56247 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756575AbdACVg5 (ORCPT ); Tue, 3 Jan 2017 16:36:57 -0500 Date: Tue, 3 Jan 2017 22:36:53 +0100 From: Michal Hocko To: Lorenzo Stoakes Cc: linux-mm , Linux Kernel Mailing List , Paolo Bonzini , Kumar Gala , Mihai Caraman , Greg KH , Andrew Morton Subject: Re: [PATCH] drivers/virt: use get_user_pages_unlocked() Message-ID: <20170103213653.GB18167@dhcp22.suse.cz> References: <20161101194332.23961-1-lstoakes@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 03-01-17 21:14:20, Lorenzo Stoakes wrote: > Just a gentle ping on this :) I think this might be a slightly > abandoned corner of the kernel so not sure who else to ping to get > this moving. Maybe Andrew can pick it up? http://lkml.kernel.org/r/20161101194332.23961-1-lstoakes@gmail.com > On 1 November 2016 at 19:43, Lorenzo Stoakes wrote: > > Moving from get_user_pages() to get_user_pages_unlocked() simplifies the code > > and takes advantage of VM_FAULT_RETRY functionality when faulting in pages. > > > > Signed-off-by: Lorenzo Stoakes > > --- > > drivers/virt/fsl_hypervisor.c | 7 ++----- > > 1 file changed, 2 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/virt/fsl_hypervisor.c b/drivers/virt/fsl_hypervisor.c > > index 150ce2a..d3eca87 100644 > > --- a/drivers/virt/fsl_hypervisor.c > > +++ b/drivers/virt/fsl_hypervisor.c > > @@ -243,11 +243,8 @@ static long ioctl_memcpy(struct fsl_hv_ioctl_memcpy __user *p) > > sg_list = PTR_ALIGN(sg_list_unaligned, sizeof(struct fh_sg_list)); > > > > /* Get the physical addresses of the source buffer */ > > - down_read(¤t->mm->mmap_sem); > > - num_pinned = get_user_pages(param.local_vaddr - lb_offset, > > - num_pages, (param.source == -1) ? 0 : FOLL_WRITE, > > - pages, NULL); > > - up_read(¤t->mm->mmap_sem); > > + num_pinned = get_user_pages_unlocked(param.local_vaddr - lb_offset, > > + num_pages, pages, (param.source == -1) ? 0 : FOLL_WRITE); > > > > if (num_pinned != num_pages) { > > /* get_user_pages() failed */ > > -- > > 2.10.2 > > > > > > -- > Lorenzo Stoakes > https://ljs.io -- Michal Hocko SUSE Labs