lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 24 Jun 2019 16:32:56 +0200 From: Andrey Konovalov <andreyknvl@...gle.com> To: linux-arm-kernel@...ts.infradead.org, linux-mm@...ck.org, linux-kernel@...r.kernel.org, amd-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org, linux-rdma@...r.kernel.org, linux-media@...r.kernel.org, kvm@...r.kernel.org, linux-kselftest@...r.kernel.org Cc: Catalin Marinas <catalin.marinas@....com>, Vincenzo Frascino <vincenzo.frascino@....com>, Will Deacon <will.deacon@....com>, Mark Rutland <mark.rutland@....com>, Andrew Morton <akpm@...ux-foundation.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Kees Cook <keescook@...omium.org>, Yishai Hadas <yishaih@...lanox.com>, Felix Kuehling <Felix.Kuehling@....com>, Alexander Deucher <Alexander.Deucher@....com>, Christian Koenig <Christian.Koenig@....com>, Mauro Carvalho Chehab <mchehab@...nel.org>, Jens Wiklander <jens.wiklander@...aro.org>, Alex Williamson <alex.williamson@...hat.com>, Leon Romanovsky <leon@...nel.org>, Luc Van Oostenryck <luc.vanoostenryck@...il.com>, Dave Martin <Dave.Martin@....com>, Khalid Aziz <khalid.aziz@...cle.com>, enh <enh@...gle.com>, Jason Gunthorpe <jgg@...pe.ca>, Christoph Hellwig <hch@...radead.org>, Dmitry Vyukov <dvyukov@...gle.com>, Kostya Serebryany <kcc@...gle.com>, Evgeniy Stepanov <eugenis@...gle.com>, Lee Smith <Lee.Smith@....com>, Ramana Radhakrishnan <Ramana.Radhakrishnan@....com>, Jacob Bramley <Jacob.Bramley@....com>, Ruben Ayrapetyan <Ruben.Ayrapetyan@....com>, Robin Murphy <robin.murphy@....com>, Kevin Brodsky <kevin.brodsky@....com>, Szabolcs Nagy <Szabolcs.Nagy@....com>, Andrey Konovalov <andreyknvl@...gle.com> Subject: [PATCH v18 11/15] IB/mlx4: untag user pointers in mlx4_get_umem_mr 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 <andreyknvl@...gle.com> --- 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(¤t->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
Powered by blists - more mailing lists