On Wed, Sep 4, 2019 at 6:22 PM Cristian Marussi
wrote:
>
> Hi Andrey !
>
> On 04/09/2019 15:52, Andrey Konovalov wrote:
> > On Fri, Aug 23, 2019 at 7:49 PM Cristian Marussi
> > wrote:
> >>
> >>
> >> Hi
> >>
> >> On 23/08/2019
On Fri, Aug 23, 2019 at 7:49 PM Cristian Marussi
wrote:
>
>
> Hi
>
> On 23/08/2019 18:16, Andrey Konovalov wrote:
> > On Fri, Aug 23, 2019 at 3:56 PM Cristian Marussi
> > wrote:
> >>
> >> Hi Andrey
> >>
> >> On 24/06/2019 15:33,
On Fri, Aug 23, 2019 at 3:56 PM Cristian Marussi
wrote:
>
> Hi Andrey
>
> On 24/06/2019 15:33, 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 t
On Mon, Aug 19, 2019 at 5:39 PM Will Deacon wrote:
>
> On Mon, Aug 19, 2019 at 05:16:37PM +0200, Andrey Konovalov wrote:
> > On Mon, Aug 19, 2019 at 5:03 PM Will Deacon wrote:
> > >
> > > On Mon, Aug 19, 2019 at 03:14:42PM +0200, Andrey Konovalov wrote:
&g
On Mon, Aug 19, 2019 at 5:03 PM Will Deacon wrote:
>
> On Mon, Aug 19, 2019 at 03:14:42PM +0200, Andrey Konovalov wrote:
> > Fix tagged_ptr not being initialized when TBI is not enabled.
> >
> > Dan Carpenter
>
> Guessing this was Reported-by, or has Dan introduced
On Mon, Aug 19, 2019 at 3:14 PM Andrey Konovalov wrote:
>
> Fix tagged_ptr not being initialized when TBI is not enabled.
>
> Dan Carpenter
> Signed-off-by: Andrey Konovalov
> ---
> tools/testing/selftests/arm64/tags_test.c | 8 +---
> 1 file changed, 5 in
Fix tagged_ptr not being initialized when TBI is not enabled.
Dan Carpenter
Signed-off-by: Andrey Konovalov
---
tools/testing/selftests/arm64/tags_test.c | 8 +---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/tools/testing/selftests/arm64/tags_test.c
b/tools/testing
On Tue, Aug 6, 2019 at 7:13 PM Will Deacon wrote:
>
> On Wed, Jul 24, 2019 at 03:20:59PM +0100, Will Deacon wrote:
> > On Wed, Jul 24, 2019 at 04:16:49PM +0200, Andrey Konovalov wrote:
> > > On Wed, Jul 24, 2019 at 4:02 PM Will Deacon wrote:
> > > > On Tue,
On Thu, Aug 1, 2019 at 2:11 PM Kevin Brodsky wrote:
>
> On 31/07/2019 17:50, Dave Hansen wrote:
> > On 7/23/19 10:58 AM, Andrey Konovalov wrote:
> >> The mmap and mremap (only new_addr) syscalls do not currently accept
> >> tagged addresses. Architectures may int
On Wed, Jul 24, 2019 at 9:25 PM Jason Gunthorpe wrote:
>
> On Tue, Jul 23, 2019 at 07:58:48PM +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 o
On Wed, Jul 24, 2019 at 4:02 PM Will Deacon wrote:
>
> Hi Andrey,
>
> On Tue, Jul 23, 2019 at 08:03:29PM +0200, Andrey Konovalov wrote:
> > On Tue, Jul 23, 2019 at 7:59 PM Andrey Konovalov
> > wrote:
> > >
> > > === Overview
> > >
> > &
On Tue, Jul 23, 2019 at 7:59 PM Andrey Konovalov wrote:
>
> === Overview
>
> arm64 has a feature called Top Byte Ignore, which allows to embed pointer
> tags into the top byte of each pointer. Userspace programs (such as
> HWASan, a memory debugging tool [1]) might use thi
.
The PR_SET_TAGGED_ADDR_CTRL will be expanded in the future to handle
MTE-specific settings like imprecise vs precise exceptions.
Reviewed-by: Kees Cook
Signed-off-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/Kconfig | 9
arch/arm64/include/asm/processor.h | 8 +++
arch
Marinas
Signed-off-by: Andrey Konovalov
---
mm/gup.c | 4
1 file changed, 4 insertions(+)
diff --git a/mm/gup.c b/mm/gup.c
index 98f13ab37bac..1c1c97ec63df 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -799,6 +799,8 @@ static long __get_user_pages(struct task_struct *tsk,
struct mm_struct *mm
of locating and changing
all callers of this function, perform untagging in it.
Reviewed-by: Khalid Aziz
Reviewed-by: Vincenzo Frascino
Acked-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
mm/frame_vector.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm
pointers in this function.
Reviewed-by: Eric Auger
Reviewed-by: Vincenzo Frascino
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
drivers/vfio/vfio_iommu_type1.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/vfio/vfio_iommu_type1.c b
s (via __check_mem_type()), which can only by
done with untagged pointers.
Untag user pointers in this function.
Reviewed-by: Kees Cook
Acked-by: Jens Wiklander
Signed-off-by: Andrey Konovalov
---
drivers/tee/tee_shm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tee/tee_shm.c b/drive
pointers in this function.
Reviewed-by: Jason Gunthorpe
Acked-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
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
Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
mm/madvise.c | 2 ++
mm/mempolicy.c | 3 +++
mm/migrate.c | 2 +-
mm/mincore.c | 2 ++
mm/mlock.c | 4
mm/mprotect.c | 2 ++
mm/mremap.c| 7 +++
mm/msync.c | 2 ++
8 files changed, 23 insertions(+), 1
pointers in validate_range().
Reviewed-by: Mike Rapoport
Reviewed-by: Vincenzo Frascino
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
fs/userfaultfd.c | 22 --
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/fs
-by: Vincenzo Frascino
Reviewed-by: Khalid Aziz
Acked-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
lib/strncpy_from_user.c | 3 ++-
lib/strnlen_user.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/strncpy_from_user.c b/lib
in radeon_gem_userptr_ioctl().
Reviewed-by: Khalid Aziz
Reviewed-by: Kees Cook
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/radeon/radeon_gem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c
b/drivers/gpu
-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
fs/namespace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/namespace.c b/fs/namespace.c
index 6464ea4acba9..b32eb26af8bf 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2994,7 +2994,7 @@ void
.
Untag the pointers in this function.
Reviewed-by: Khalid Aziz
Reviewed-by: Kees Cook
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Andrey Konovalov
---
drivers/media/v4l2-core/videobuf-dma-contig.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/media
accepting tagged
user pointers the test fails with EFAULT.
Reviewed-by: Catalin Marinas
Acked-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
tools/testing/selftests/arm64/.gitignore | 1 +
tools/testing/selftests/arm64/Makefile| 11 +++
.../testing/selftests/arm64
makes sure that an
untagged pointer is passed to amdgpu_ttm_tt_get_user_pages(), which uses
it for vma lookups.
Reviewed-by: Kees Cook
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
drivers/gpu/drm
untags the pointers to perform the
checks, but then passes them as is into the kernel internals.
Reviewed-by: Vincenzo Frascino
Reviewed-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/include/asm/uaccess.h | 10 +++---
1 file changed, 7 insertions
ved excessive untagging in gup.c.
- Removed untagging pointers returned from __uaccess_mask_ptr.
Changes in v1:
- Rebased onto 4.17-rc1.
Changes in RFC v2:
- Added "#ifndef untagged_addr..." fallback in linux/uaccess.h instead of
defining it for each arch individually.
- Updated Docume
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 Wed, Jul 17, 2019 at 1:09 PM Mike Rapoport wrote:
>
> On Mon, Jun 24, 2019 at 06:51:21PM +0100, Catalin Marinas wrote:
> > On Mon, Jun 24, 2019 at 04:32:53PM +0200, Andrey Konovalov wrote:
> > > This patch is a part of a series that extends kernel ABI to allow to p
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 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, 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
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 o
On Mon, Jun 24, 2019 at 7:51 PM Catalin Marinas wrote:
>
> On Mon, Jun 24, 2019 at 04:32:53PM +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 o
On Mon, Jun 24, 2019 at 7:50 PM Catalin Marinas wrote:
>
> On Mon, Jun 24, 2019 at 04:32:52PM +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 o
-by: Vincenzo Frascino
Reviewed-by: Khalid Aziz
Acked-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
lib/strncpy_from_user.c | 3 ++-
lib/strnlen_user.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/strncpy_from_user.c b/lib
makes sure that an
untagged pointer is passed to amdgpu_ttm_tt_get_user_pages(), which uses
it for vma lookups.
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
in radeon_gem_userptr_ioctl().
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/radeon/radeon_gem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c
b/drivers/gpu/drm/radeon/radeon_gem.c
index 44617dec8183
accepting tagged
user pointers the test fails with EFAULT.
Signed-off-by: Andrey Konovalov
---
tools/testing/selftests/arm64/.gitignore | 1 +
tools/testing/selftests/arm64/Makefile| 11 +++
.../testing/selftests/arm64/run_tags_test.sh | 12
tools/testing/selftests
.
Untag the pointers in this function.
Reviewed-by: Khalid Aziz
Reviewed-by: Kees Cook
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Andrey Konovalov
---
drivers/media/v4l2-core/videobuf-dma-contig.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/media
pointers in this function.
Signed-off-by: Andrey Konovalov
---
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
pointers in this function.
Reviewed-by: Eric Auger
Reviewed-by: Vincenzo Frascino
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
drivers/vfio/vfio_iommu_type1.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/vfio/vfio_iommu_type1.c b
s (via __check_mem_type()), which can only by
done with untagged pointers.
Untag user pointers in this function.
Reviewed-by: Kees Cook
Acked-by: Jens Wiklander
Signed-off-by: Andrey Konovalov
---
drivers/tee/tee_shm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tee/tee_shm.c b/drive
of locating and changing
all callers of this function, perform untagging in it.
Reviewed-by: Khalid Aziz
Reviewed-by: Vincenzo Frascino
Acked-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
mm/frame_vector.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm
pointers in validate_range().
Reviewed-by: Vincenzo Frascino
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
fs/userfaultfd.c | 22 --
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
fs/namespace.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/namespace.c b/fs/namespace.c
index 7660c2749c96..ec78f7223917 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2994,7 +2994,7 @@ void
Marinas
Signed-off-by: Andrey Konovalov
---
mm/gup.c | 4
1 file changed, 4 insertions(+)
diff --git a/mm/gup.c b/mm/gup.c
index ddde097cf9e4..c37df3d455a2 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -802,6 +802,8 @@ static long __get_user_pages(struct task_struct *tsk,
struct mm_struct *mm
.
The PR_SET_TAGGED_ADDR_CTRL will be expanded in the future to handle
MTE-specific settings like imprecise vs precise exceptions.
Signed-off-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/Kconfig | 9
arch/arm64/include/asm/processor.h | 8
arch/arm64/include/asm
untags the pointers to perform the
checks, but then passes them as is into the kernel internals.
Reviewed-by: Vincenzo Frascino
Reviewed-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/include/asm/uaccess.h | 10 +++---
1 file changed, 7 insertions
ointers returned from __uaccess_mask_ptr.
Changes in v1:
- Rebased onto 4.17-rc1.
Changes in RFC v2:
- Added "#ifndef untagged_addr..." fallback in linux/uaccess.h instead of
defining it for each arch individually.
- Updated Documentation/arm64/tagged-pointers.txt.
- Dropped &q
On Wed, Jun 19, 2019 at 6:46 PM Khalid Aziz wrote:
>
> On 6/19/19 9:55 AM, Khalid Aziz wrote:
> > On 6/12/19 5:43 AM, Andrey Konovalov wrote:
> >> This patch is a part of a series that extends arm64 kernel ABI to allow to
> >> pass tagged user pointers (with the
On Wed, Jun 12, 2019 at 5:01 PM Catalin Marinas wrote:
>
> On Wed, Jun 12, 2019 at 01:30:36PM +0100, Szabolcs Nagy wrote:
> > On 12/06/2019 12:43, Andrey Konovalov wrote:
> > > --- /dev/null
> > > +++ b/tools/testing/selftests/arm64/tags_lib.c
> > >
On Wed, Jun 12, 2019 at 1:43 PM Andrey Konovalov wrote:
>
> From: Catalin Marinas
>
> It is not desirable to relax the ABI to allow tagged user addresses into
> the kernel indiscriminately. This patch introduces a prctl() interface
> for enabling or disabling the tagged ABI wi
, mincore, mlock, mlock2, mprotect,
mremap, msync, munlock, move_pages.
The mmap and mremap syscalls do not currently accept tagged addresses.
Architectures may interpret the tag as a background colour for the
corresponding vma.
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey
, the size is calculated to not
allow the exact_copy_from_user() call to cross TASK_SIZE boundary.
However if the address is tagged, then the size will be calculated
incorrectly.
Untag the address before subtracting.
Reviewed-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
. This also makes sure that an
untagged pointer is passed to amdgpu_ttm_tt_get_user_pages(), which uses
it for vma lookups.
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
drivers/gpu/drm/amd/amdgpu
the kernel accepting tagged
user pointers the test fails with EFAULT.
Co-developed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
tools/testing/selftests/arm64/.gitignore | 2 +
tools/testing/selftests/arm64/Makefile| 22 +++
.../testing/selftests/arm64/run_tags_test.sh
s (via __check_mem_type()), which can only by
done with untagged pointers.
Untag user pointers in this function.
Reviewed-by: Kees Cook
Acked-by: Jens Wiklander
Signed-off-by: Andrey Konovalov
---
drivers/tee/tee_shm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tee/tee_shm.c b/drive
user pointers in this function.
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
drivers/vfio/vfio_iommu_type1.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 3ddc375e7063
user pointers in validate_range().
Reviewed-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
fs/userfaultfd.c | 22 --
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index 3b30301c90ec
pointers.
Untag the pointers in this function.
Reviewed-by: Kees Cook
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Andrey Konovalov
---
drivers/media/v4l2-core/videobuf-dma-contig.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/media/v4l2-core/videobuf-dma
in radeon_gem_userptr_ioctl().
Suggested-by: Felix Kuehling
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/radeon/radeon_gem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c
b/drivers/gpu/drm/radeon/radeon_gem.c
index 44617dec8183
.
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(-)
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index 355205a28544..13d9f917f249 100644
--- a/drivers
sed onto 81e97f013 (4.18-rc1+).
Changes in v3:
- Rebased onto e5c51f30 (4.17-rc6+).
- Added linux-arch@ to the list of recipients.
Changes in v2:
- Rebased onto 2d618bdf (4.17-rc3+).
- Removed excessive untagging in gup.c.
- Removed untagging pointers returned from __uaccess_mask_ptr.
Changes in v
From: Catalin Marinas
It is not desirable to relax the ABI to allow tagged user addresses into
the kernel indiscriminately. This patch introduces a prctl() interface
for enabling or disabling the tagged ABI with a global sysctl control
for preventing applications from enabling the relaxed ABI
-by: Khalid Aziz
Acked-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
lib/strncpy_from_user.c | 3 ++-
lib/strnlen_user.c | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
index 023ba9f3b99f
of locating and changing
all callers of this function, perform untagging in it.
Acked-by: Catalin Marinas
Reviewed-by: Kees Cook
Signed-off-by: Andrey Konovalov
---
mm/frame_vector.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/mm/frame_vector.c b/mm/frame_vector.c
index c64dca6e27c2
get_user_pages, that is used
by the futex syscall). Since a user can provided tagged addresses, we need
to handle this case.
Add untagging to gup.c functions that use user addresses for vma lookups.
Reviewed-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
mm/gup.c
temporarily untags the pointers to perform the
checks, but then passes them as is into the kernel internals.
Reviewed-by: Kees Cook
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/include/asm/uaccess.h | 10 +++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff
On Tue, Jun 11, 2019 at 4:38 PM Andrey Konovalov wrote:
>
> On Sat, Jun 8, 2019 at 6:02 AM Kees Cook wrote:
> >
> > On Mon, Jun 03, 2019 at 06:55:10PM +0200, Andrey Konovalov wrote:
> > > This patch is a part of a series that extends arm64 kernel ABI to allow to
>
On Tue, Jun 11, 2019 at 7:50 PM Catalin Marinas wrote:
>
> On Tue, Jun 11, 2019 at 07:18:04PM +0200, Andrey Konovalov wrote:
> > On Tue, Jun 11, 2019 at 5:01 PM Catalin Marinas
> > wrote:
> > > static void *tag_ptr(void *ptr)
> > > {
> >
On Tue, Jun 11, 2019 at 7:45 PM Catalin Marinas wrote:
>
> On Tue, Jun 11, 2019 at 05:35:31PM +0200, Andrey Konovalov wrote:
> > On Mon, Jun 10, 2019 at 4:28 PM Catalin Marinas
> > wrote:
> > > On Mon, Jun 03, 2019 at 06:55:07PM +0200, Andrey Konovalov wrote:
&
On Tue, Jun 11, 2019 at 10:18 PM Khalid Aziz wrote:
>
> On 6/3/19 10:55 AM, Andrey Konovalov wrote:
> > This patch is a part of a series that extends arm64 kernel ABI to allow to
> > pass tagged user pointers (with the top byte set to something else other
> > than 0x
On Tue, Jun 11, 2019 at 7:39 PM Catalin Marinas wrote:
>
> On Tue, Jun 11, 2019 at 07:09:46PM +0200, Andrey Konovalov wrote:
> > On Tue, Jun 11, 2019 at 4:57 PM Catalin Marinas
> > wrote:
> > >
> > > On Mon, Jun 10, 2019 at 06:53:27PM +0100, Catalin Marinas
On Tue, Jun 11, 2019 at 5:01 PM Catalin Marinas wrote:
>
> On Mon, Jun 03, 2019 at 06:55:18PM +0200, Andrey Konovalov wrote:
> > This patch is a part of a series that extends arm64 kernel ABI to allow to
> > pass tagged user pointers (with the top byte set to something else o
On Tue, Jun 11, 2019 at 4:57 PM Catalin Marinas wrote:
>
> On Mon, Jun 10, 2019 at 06:53:27PM +0100, Catalin Marinas wrote:
> > On Mon, Jun 03, 2019 at 06:55:04PM +0200, Andrey Konovalov wrote:
> > > diff --git a/arch/arm64/include/asm/uaccess.h
> > > b/ar
On Mon, Jun 10, 2019 at 4:28 PM Catalin Marinas wrote:
>
> On Mon, Jun 03, 2019 at 06:55:07PM +0200, Andrey Konovalov wrote:
> > This patch is a part of a series that extends arm64 kernel ABI to allow to
> > pass tagged user pointers (with the top byte set to something else o
On Sat, Jun 8, 2019 at 6:02 AM Kees Cook wrote:
>
> On Mon, Jun 03, 2019 at 06:55:10PM +0200, Andrey Konovalov wrote:
> > This patch is a part of a series that extends arm64 kernel ABI to allow to
> > pass tagged user pointers (with the top byte set to something else o
On Tue, Jun 4, 2019 at 3:02 PM Jason Gunthorpe wrote:
>
> On Tue, Jun 04, 2019 at 02:45:32PM +0200, Andrey Konovalov wrote:
> > On Tue, Jun 4, 2019 at 2:27 PM Jason Gunthorpe wrote:
> > >
> > > On Tue, Jun 04, 2019 at 02:18:19PM +0200, Andrey Konovalov wrote:
>
On Tue, Jun 4, 2019 at 2:27 PM Jason Gunthorpe wrote:
>
> On Tue, Jun 04, 2019 at 02:18:19PM +0200, Andrey Konovalov wrote:
> > On Mon, Jun 3, 2019 at 7:46 PM Jason Gunthorpe wrote:
> > >
> > > On Mon, Jun 03, 2019 at 06:55:14PM +0200, Andrey Konovalov wrote
On Mon, Jun 3, 2019 at 7:46 PM Jason Gunthorpe wrote:
>
> On Mon, Jun 03, 2019 at 06:55:14PM +0200, Andrey Konovalov wrote:
> > This patch is a part of a series that extends arm64 kernel ABI to allow to
> > pass tagged user pointers (with the top byte set to something else o
On Mon, Jun 3, 2019 at 8:17 PM Khalid Aziz wrote:
>
> On 6/3/19 11:29 AM, Christoph Hellwig wrote:
> > On Mon, Jun 03, 2019 at 11:24:35AM -0600, Khalid Aziz wrote:
> >> On 6/3/19 11:06 AM, Andrey Konovalov wrote:
> >>> On Mon, Jun 3, 2019 at 7:04 PM
On Mon, Jun 3, 2019 at 7:04 PM Khalid Aziz wrote:
>
> On 6/3/19 10:55 AM, Andrey Konovalov wrote:
> > To allow arm64 syscalls to accept tagged pointers from userspace, we must
> > untag them when they are passed to the kernel. Since untagging is done in
> > gen
, mincore, mlock, mlock2, mprotect,
mremap, msync, munlock.
Signed-off-by: Andrey Konovalov
---
mm/madvise.c | 2 ++
mm/mempolicy.c | 3 +++
mm/mincore.c | 2 ++
mm/mlock.c | 4
mm/mprotect.c | 2 ++
mm/mremap.c| 2 ++
mm/msync.c | 2 ++
7 files changed, 17 insertions(+)
diff
user pointers in this function.
Signed-off-by: Andrey Konovalov
---
drivers/vfio/vfio_iommu_type1.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 3ddc375e7063..528e39a1c2dd 100644
--- a/drivers/vfio/vfio_iommu_type1.c
. This also makes sure that an
untagged pointer is passed to amdgpu_ttm_tt_get_user_pages(), which uses
it for vma lookups.
Suggested-by: Kuehling, Felix
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 2 +-
drivers/gpu/drm/amd/amdgpu
user pointers in validate_range().
Signed-off-by: Andrey Konovalov
---
fs/userfaultfd.c | 22 --
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index 3b30301c90ec..24d68c3b5ee2 100644
--- a/fs/userfaultfd.c
+++ b/fs
, the size is calculated to not
allow the exact_copy_from_user() call to cross TASK_SIZE boundary.
However if the address is tagged, then the size will be calculated
incorrectly.
Untag the address before subtracting.
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
fs/namespace.c | 2
pointers.
Untag the pointers in this function.
Acked-by: Mauro Carvalho Chehab
Signed-off-by: Andrey Konovalov
---
drivers/media/v4l2-core/videobuf-dma-contig.c | 9 +
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c
b/drivers
s (via __check_mem_type()), which can only by
done with untagged pointers.
Untag user pointers in this function.
Signed-off-by: Andrey Konovalov
---
drivers/tee/tee_shm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c
index 49fd7312e2aa..96945f4cefb8
in radeon_gem_userptr_ioctl().
Suggested-by: Kuehling, Felix
Acked-by: Felix Kuehling
Signed-off-by: Andrey Konovalov
---
drivers/gpu/drm/radeon/radeon_gem.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c
b/drivers/gpu/drm/radeon/radeon_gem.c
index 44617dec8183
by done with untagged pointers.
Untag user pointers in these functions.
Signed-off-by: Andrey Konovalov
---
drivers/infiniband/core/uverbs_cmd.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/infiniband/core/uverbs_cmd.c
b/drivers/infiniband/core/uverbs_cmd.c
index 5a3a1780ceea
.
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
mm/migrate.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/mm/migrate.c b/mm/migrate.c
index f2ecc2855a12..3930bb6fa656 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1617,6 +1617,7 @@ static int do_pages_move(struct mm_struct
get_user_pages, that is used
by the futex syscall). Since a user can provided tagged addresses, we need
to handle this case.
Add untagging to gup.c functions that use user addresses for vma lookups.
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
mm/gup.c | 4
1 file changed
temporarily untags the pointers to perform the
checks, but then passes them as is into the kernel internals.
Reviewed-by: Catalin Marinas
Signed-off-by: Andrey Konovalov
---
arch/arm64/include/asm/uaccess.h | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/include
ed untagging pointers returned from __uaccess_mask_ptr.
Changes in v1:
- Rebased onto 4.17-rc1.
Changes in RFC v2:
- Added "#ifndef untagged_addr..." fallback in linux/uaccess.h instead of
defining it for each arch individually.
- Updated Documentation/arm64/tagged-pointers.txt.
- Drop
arm64.
Acked-by: Catalin Marinas
Reviewed-by: Khalid Aziz
Signed-off-by: Andrey Konovalov
---
include/linux/mm.h | 4
1 file changed, 4 insertions(+)
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 0e8834ac32b7..949d43e9c0b6 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
On Fri, May 31, 2019 at 6:20 PM Catalin Marinas wrote:
>
> On Fri, May 31, 2019 at 04:29:10PM +0200, Andrey Konovalov wrote:
> > On Thu, May 30, 2019 at 7:15 PM Catalin Marinas
> > wrote:
> > > On Tue, May 28, 2019 at 04:14:45PM +0200, Andrey Konovalov wrot
On Thu, May 30, 2019 at 7:15 PM Catalin Marinas wrote:
>
> On Tue, May 28, 2019 at 04:14:45PM +0200, Andrey Konovalov wrote:
> > Thanks for a lot of valuable input! I've read through all the replies
> > and got somewhat lost. What are the changes I need to do to this
> > s
1 - 100 of 172 matches
Mail list logo