linux/drivers/gpu/drm/amd/amdgpu
Linus Torvalds 643ad15d47 Merge branch 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 protection key support from Ingo Molnar:
 "This tree adds support for a new memory protection hardware feature
  that is available in upcoming Intel CPUs: 'protection keys' (pkeys).

  There's a background article at LWN.net:

      https://lwn.net/Articles/643797/

  The gist is that protection keys allow the encoding of
  user-controllable permission masks in the pte.  So instead of having a
  fixed protection mask in the pte (which needs a system call to change
  and works on a per page basis), the user can map a (handful of)
  protection mask variants and can change the masks runtime relatively
  cheaply, without having to change every single page in the affected
  virtual memory range.

  This allows the dynamic switching of the protection bits of large
  amounts of virtual memory, via user-space instructions.  It also
  allows more precise control of MMU permission bits: for example the
  executable bit is separate from the read bit (see more about that
  below).

  This tree adds the MM infrastructure and low level x86 glue needed for
  that, plus it adds a high level API to make use of protection keys -
  if a user-space application calls:

        mmap(..., PROT_EXEC);

  or

        mprotect(ptr, sz, PROT_EXEC);

  (note PROT_EXEC-only, without PROT_READ/WRITE), the kernel will notice
  this special case, and will set a special protection key on this
  memory range.  It also sets the appropriate bits in the Protection
  Keys User Rights (PKRU) register so that the memory becomes unreadable
  and unwritable.

  So using protection keys the kernel is able to implement 'true'
  PROT_EXEC on x86 CPUs: without protection keys PROT_EXEC implies
  PROT_READ as well.  Unreadable executable mappings have security
  advantages: they cannot be read via information leaks to figure out
  ASLR details, nor can they be scanned for ROP gadgets - and they
  cannot be used by exploits for data purposes either.

  We know about no user-space code that relies on pure PROT_EXEC
  mappings today, but binary loaders could start making use of this new
  feature to map binaries and libraries in a more secure fashion.

  There is other pending pkeys work that offers more high level system
  call APIs to manage protection keys - but those are not part of this
  pull request.

  Right now there's a Kconfig that controls this feature
  (CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) that is default enabled
  (like most x86 CPU feature enablement code that has no runtime
  overhead), but it's not user-configurable at the moment.  If there's
  any serious problem with this then we can make it configurable and/or
  flip the default"

* 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
  x86/mm/pkeys: Fix mismerge of protection keys CPUID bits
  mm/pkeys: Fix siginfo ABI breakage caused by new u64 field
  x86/mm/pkeys: Fix access_error() denial of writes to write-only VMA
  mm/core, x86/mm/pkeys: Add execute-only protection keys support
  x86/mm/pkeys: Create an x86 arch_calc_vm_prot_bits() for VMA flags
  x86/mm/pkeys: Allow kernel to modify user pkey rights register
  x86/fpu: Allow setting of XSAVE state
  x86/mm: Factor out LDT init from context init
  mm/core, x86/mm/pkeys: Add arch_validate_pkey()
  mm/core, arch, powerpc: Pass a protection key in to calc_vm_flag_bits()
  x86/mm/pkeys: Actually enable Memory Protection Keys in the CPU
  x86/mm/pkeys: Add Kconfig prompt to existing config option
  x86/mm/pkeys: Dump pkey from VMA in /proc/pid/smaps
  x86/mm/pkeys: Dump PKRU with other kernel registers
  mm/core, x86/mm/pkeys: Differentiate instruction fetches
  x86/mm/pkeys: Optimize fault handling in access_error()
  mm/core: Do not enforce PKEY permissions on remote mm access
  um, pkeys: Add UML arch_*_access_permitted() methods
  mm/gup, x86/mm/pkeys: Check VMAs and PTEs for protection keys
  x86/mm/gup: Simplify get_user_pages() PTE bit handling
  ...
2016-03-20 19:08:56 -07:00
..
amdgpu.h drm/amdgpu: fix issue with overlapping userptrs 2016-02-10 14:07:52 -05:00
amdgpu_acpi.c drm/amdgpu: mv amdgpu_acpi.h to amd/include/amd_acpi.h 2015-12-21 16:42:05 -05:00
amdgpu_afmt.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_amdkfd.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_amdkfd.h drm/amdgpu: Add amdgpu <--> amdkfd gfx8 interface 2015-07-20 09:16:48 +03:00
amdgpu_amdkfd_gfx_v7.c drm/amdgpu: fix non-ANSI declaration of amdgpu_amdkfd_gfx_*_get_functions() 2016-01-28 14:39:34 +02:00
amdgpu_amdkfd_gfx_v8.c drm/amdgpu: fix non-ANSI declaration of amdgpu_amdkfd_gfx_*_get_functions() 2016-01-28 14:39:34 +02:00
amdgpu_atombios.c drm/amdgpu: adjust default dispclk (v2) 2015-10-15 10:04:13 -04:00
amdgpu_atombios.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_atpx_handler.c drm/amdgpu: mv amdgpu_acpi.h to amd/include/amd_acpi.h 2015-12-21 16:42:05 -05:00
amdgpu_benchmark.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_bios.c drm/amdgpu: Use new read bios from rom callback 2015-12-02 12:45:59 -05:00
amdgpu_bo_list.c drm/amdgpu: remove amdgpu_bo_list_clone 2015-08-25 10:49:12 -04:00
amdgpu_cgs.c drm/amdgpu: add a cgs interface to fetch cg and pg flags 2016-02-08 10:37:46 -05:00
amdgpu_connectors.c drm/amdgpu: return from atombios_dp_get_dpcd only when error 2016-03-02 11:01:25 -05:00
amdgpu_connectors.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_cs.c drm/amdgpu: only move pt bos in LRU list on success 2016-01-28 11:46:45 -05:00
amdgpu_ctx.c drm/amdgpu: restrict the sched jobs number to power of two 2015-12-18 17:29:44 -05:00
amdgpu_device.c drm/amdgpu: fix s4 resume 2016-02-10 14:07:13 -05:00
amdgpu_display.c drm/amdgpu: Fix error handling in amdgpu_flip_work_func. 2016-03-05 12:31:45 -05:00
amdgpu_dpm.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_dpm.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_drv.c drm/amdgpu: add pcie cap module parameters (v2) 2016-02-08 10:37:41 -05:00
amdgpu_drv.h drm/amdgpu: merge amdgpu_family.h into amd_shared.h (v2) 2015-08-17 16:50:21 -04:00
amdgpu_encoders.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_fb.c drm/amdgpu: don't init fbdev if we don't have any connectors 2016-01-26 00:35:56 -05:00
amdgpu_fence.c drm/amdgpu: add kmem cache for amdgpu fence 2015-11-16 11:05:50 -05:00
amdgpu_gart.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_gds.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_gem.c drm/amdgpu: disable direct VM updates when vm_debug is set 2016-02-24 12:46:06 -05:00
amdgpu_gfx.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_gfx.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_i2c.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_i2c.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_ib.c drm/amdgpu: remove the unnecessary parameter adev for amdgpu_sa_bo_new() 2015-11-16 17:01:32 -05:00
amdgpu_ih.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_ih.h drm/amdgpu: Implement irq interfaces for CGS 2015-08-17 16:50:09 -04:00
amdgpu_ioc32.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_irq.c drm/amdgpu: add missing irq.h include 2016-01-14 08:07:55 +10:00
amdgpu_irq.h drm/amdgpu: add irq domain support 2016-01-11 09:52:57 -05:00
amdgpu_kms.c drm/amdgpu: Fixup hw vblank counter/ts for new drm_update_vblank_count() (v3) 2015-12-04 15:15:07 -05:00
amdgpu_mn.c drm/amdgpu: fix issue with overlapping userptrs 2016-02-10 14:07:52 -05:00
amdgpu_mode.h drm: Move LEAVE/ENTER_ATOMIC_MODESET to fbdev helpers 2015-12-08 16:07:51 +01:00
amdgpu_object.c drm/amdgpu: mask out WC from BO on unsupported arches 2016-02-02 10:09:11 -05:00
amdgpu_object.h drm/amdgpu: add warning to amdgpu_bo_gpu_offset() v2 2016-01-08 15:39:28 -05:00
amdgpu_pll.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_pll.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_pm.c drm/amdgpu/pm: update current crtc info after setting the powerstate 2016-03-02 11:01:20 -05:00
amdgpu_pm.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_powerplay.c drm/amd/powerplay: send event to notify powerplay all modules are initialized. 2016-03-02 11:01:22 -05:00
amdgpu_powerplay.h drm/amd/powerplay: add basic powerplay framework 2015-12-21 16:42:07 -05:00
amdgpu_prime.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_ring.c drm/amdgpu: fix next_rptr handling for debugfs 2016-01-22 14:44:08 -05:00
amdgpu_sa.c drm/amdgpu: hold reference to fences in amdgpu_sa_bo_new (v2) 2016-02-10 14:07:31 -05:00
amdgpu_sched.c drm/amdgpu: fix incorrect mutex usage v3 2015-11-16 11:05:58 -05:00
amdgpu_semaphore.c drm/amdgpu: remove the unnecessary parameter adev for amdgpu_sa_bo_new() 2015-11-16 17:01:32 -05:00
amdgpu_sync.c drm/amdgpu: fix lost sync_to if scheduler is enabled. 2016-01-13 11:39:15 -05:00
amdgpu_test.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_trace.h drm/amdgpu: add command submission workflow tracepoint 2015-11-16 11:05:57 -05:00
amdgpu_trace_points.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_ttm.c Merge branch 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-20 19:08:56 -07:00
amdgpu_ucode.c drm/amdgpu: export reservation_object from dmabuf to ttm (v2) 2015-09-23 17:23:34 -04:00
amdgpu_ucode.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
amdgpu_uvd.c drm/amdgpu: add UVD support for Stoney 2015-10-21 12:20:50 -04:00
amdgpu_uvd.h drm/amdgpu: change uvd ib test to use kernel fence directly 2015-08-17 16:50:51 -04:00
amdgpu_vce.c drm/amdgpu: adapt vce session create interface changes 2015-11-20 18:21:20 -05:00
amdgpu_vce.h drm/amdgpu: use kernel fence for vce ib test 2015-08-17 16:50:52 -04:00
amdgpu_vm.c drm/amdgpu: Use drm_calloc_large for VM page_tables array 2016-01-19 12:25:09 -05:00
atom.c drm/amdgpu/atom: add support for new div32 opcodes (v3) 2015-10-14 16:16:24 -04:00
atom.h drm/amdgpu/atom: add support for new div32 opcodes (v3) 2015-10-14 16:16:24 -04:00
atombios_crtc.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
atombios_crtc.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
atombios_dp.c drm/amdgpu/dp: add back special handling for NUTMEG 2016-03-08 11:26:34 -05:00
atombios_dp.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
atombios_encoders.c drm/amdgpu: Restore LCD backlight level on resume 2015-09-29 15:08:53 -04:00
atombios_encoders.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
atombios_i2c.c drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
atombios_i2c.h drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
ci_dpm.c drm/amdgpu/dpm/ci: switch over to the common pcie caps interface 2016-02-08 10:37:42 -05:00
ci_dpm.h drm/amdgpu: Add support for CIK parts 2015-06-03 21:03:17 -04:00
ci_smc.c drm/amdgpu: Add support for CIK parts 2015-06-03 21:03:17 -04:00
cik.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
cik.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
cik_dpm.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
cik_ih.c drm/amdgpu: add irq domain support 2016-01-11 09:52:57 -05:00
cik_ih.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
cik_sdma.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
cik_sdma.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
cikd.h drm/amdgpu: add count field for the SDMA NOP packet v2 2015-09-02 12:21:35 -04:00
clearstate_ci.h drm/amdgpu: Add support for CIK parts 2015-06-03 21:03:17 -04:00
clearstate_defs.h
clearstate_vi.h drm/amdgpu: Add initial VI support 2015-06-03 21:03:17 -04:00
cz_dpm.c drm/amdgpu/cz: remove commented out call to enable vce pg 2016-03-02 11:01:24 -05:00
cz_dpm.h drm/amdgpu/cz: add code to enable forcing VCE clocks 2016-01-13 12:12:43 -05:00
cz_ih.c drm/amdgpu: add irq domain support 2016-01-11 09:52:57 -05:00
cz_ih.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
cz_smc.c drm/amdgpu: Update SMC/DPM for Stoney 2015-10-21 12:19:46 -04:00
cz_smumgr.h drm/amdgpu: Add initial VI support 2015-06-03 21:03:17 -04:00
dce_v8_0.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
dce_v8_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
dce_v10_0.c drm: Pass 'name' to drm_encoder_init() 2015-12-11 09:13:20 +01:00
dce_v10_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
dce_v11_0.c amdgpu/dce11: Add test for crtc < 0 to various DCEv11 functions 2016-01-04 17:21:14 -05:00
dce_v11_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
fiji_dpm.c drm/amdgpu: rename fiji_smumgr.h to fiji_smum.h 2015-12-21 16:42:44 -05:00
fiji_smc.c drm/amdgpu: rename fiji_smumgr.h to fiji_smum.h 2015-12-21 16:42:44 -05:00
fiji_smum.h drm/amdgpu: rename fiji_smumgr.h to fiji_smum.h 2015-12-21 16:42:44 -05:00
gfx_v7_0.c drm/amdgpu: apply gfx_v8 fixes to gfx_v7 as well 2016-03-02 11:01:22 -05:00
gfx_v7_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
gfx_v8_0.c drm/amdgpu/gfx8: specify which engine to wait before vm flush 2016-03-02 11:01:23 -05:00
gfx_v8_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
gmc_v7_0.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
gmc_v7_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
gmc_v8_0.c drm/amdgpu: drop topaz support from gmc8 module 2016-02-02 22:54:18 -05:00
gmc_v8_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
iceland_dpm.c drm/amdgpu/iceland: don't call smu_init on resume 2015-06-10 09:32:25 -04:00
iceland_ih.c drm/amdgpu: add irq domain support 2016-01-11 09:52:57 -05:00
iceland_ih.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
iceland_sdma_pkt_open.h drm/amdgpu: add count field for the SDMA NOP packet v2 2015-09-02 12:21:35 -04:00
iceland_smc.c drm/amdgpu: don't load MEC2 on topaz 2016-02-02 22:54:25 -05:00
iceland_smumgr.h drm/amdgpu: Add initial VI support 2015-06-03 21:03:17 -04:00
Kconfig drm/amdgpu: add core driver (v4) 2015-06-03 21:03:15 -04:00
kv_dpm.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
kv_dpm.h drm/amdgpu: Add support for CIK parts 2015-06-03 21:03:17 -04:00
kv_smc.c drm/amdgpu: Add support for CIK parts 2015-06-03 21:03:17 -04:00
Makefile drm/amdgpu: move gmc7 support out of CIK dependency 2016-02-02 22:52:48 -05:00
ObjectID.h
ppsmc.h drm/amdgpu: add ppsmc.h 2015-06-03 21:03:13 -04:00
sdma_v2_4.c drm/amdgpu: remove old lockup detection infrastructure 2015-10-21 11:35:12 -04:00
sdma_v2_4.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
sdma_v3_0.c drm/amdgpu: add sdma clock gating support for Fiji. 2015-12-21 16:42:36 -05:00
sdma_v3_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
smu_ucode_xfer_vi.h drm/amdgpu: Add initial VI support 2015-06-03 21:03:17 -04:00
tonga_dpm.c drm/amdgpu: fix tonga smu resume 2016-01-15 12:43:11 -05:00
tonga_ih.c drm/amdgpu: add irq domain support 2016-01-11 09:52:57 -05:00
tonga_ih.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
tonga_sdma_pkt_open.h drm/amdgpu: add count field for the SDMA NOP packet v2 2015-09-02 12:21:35 -04:00
tonga_smc.c drm/amdgpu: rename tonga_smumgr.h to tonga_smum.h 2015-12-21 16:42:43 -05:00
tonga_smum.h drm/amdgpu: rename tonga_smumgr.h to tonga_smum.h 2015-12-21 16:42:43 -05:00
uvd_v4_2.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
uvd_v4_2.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
uvd_v5_0.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
uvd_v5_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
uvd_v6_0.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
uvd_v6_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
vce_v2_0.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
vce_v2_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
vce_v3_0.c drma/dmgpu: move cg and pg flags into shared headers 2016-02-08 10:37:47 -05:00
vce_v3_0.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
vi.c drm/amdgpu: clean up vce pg flags for cz/st 2016-02-08 10:37:43 -05:00
vi.h drm/amdgpu: rename amdgpu_ip_funcs to amd_ip_funcs (v2) 2015-06-03 21:03:51 -04:00
vi_dpm.h drm/amdgpu: Add Fiji support to SMC and DPM (v2) 2015-08-17 16:50:26 -04:00
vid.h drm/amdgpu: Add amdgpu <--> amdkfd gfx8 interface 2015-07-20 09:16:48 +03:00