Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Wed, Jul 17, 2019 at 1:58 PM Jason Gunthorpe wrote: > > On Wed, Jul 17, 2019 at 01:44:07PM +0200, Andrey Konovalov wrote: > > On Tue, Jul 16, 2019 at 2:06 PM Jason Gunthorpe wrote: > > > > > > On Tue, Jul 16, 2019 at 12:42:07PM +0200, Andrey Konovalov wrote: > > > > On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > > > > > > > > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > > > > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > > > > > wrote: > > > > > > > > > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > > > > > This patch is a part of a series that extends kernel ABI to > > > > > > > > allow to pass > > > > > > > > tagged user pointers (with the top byte set to something else > > > > > > > > other than > > > > > > > > 0x00) as syscall arguments. > > > > > > > > > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, > > > > > > > > which can > > > > > > > > only by done with untagged pointers. > > > > > > > > > > > > > > > > Untag user pointers in this function. > > > > > > > > > > > > > > > > Signed-off-by: Andrey Konovalov > > > > > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > > > > > > > Acked-by: Catalin Marinas > > > > > > > > > > > > > > This patch also needs an ack from the infiniband maintainers > > > > > > > (Jason). > > > > > > > > > > > > Hi Jason, > > > > > > > > > > > > Could you take a look and give your acked-by? > > > > > > > > > > Oh, I think I did this a long time ago. Still looks OK. > > > > > > > > Hm, maybe that was we who lost it. Thanks! > > > > > > > > > You will send it? > > > > > > > > I will resend the patchset once the merge window is closed, if that's > > > > what you mean. > > > > > > No.. I mean who send it to Linus's tree? ie do you want me to take > > > this patch into rdma? > > > > I think the plan was to merge the whole series through the mm tree. > > But I don't mind if you want to take this patch into your tree. It's > > just that this patch doesn't make much sense without the rest of the > > series. > > Generally I prefer if subsystem changes stay in subsystem trees. If > the patch is good standalone, and the untag API has already been > merged, this is a better strategy. OK, feel free to take this into your tree, this works for me. > > Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Wed, Jul 17, 2019 at 01:44:07PM +0200, Andrey Konovalov wrote: > On Tue, Jul 16, 2019 at 2:06 PM Jason Gunthorpe wrote: > > > > On Tue, Jul 16, 2019 at 12:42:07PM +0200, Andrey Konovalov wrote: > > > On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > > > > > > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > > > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > > > > wrote: > > > > > > > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > > > > This patch is a part of a series that extends kernel ABI to allow > > > > > > > to pass > > > > > > > tagged user pointers (with the top byte set to something else > > > > > > > other than > > > > > > > 0x00) as syscall arguments. > > > > > > > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, > > > > > > > which can > > > > > > > only by done with untagged pointers. > > > > > > > > > > > > > > Untag user pointers in this function. > > > > > > > > > > > > > > Signed-off-by: Andrey Konovalov > > > > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > > > > > Acked-by: Catalin Marinas > > > > > > > > > > > > This patch also needs an ack from the infiniband maintainers > > > > > > (Jason). > > > > > > > > > > Hi Jason, > > > > > > > > > > Could you take a look and give your acked-by? > > > > > > > > Oh, I think I did this a long time ago. Still looks OK. > > > > > > Hm, maybe that was we who lost it. Thanks! > > > > > > > You will send it? > > > > > > I will resend the patchset once the merge window is closed, if that's > > > what you mean. > > > > No.. I mean who send it to Linus's tree? ie do you want me to take > > this patch into rdma? > > I think the plan was to merge the whole series through the mm tree. > But I don't mind if you want to take this patch into your tree. It's > just that this patch doesn't make much sense without the rest of the > series. Generally I prefer if subsystem changes stay in subsystem trees. If the patch is good standalone, and the untag API has already been merged, this is a better strategy. Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Tue, Jul 16, 2019 at 2:06 PM Jason Gunthorpe wrote: > > On Tue, Jul 16, 2019 at 12:42:07PM +0200, Andrey Konovalov wrote: > > On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > > > > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > > > wrote: > > > > > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > > > This patch is a part of a series that extends kernel ABI to allow > > > > > > to pass > > > > > > tagged user pointers (with the top byte set to something else other > > > > > > than > > > > > > 0x00) as syscall arguments. > > > > > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, > > > > > > which can > > > > > > only by done with untagged pointers. > > > > > > > > > > > > Untag user pointers in this function. > > > > > > > > > > > > Signed-off-by: Andrey Konovalov > > > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > > > Acked-by: Catalin Marinas > > > > > > > > > > This patch also needs an ack from the infiniband maintainers (Jason). > > > > > > > > Hi Jason, > > > > > > > > Could you take a look and give your acked-by? > > > > > > Oh, I think I did this a long time ago. Still looks OK. > > > > Hm, maybe that was we who lost it. Thanks! > > > > > You will send it? > > > > I will resend the patchset once the merge window is closed, if that's > > what you mean. > > No.. I mean who send it to Linus's tree? ie do you want me to take > this patch into rdma? I think the plan was to merge the whole series through the mm tree. But I don't mind if you want to take this patch into your tree. It's just that this patch doesn't make much sense without the rest of the series. > > Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Tue, Jul 16, 2019 at 2:06 PM Jason Gunthorpe wrote: > > On Tue, Jul 16, 2019 at 12:42:07PM +0200, Andrey Konovalov wrote: > > On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > > > > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > > > wrote: > > > > > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > > > This patch is a part of a series that extends kernel ABI to allow > > > > > > to pass > > > > > > tagged user pointers (with the top byte set to something else other > > > > > > than > > > > > > 0x00) as syscall arguments. > > > > > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, > > > > > > which can > > > > > > only by done with untagged pointers. > > > > > > > > > > > > Untag user pointers in this function. > > > > > > > > > > > > Signed-off-by: Andrey Konovalov > > > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > > > Acked-by: Catalin Marinas > > > > > > > > > > This patch also needs an ack from the infiniband maintainers (Jason). > > > > > > > > Hi Jason, > > > > > > > > Could you take a look and give your acked-by? > > > > > > Oh, I think I did this a long time ago. Still looks OK. > > > > Hm, maybe that was we who lost it. Thanks! > > > > > You will send it? > > > > I will resend the patchset once the merge window is closed, if that's > > what you mean. > > No.. I mean who send it to Linus's tree? ie do you want me to take > this patch into rdma? > > Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Tue, Jul 16, 2019 at 12:42:07PM +0200, Andrey Konovalov wrote: > On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > > wrote: > > > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > > This patch is a part of a series that extends kernel ABI to allow to > > > > > pass > > > > > tagged user pointers (with the top byte set to something else other > > > > > than > > > > > 0x00) as syscall arguments. > > > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which > > > > > can > > > > > only by done with untagged pointers. > > > > > > > > > > Untag user pointers in this function. > > > > > > > > > > Signed-off-by: Andrey Konovalov > > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > > > Acked-by: Catalin Marinas > > > > > > > > This patch also needs an ack from the infiniband maintainers (Jason). > > > > > > Hi Jason, > > > > > > Could you take a look and give your acked-by? > > > > Oh, I think I did this a long time ago. Still looks OK. > > Hm, maybe that was we who lost it. Thanks! > > > You will send it? > > I will resend the patchset once the merge window is closed, if that's > what you mean. No.. I mean who send it to Linus's tree? ie do you want me to take this patch into rdma? Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Mon, Jul 15, 2019 at 8:05 PM Jason Gunthorpe wrote: > > On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > > wrote: > > > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > > This patch is a part of a series that extends kernel ABI to allow to > > > > pass > > > > tagged user pointers (with the top byte set to something else other than > > > > 0x00) as syscall arguments. > > > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which > > > > can > > > > only by done with untagged pointers. > > > > > > > > Untag user pointers in this function. > > > > > > > > Signed-off-by: Andrey Konovalov > > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > > > Acked-by: Catalin Marinas > > > > > > This patch also needs an ack from the infiniband maintainers (Jason). > > > > Hi Jason, > > > > Could you take a look and give your acked-by? > > Oh, I think I did this a long time ago. Still looks OK. Hm, maybe that was we who lost it. Thanks! > You will send it? I will resend the patchset once the merge window is closed, if that's what you mean. > > Reviewed-by: Jason Gunthorpe > > Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Mon, Jul 15, 2019 at 06:01:29PM +0200, Andrey Konovalov wrote: > On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas > wrote: > > > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > > This patch is a part of a series that extends kernel ABI to allow to pass > > > tagged user pointers (with the top byte set to something else other than > > > 0x00) as syscall arguments. > > > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which can > > > only by done with untagged pointers. > > > > > > Untag user pointers in this function. > > > > > > Signed-off-by: Andrey Konovalov > > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > > 1 file changed, 4 insertions(+), 3 deletions(-) > > > > Acked-by: Catalin Marinas > > > > This patch also needs an ack from the infiniband maintainers (Jason). > > Hi Jason, > > Could you take a look and give your acked-by? Oh, I think I did this a long time ago. Still looks OK. You will send it? Reviewed-by: Jason Gunthorpe Jason
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Mon, Jun 24, 2019 at 7:40 PM Catalin Marinas wrote: > > On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > > This patch is a part of a series that extends kernel ABI to allow to pass > > tagged user pointers (with the top byte set to something else other than > > 0x00) as syscall arguments. > > > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which can > > only by done with untagged pointers. > > > > Untag user pointers in this function. > > > > Signed-off-by: Andrey Konovalov > > --- > > drivers/infiniband/hw/mlx4/mr.c | 7 --- > > 1 file changed, 4 insertions(+), 3 deletions(-) > > Acked-by: Catalin Marinas > > This patch also needs an ack from the infiniband maintainers (Jason). Hi Jason, Could you take a look and give your acked-by? Thanks! > > -- > Catalin
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > This patch is a part of a series that extends kernel ABI to allow to pass > tagged user pointers (with the top byte set to something else other than > 0x00) as syscall arguments. > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which can > only by done with untagged pointers. > > Untag user pointers in this function. > > Signed-off-by: Andrey Konovalov > --- > drivers/infiniband/hw/mlx4/mr.c | 7 --- > 1 file changed, 4 insertions(+), 3 deletions(-) Acked-by: Catalin Marinas This patch also needs an ack from the infiniband maintainers (Jason). -- Catalin
Re: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr
On Mon, Jun 24, 2019 at 04:32:56PM +0200, Andrey Konovalov wrote: > This patch is a part of a series that extends kernel ABI to allow to pass > tagged user pointers (with the top byte set to something else other than > 0x00) as syscall arguments. > > mlx4_get_umem_mr() uses provided user pointers for vma lookups, which can > only by done with untagged pointers. > > Untag user pointers in this function. > > Signed-off-by: Andrey Konovalov Reviewed-by: Kees Cook -Kees > --- > drivers/infiniband/hw/mlx4/mr.c | 7 --- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c > index 355205a28544..13d9f917f249 100644 > --- a/drivers/infiniband/hw/mlx4/mr.c > +++ b/drivers/infiniband/hw/mlx4/mr.c > @@ -378,6 +378,7 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_udata > *udata, u64 start, >* again >*/ > if (!ib_access_writable(access_flags)) { > + unsigned long untagged_start = untagged_addr(start); > struct vm_area_struct *vma; > > down_read(>mm->mmap_sem); > @@ -386,9 +387,9 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_udata > *udata, u64 start, >* cover the memory, but for now it requires a single vma to >* entirely cover the MR to support RO mappings. >*/ > - vma = find_vma(current->mm, start); > - if (vma && vma->vm_end >= start + length && > - vma->vm_start <= start) { > + vma = find_vma(current->mm, untagged_start); > + if (vma && vma->vm_end >= untagged_start + length && > + vma->vm_start <= untagged_start) { > if (vma->vm_flags & VM_WRITE) > access_flags |= IB_ACCESS_LOCAL_WRITE; > } else { > -- > 2.22.0.410.gd8fdbe21b5-goog > -- Kees Cook