Re: [PATCH RESEND] drm/via: use get_user_pages_unlocked()

From: Daniel Vetter
Date: Wed Mar 01 2017 - 03:43:45 EST


On Tue, Feb 28, 2017 at 08:28:08PM +0000, Lorenzo Stoakes wrote:
> On 28 February 2017 at 19:35, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> > On Tue, Feb 28, 2017 at 10:01:10AM +0100, Daniel Vetter wrote:
> >
> >> > + ret = get_user_pages_unlocked((unsigned long)xfer->mem_addr,
> >> > + vsg->num_pages, vsg->pages,
> >> > + (vsg->direction == DMA_FROM_DEVICE) ? FOLL_WRITE : 0);
> >
> > Umm... Why not
> > ret = get_user_pages_fast((unsigned long)xfer->mem_addr,
> > vsg->num_pages,
> > vsg->direction == DMA_FROM_DEVICE,
> > vsg->pages);
> >
> > IOW, do you really need a warranty that ->mmap_sem will be grabbed and
> > released?
>
> Daniel will be better placed to answer in this specific case, but more
> generally is there any reason why we can't just use
> get_user_pages_fast() in all such cases? These patches were simply a
> mechanical/cautious replacement for code that is more or less exactly
> equivalent but if this would make sense perhaps it'd be worth using
> gup_fast() where possible?

I have no idea. drm/via is unmaintained, it's a dri1 racy driver with
problems probably everywhere, and I'm not sure we even have someone left
who cares (there's an out-of-tree kms conversion of via, but it's stuck
since years).

In short, it's the drm dungeons and the only reason I merge patches is to
give people an easy target for test driving the patch submission process
to dri-devel. And to avoid drm being a blocker for tree-wide refactorings.
Otherwise 0 reasons to change anything here.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch