Re: [PATCH v2 08/17] s390/pci: Remove races against pte updates

From: Daniel Vetter
Date: Thu Oct 22 2020 - 03:39:50 EST


On Wed, Oct 21, 2020 at 09:55:57AM +0200, Niklas Schnelle wrote:
> Hi Daniel,
>
> friendly ping. I haven't seen a new version of this patch series,
> as I said I think your change for s390/pci is generally useful so
> I'm curious, are you planning on sending a new version soon?
> If you want you can also just sent this patch with the last few
> nitpicks (primarily the mail address) fixed and I'll happily apply.

(I think this was stuck somewhere in moderation, only showed up just now)

I was waiting for the testing result for the habana driver from Oded, but
I guess Oded was waiting for v3. Hence the delay.

Cheers, Daniel

>
> Best regards,
> Niklas Schnelle
>
> On 10/12/20 4:19 PM, Daniel Vetter wrote:
> > On Mon, Oct 12, 2020 at 04:03:28PM +0200, Niklas Schnelle wrote:
> ... snip ....
> >>> Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> >>> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
> >>> Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> >>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> >>> Cc: John Hubbard <jhubbard@xxxxxxxxxx>
> >>> Cc: Jérôme Glisse <jglisse@xxxxxxxxxx>
> >>> Cc: Jan Kara <jack@xxxxxxx>
> >>> Cc: Dan Williams <dan.j.williams@xxxxxxxxx>
> >>
> >> The above Cc: line for Dan Williams is a duplicate
> >>
> >>> Cc: linux-mm@xxxxxxxxx
> >>> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> >>> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx
> >>> Cc: linux-media@xxxxxxxxxxxxxxx
> >>> Cc: Niklas Schnelle <schnelle@xxxxxxxxxxxxx>
> >>> Cc: Gerald Schaefer <gerald.schaefer@xxxxxxxxxxxxx>
> >>> Cc: linux-s390@xxxxxxxxxxxxxxx
> >>> --
> >>> v2: Move VM_IO | VM_PFNMAP checks around so they keep returning EINVAL
> >>> like before (Gerard)
> >>
> >> I think the above should go before the CC/Signed-off/Reviewev block.
> >
> > This is a per-subsystem bikeshed :-) drivers/gpu definitely wants it
> > above, but most core subsystems want it below. I'll move it.
> >
> >>> ---
> >>> arch/s390/pci/pci_mmio.c | 98 +++++++++++++++++++++++-----------------
> >>> 1 file changed, 57 insertions(+), 41 deletions(-)
> >>>
> >>> diff --git a/arch/s390/pci/pci_mmio.c b/arch/s390/pci/pci_mmio.c
> >>> index 401cf670a243..1a6adbc68ee8 100644
> >>> --- a/arch/s390/pci/pci_mmio.c
> >>> +++ b/arch/s390/pci/pci_mmio.c
> >>> @@ -119,33 +119,15 @@ static inline int __memcpy_toio_inuser(void __iomem *dst,
> >>> return rc;
> >>> }
> >>>
> >>> -static long get_pfn(unsigned long user_addr, unsigned long access,
> >>> - unsigned long *pfn)
> >>> -{
> >>> - struct vm_area_struct *vma;
> >>> - long ret;
> >>> -
> >>> - mmap_read_lock(current->mm);
> >>> - ret = -EINVAL;
> >>> - vma = find_vma(current->mm, user_addr);
> >>> - if (!vma)
> >>> - goto out;
> >>> - ret = -EACCES;
> >>> - if (!(vma->vm_flags & access))
> >>> - goto out;
> >>> - ret = follow_pfn(vma, user_addr, pfn);
> >>> -out:
> >>> - mmap_read_unlock(current->mm);
> >>> - return ret;
> >>> -}
> >>> -
> >>> SYSCALL_DEFINE3(s390_pci_mmio_write, unsigned long, mmio_addr,
> >>> const void __user *, user_buffer, size_t, length)
> >>> {
> >>> u8 local_buf[64];
> >>> void __iomem *io_addr;
> >>> void *buf;
> >>> - unsigned long pfn;
> >>> + struct vm_area_struct *vma;
> >>> + pte_t *ptep;
> >>> + spinlock_t *ptl;
> >>
> >> With checkpatch.pl --strict the above yields a complained
> >> "CHECK: spinlock_t definition without comment" but I think
> >> that's really okay since your commit description is very clear.
> >> Same oin line 277.
> >
> > I think this is a falls positive, checkpatch doesn't realize that
> > SYSCALL_DEFINE3 is a function, not a structure. And in a structure I'd
> > have added the kerneldoc or comment.
> >
> > I'll fix up all the nits you've found for the next round. Thanks for
> > taking a look.
> > -Daniel
> >
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch