Re: [PATCH v13 04/20] mm, arm64: untag user pointers passed to memory syscalls

Andrey Konovalov
2019-03-28T18:10:07Z

On Fri, Mar 22, 2019 at 12:44 PM Catalin Marinas
<catalin.marinas@arm.com> wrote:
>
> On Wed, Mar 20, 2019 at 03:51:18PM +0100, 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 0x00) as syscall arguments.
> >
> > This patch allows tagged pointers to be passed to the following memory
> > syscalls: madvise, mbind, get_mempolicy, mincore, mlock, mlock2, brk,
> > mmap_pgoff, old_mmap, munmap, remap_file_pages, mprotect, pkey_mprotect,
> > mremap, msync and shmdt.
> >
> > This is done by untagging pointers passed to these syscalls in the
> > prologues of their handlers.
> >
> > Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
> > ---
> > ipc/shm.c | 2 ++
> > mm/madvise.c | 2 ++
> > mm/mempolicy.c | 5 +++++
> > mm/migrate.c | 1 +
> > mm/mincore.c | 2 ++
> > mm/mlock.c | 5 +++++
> > mm/mmap.c | 7 +++++++
> > mm/mprotect.c | 1 +
> > mm/mremap.c | 2 ++
> > mm/msync.c | 2 ++
> > 10 files changed, 29 insertions(+)
>
> I wonder whether it's better to keep these as wrappers in the arm64
> code.

I don't think I understand what you propose, could you elaborate?