On Sun, May 05, 2019 at 10:36:36AM +0300, Gal Pressman wrote: > On 03-May-19 15:21, Jason Gunthorpe wrote: > > On Fri, May 03, 2019 at 12:32:58PM +0300, Gal Pressman wrote: > >> On 02-May-19 20:47, Jason Gunthorpe wrote: > >>> On Thu, May 02, 2019 at 11:46:00AM +0300, Leon Romanovsky wrote: > >>>> On Thu, May 02, 2019 at 11:28:40AM +0300, Gal Pressman wrote: > >>>>> On 01-May-19 19:40, Jason Gunthorpe wrote: > >>>>>> On Wed, May 01, 2019 at 01:48:22PM +0300, Gal Pressman wrote: > >>>>>> > >>>>>>> +int efa_mmap(struct ib_ucontext *ibucontext, > >>>>>>> + struct vm_area_struct *vma) > >>>>>>> +{ > >>>>>>> + struct efa_ucontext *ucontext = to_eucontext(ibucontext); > >>>>>>> + struct efa_dev *dev = to_edev(ibucontext->device); > >>>>>>> + u64 length = vma->vm_end - vma->vm_start; > >>>>>>> + u64 key = vma->vm_pgoff << PAGE_SHIFT; > >>>>>>> + struct efa_mmap_entry *entry; > >>>>>>> + > >>>>>>> + ibdev_dbg(&dev->ibdev, > >>>>>>> + "start %#lx, end %#lx, length = %#llx, key = %#llx\n", > >>>>>>> + vma->vm_start, vma->vm_end, length, key); > >>>>>>> + > >>>>>>> + if (length % PAGE_SIZE != 0 || !(vma->vm_flags & VM_SHARED)) { > >>>>>>> + ibdev_dbg(&dev->ibdev, > >>>>>>> + "length[%#llx] is not page size aligned[%#lx] or VM_SHARED is not set [%#lx]\n", > >>>>>>> + length, PAGE_SIZE, vma->vm_flags); > >>>>>>> + return -EINVAL; > >>>>>>> + } > >>>>>>> + > >>>>>>> + if (vma->vm_flags & VM_EXEC) { > >>>>>>> + ibdev_dbg(&dev->ibdev, "Mapping executable pages is not permitted\n"); > >>>>>>> + return -EPERM; > >>>>>>> + } > >>>>>>> + vma->vm_flags &= ~VM_MAYEXEC; > >>>>>> > >>>>>> Also we dropped the MAYEXEC stuff > >>>>> > >>>>> Latest commit that had any MAYEXEC changes is 4eb6ab13b991 ("RDMA: Remove > >>>>> rdma_user_mmap_page"), where MAYEXEC is added not removed. > >>>>> Am I missing a followup patch? > >>>> > >>>> I'm not aware of any. > >>> > >>> It was a mistake it wasn't removed from that commit too. > >> > >> Can you explain please? > > > > We dropped all the MAYEXEC stuff and that case got missed - it should > > have been dropped too > > Why is MAYEXEC not needed? There was a big thread about it.. It currently breaks userspace that uses GNU_STACK=RWX Jason