linux/drivers/video/fbdev
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
..
aty PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
core wrappers for ->i_mutex access 2016-01-22 18:04:28 -05:00
exynos video: exynos: fix modular build 2016-02-29 18:56:03 +02:00
geode video: constify geode ops structures 2015-12-15 15:41:22 +02:00
i810 video: fbdev: i810: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:51 +03:00
intelfb video: Use bool instead int pointer for get_opt_bool() argument 2016-02-16 15:09:20 +02:00
kyro drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() 2015-08-25 09:59:44 +02:00
matrox PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
mb862xx video: fbdev: mb862xx: Fix module autoload for OF platform driver 2015-09-24 14:35:36 +03:00
mbx video/mbx: indent some if statements 2014-07-01 13:32:30 +03:00
mmp fbdev: mmp: print IRQ resource using %pR format string 2016-01-29 13:42:58 +02:00
nvidia video: fbdev: nvidia: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:50 +03:00
omap This is the bulk of GPIO changes for kernel v4.6: 2016-03-17 21:05:32 -07:00
omap2 drm/omap: move omapdss & displays under omapdrm 2015-12-29 11:07:48 +02:00
riva video: fbdev: rivafb: unlock chip before probiding EDID 2015-12-15 15:41:23 +02:00
savage video: fbdev: savagefb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:50 +03:00
sis video: fbdev: sis: remove unused variable 2016-03-03 13:38:29 +02:00
vermilion mm, page_alloc: distinguish between being unable to sleep, unwilling to sleep and avoiding waking kswapd 2015-11-06 17:50:42 -08:00
via video: fbdev: via: use gpiochip data pointer 2016-01-07 00:02:34 +01:00
68328fb.c video: 68328fb: remove check for CONFIG_FB_68328_INVERT 2014-06-24 10:55:13 +03:00
acornfb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
acornfb.h
amba-clcd-versatile.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
amba-clcd.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
amifb.c fbdev changes for 4.2 2015-06-23 16:23:30 -07:00
arcfb.c
arkfb.c drivers/video/fbdev/arkfb.c: Use arch_phys_wc_add() and pci_iomap_wc() 2015-08-25 09:59:45 +02:00
asiliantfb.c
atafb.c fbdev: kill fb_rotate 2016-02-26 13:28:35 +02:00
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c This is the bulk of GPIO changes for kernel v4.6: 2016-03-17 21:05:32 -07:00
au1100fb.c fbdev: kill fb_rotate 2016-02-26 13:28:35 +02:00
au1100fb.h MIPS: Alchemy: au1100fb: use clk framework 2014-07-30 14:10:39 +02:00
au1200fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
au1200fb.h
auo_k190x.c fbdev: auo_k190x: avoid unused function warnings 2015-12-15 15:41:23 +02:00
auo_k190x.h
auo_k1900fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
auo_k1901fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bf54x-lq043fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bf537-lq035.c fbdev: kill fb_rotate 2016-02-26 13:28:35 +02:00
bfin-lq035q1-fb.c
bfin-t350mcqb-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
bfin_adv7393fb.c fb: adv7393: add missing semicolon 2014-07-01 13:18:38 +03:00
bfin_adv7393fb.h
broadsheetfb.c fbdev: broadsheetfb: fix memory leak 2015-09-30 10:33:57 +03:00
bt431.h video: fbdev: bt431: Correct cursor format control macro 2016-02-26 13:06:11 +02:00
bt455.h video: fbdev: pmag-ba-fb: Optimize Bt455 colormap addressing 2016-02-26 13:06:11 +02:00
bw2.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c
carminefb.h
carminefb_regs.h
cg3.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cg6.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cg14.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
chipsfb.c fbdev: Remove __init from chips_hw_init() to fix build failure 2014-08-26 12:48:34 +03:00
cirrusfb.c
clps711x-fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
clps711xfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
cobalt_lcdfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
controlfb.c powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
controlfb.h
cyber2000fb.c video: fbdev: cyber2000fb.c: use container_of to resolve cfb_info from fb_info 2014-09-30 13:06:01 +03:00
cyber2000fb.h
da8xx-fb.c fbdev: da8xx-fb: fix videomodes of lcd panels 2016-02-29 18:29:52 +02:00
dnfb.c
edid.h
efifb.c efifb: Add support for 64-bit frame buffer addresses 2015-10-12 14:20:06 +01:00
ep93xx-fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
fb-puv3.c drivers/video/fbdev/fb-puv3.c: Add header files for function unifb_mmap 2014-05-23 13:51:10 +03:00
ffb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
fm2fb.c
fsl-diu-fb.c video: fbdev: fsl: Fix kernel crash when diu_ops is not implemented 2015-12-09 12:57:06 +02:00
g364fb.c
gbefb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
goldfishfb.c
grvga.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
gxt4500.c gxt4500: enable panning 2015-10-08 12:19:39 +03:00
hecubafb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
hgafb.c video: hgafb: remove unneeded comparison 2015-01-26 14:43:06 +02:00
hitfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
hpfb.c video/fbdev, asm/io.h: Remove ioremap_writethrough() 2015-06-07 15:28:57 +02:00
hyperv_fb.c drivers:hv: Move MMIO range picking from hyper_fb to hv_vmbus 2015-08-05 11:41:31 -07:00
i740_reg.h
i740fb.c drivers/video/fbdev/i740fb: remove unused variable 2015-12-15 15:41:21 +02:00
igafb.c
imsttfb.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
imxfb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
jz4740_fb.c
Kconfig xen kconfig: don't "select INPUT_XEN_KBDDEV_FRONTEND" 2016-03-11 13:37:02 +02:00
leo.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
macfb.c
macmodes.c
macmodes.h
Makefile fbdev: Remove unused SH-Mobile HDMI driver 2015-12-15 15:41:22 +02:00
maxinefb.c
metronomefb.c video: fbdev: metronomefb: two harmless off by one bugs 2016-02-16 14:52:43 +02:00
mx3fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
mxsfb.c video: fbdev: mxsfb: Constify platform_device_id 2015-06-12 12:40:27 +03:00
n411.c fbdev: n411: check return value 2016-02-26 12:16:58 +02:00
neofb.c video: fbdev: neofb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:49 +03:00
nuc900fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
nuc900fb.h
ocfb.c ocfb: fix tgdel and tvdel timing parameters 2016-01-29 13:34:07 +02:00
offb.c PCI: Remove includes of asm/pci-bridge.h 2016-02-05 16:29:28 -06:00
p9100.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
platinumfb.c powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
platinumfb.h
pm2fb.c video: fbdev: pm2fb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:51 +03:00
pm3fb.c video: fbdev: pm3fb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
pmag-aa-fb.c video: fbdev: pmag-ba-fb: Optimize Bt455 colormap addressing 2016-02-26 13:06:11 +02:00
pmag-ba-fb.c video: fbdev: pmag-ba-fb: Fix the lower margin size 2016-02-26 13:02:58 +02:00
pmagb-b-fb.c
ps3fb.c
pvr2fb.c mm/gup: Switch all callers of get_user_pages() to not pass tsk/mm 2016-02-16 10:11:12 +01:00
pxa3xx-gcu.c video: fbdev: pxa3xx_gcu: prepare the clocks 2015-08-10 12:25:43 +03:00
pxa3xx-gcu.h
pxa168fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
pxa168fb.h
pxafb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
pxafb.h video: fbdev: pxafb: loosen the platform data bond 2015-12-15 15:41:24 +02:00
q40fb.c
s1d13xxxfb.c arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead 2015-08-10 23:07:05 -04:00
s3c-fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
s3c2410fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
s3c2410fb.h
s3fb.c drivers/video/fbdev/s3fb: Use arch_phys_wc_add() and pci_iomap_wc() 2015-08-25 09:59:45 +02:00
sa1100fb.c dma, mm/pat: Rename dma_*_writecombine() to dma_*_wc() 2016-03-09 14:57:51 +01:00
sa1100fb.h ARM: 8244/1: fbdev: sa1100fb: make use of device clock 2014-12-05 16:30:25 +00:00
sbuslib.c
sbuslib.h
sh7760fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
sh_mipi_dsi.c
sh_mobile_lcdcfb.c fbdev: sh_mobile_lcdc: Fix destruction of uninitialized mutex 2015-04-07 16:24:15 +03:00
sh_mobile_lcdcfb.h
sh_mobile_meram.c More ACPI and power management updates for 3.19-rc1 2014-12-18 20:28:33 -08:00
simplefb.c simplefb: Claim and enable regulators 2015-12-15 15:41:21 +02:00
skeletonfb.c fbdev: kill fb_rotate 2016-02-26 13:28:35 +02:00
sm501fb.c fbdev: sm501fb: use memset_io 2015-03-02 13:17:24 +02:00
sm712.h staging: sm7xxfb: merge sm712fb with fbdev 2015-08-07 15:05:01 -07:00
sm712fb.c fbdev: sm712fb: avoid unused function warnings 2015-12-15 15:41:23 +02:00
smscufx.c video: smscufx: Deletion of unnecessary checks before the function call "vfree" 2014-12-04 16:16:01 +02:00
ssd1307fb.c fbdev: ssd1307fb: add ssd1309 support 2015-09-24 14:10:26 +03:00
sstfb.c
sticore.h
stifb.c arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead 2015-08-10 23:07:05 -04:00
sunxvr500.c drivers/video: make fbdev/sunxvr500.c explicitly non-modular 2016-03-03 13:36:51 +02:00
sunxvr1000.c drivers/video: make fbdev/sunxvr1000.c explicitly non-modular 2016-03-03 13:36:51 +02:00
sunxvr2500.c drivers/video: make fbdev/sunxvr2500.c explicitly non-modular 2016-03-03 13:36:51 +02:00
tcx.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
tdfxfb.c video: fbdev: tdfxfb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
tgafb.c
tmiofb.c
tridentfb.c fbdev changes for 4.4 2015-11-10 10:00:09 -08:00
udlfb.c fbdev: udlfb: remove unneeded initialization in few places 2015-08-20 10:32:40 +03:00
uvesafb.c kernel/params: constify struct kernel_param_ops uses 2015-05-28 11:32:10 +09:30
valkyriefb.c video: fbdev: valkyriefb.c: use container_of to resolve fb_info_valkyrie from fb_info 2014-09-30 13:06:01 +03:00
valkyriefb.h
vesafb.c video: fbdev: vesafb: use arch_phys_wc_add() 2015-06-16 09:42:11 +03:00
vfb.c fbdev: remove unnecessary memset in vfb 2015-08-20 12:03:53 +03:00
vga16fb.c
vt8500lcdfb.c video: vt8500lcdfb: remove unneeded continue 2015-01-13 13:35:04 +02:00
vt8500lcdfb.h
vt8623fb.c drivers/video/fbdev/vt8623fb: Use arch_phys_wc_add() and pci_iomap_wc() 2015-08-25 09:59:45 +02:00
w100fb.c
w100fb.h
wm8505fb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
wm8505fb_regs.h
wmt_ge_rops.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00
wmt_ge_rops.h
xen-fbfront.c video/xen-fbfront: Further s/MFN/GFN clean-up 2015-09-08 18:03:53 +01:00
xilinxfb.c video: fbdev: drop owner assignment from platform_drivers 2014-10-20 16:21:51 +02:00