linux/drivers/gpu/drm/etnaviv
Dave Hansen 1e9877902d mm/gup: Introduce get_user_pages_remote()
For protection keys, we need to understand whether protections
should be enforced in software or not.  In general, we enforce
protections when working on our own task, but not when on others.
We call these "current" and "remote" operations.

This patch introduces a new get_user_pages() variant:

        get_user_pages_remote()

Which is a replacement for when get_user_pages() is called on
non-current tsk/mm.

We also introduce a new gup flag: FOLL_REMOTE which can be used
for the "__" gup variants to get this new behavior.

The uprobes is_trap_at_addr() location holds mmap_sem and
calls get_user_pages(current->mm) on an instruction address.  This
makes it a pretty unique gup caller.  Being an instruction access
and also really originating from the kernel (vs. the app), I opted
to consider this a 'remote' access where protection keys will not
be enforced.

Without protection keys, this patch should not change any behavior.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Dave Hansen <dave@sr71.net>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: jack@suse.cz
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20160212210154.3F0E51EA@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-02-16 10:04:09 +01:00
..
cmdstream.xml.h
common.xml.h drm/etnaviv: update common and state_hi xml.h files 2016-01-26 18:53:55 +01:00
etnaviv_buffer.c
etnaviv_cmd_parser.c
etnaviv_drv.c drm/etnaviv: remove owner assignment from platform_driver 2016-01-25 14:23:46 +01:00
etnaviv_drv.h drm/etnaviv: rename etnaviv_gem_vaddr to etnaviv_gem_vmap 2016-01-26 18:54:01 +01:00
etnaviv_dump.c drm/etnaviv: rename etnaviv_gem_vaddr to etnaviv_gem_vmap 2016-01-26 18:54:01 +01:00
etnaviv_dump.h
etnaviv_gem_prime.c drm/etnaviv: call correct function when trying to vmap a DMABUF 2016-01-26 18:54:01 +01:00
etnaviv_gem_submit.c
etnaviv_gem.c mm/gup: Introduce get_user_pages_remote() 2016-02-16 10:04:09 +01:00
etnaviv_gem.h drm/etnaviv: call correct function when trying to vmap a DMABUF 2016-01-26 18:54:01 +01:00
etnaviv_gpu.c drm/etnaviv: fix memory leak in IOMMU init path 2016-01-26 18:53:59 +01:00
etnaviv_gpu.h drm/etnaviv: add further minor features and varyings count 2016-01-26 18:53:58 +01:00
etnaviv_iommu_v2.c
etnaviv_iommu_v2.h
etnaviv_iommu.c
etnaviv_iommu.h
etnaviv_mmu.c
etnaviv_mmu.h
Kconfig
Makefile
state_hi.xml.h drm/etnaviv: update common and state_hi xml.h files 2016-01-26 18:53:55 +01:00
state.xml.h