On 05-May-19 15:37, Jason Gunthorpe wrote: > 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 Thanks, I can send a fix to mlx5 and efa but I need more information for a proper commit message. Do you have a link to this thread?