twx-linux/include/linux
Dave Hansen 62b5f7d013 mm/core, x86/mm/pkeys: Add execute-only protection keys support
Protection keys provide new page-based protection in hardware.
But, they have an interesting attribute: they only affect data
accesses and never affect instruction fetches.  That means that
if we set up some memory which is set as "access-disabled" via
protection keys, we can still execute from it.

This patch uses protection keys to set up mappings to do just that.
If a user calls:

	mmap(..., PROT_EXEC);
or
	mprotect(ptr, sz, PROT_EXEC);

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

I haven't found any userspace that does this today.  With this
facility in place, we expect userspace to move to use it
eventually.  Userspace _could_ start doing this today.  Any
PROT_EXEC calls get converted to PROT_READ inside the kernel, and
would transparently be upgraded to "true" PROT_EXEC with this
code.  IOW, userspace never has to do any PROT_EXEC runtime
detection.

This feature provides enhanced protection against leaking
executable memory contents.  This helps thwart attacks which are
attempting to find ROP gadgets on the fly.

But, the security provided by this approach is not comprehensive.
The PKRU register which controls access permissions is a normal
user register writable from unprivileged userspace.  An attacker
who can execute the 'wrpkru' instruction can easily disable the
protection provided by this feature.

The protection key that is used for execute-only support is
permanently dedicated at compile time.  This is fine for now
because there is currently no API to set a protection key other
than this one.

Despite there being a constant PKRU value across the entire
system, we do not set it unless this feature is in use in a
process.  That is to preserve the PKRU XSAVE 'init state',
which can lead to faster context switches.

PKRU *is* a user register and the kernel is modifying it.  That
means that code doing:

	pkru = rdpkru()
	pkru |= 0x100;
	mmap(..., PROT_EXEC);
	wrpkru(pkru);

could lose the bits in PKRU that enforce execute-only
permissions.  To avoid this, we suggest avoiding ever calling
mmap() or mprotect() when the PKRU value is expected to be
unstable.

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: Andy Lutomirski <luto@kernel.org>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Borislav Petkov <bp@suse.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Chen Gang <gang.chen.5i5j@gmail.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Dave Hansen <dave@sr71.net>
Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Piotr Kwapulinski <kwapulinski.piotr@gmail.com>
Cc: Rik van Riel <riel@redhat.com>
Cc: Stephen Smalley <sds@tycho.nsa.gov>
Cc: Vladimir Murzin <vladimir.murzin@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: keescook@google.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20160212210240.CB4BB5CA@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-02-18 19:46:33 +01:00
..
amba
bcma
byteorder
can
ceph libceph: MOSDOpReply v7 encoding 2016-02-04 18:26:08 +01:00
clk ARM: SoC multiplatform code changes for v4.5 2016-01-20 18:03:56 -08:00
crush crush: add chooseleaf_stable tunable 2016-02-04 18:25:55 +01:00
decompress
dma
extcon
fpga
fsl
gpio gpio: generic: make bgpio_pdata always visible 2016-01-13 16:00:32 +01:00
hsi
i2c
iio
input
irqchip
isdn
lockd lockd: constify nlmsvc_binding structure 2016-01-07 10:10:50 -05:00
mfd RTC for 4.5 2016-01-18 12:10:45 -08:00
mlx4 Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
mlx5 Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
mmc mmc: dw_mmc: remove the unused quirks 2016-01-05 18:04:58 +01:00
mtd mtd: nand: add helpers to access ->priv 2016-01-07 09:55:39 -08:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl
platform_data Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-01-24 12:50:56 -08:00
power
qed
raid raid6/algos.c : bug fix : Add the missing definitions to the pq.h file 2016-01-21 14:47:08 -08:00
regulator Merge remote-tracking branches 'regulator/topic/pv88090', 'regulator/topic/qcom-smd', 'regulator/topic/tps6105x', 'regulator/topic/tps65086' and 'regulator/topic/tps65218' into regulator-next 2016-01-12 18:26:10 +00:00
reset
rtc
sched
soc ARM: SoC driver updates for v4.5 2016-01-20 18:42:30 -08:00
spi Merge remote-tracking branches 'spi/topic/overlay', 'spi/topic/pxa2xx', 'spi/topic/s3c64xx', 'spi/topic/sh-msiof' and 'spi/topic/spidev' into spi-next 2016-01-11 16:48:35 +00:00
ssb
sunrpc Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
ulpi
unaligned
usb USB patches for 4.5-rc1 2016-01-13 09:26:40 -08:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_pmtmr.h
acpi.h Merge branches 'acpi-pci', 'acpi-irq' and 'acpi-assorted' 2016-01-12 01:10:19 +01:00
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
arm-cci.h
arm-smccc.h ARM: 8478/2: arm/arm64: add arm-smccc 2016-01-04 16:19:57 +00:00
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_serial.h
atmel_tc.h
atmel-mci.h mmc: atmel: get rid of struct mci_dma_data 2016-01-14 13:40:30 +01:00
atmel-ssc.h
atomic.h
attribute_container.h
audit.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2016-01-17 19:13:15 -08:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h block, badblocks: introduce devm_init_badblocks 2016-01-09 08:39:04 -08:00
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_wdt.h
bcm963xx_nvram.h MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure 2016-01-24 03:47:37 +01:00
bcm963xx_tag.h MIPS: bcm963xx: Update bcm_tag field image_sequence 2016-01-24 03:49:03 +01:00
bfin_mac.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk_types.h
blk-cgroup.h
blk-mq.h
blkdev.h Merge remote-tracking branch 'mkp-scsi/4.5/scsi-fixes' into fixes 2016-02-04 21:37:52 -08:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_subsys.h
cgroup-defs.h cgroup: make sure a parent css isn't offlined before its children 2016-01-22 10:42:57 -05:00
cgroup.h Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2016-01-12 19:20:32 -08:00
circ_buf.h
cleancache.h include/linux/cleancache.h: Clean up code 2016-01-27 09:10:29 -05:00
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
compaction.h
compat.h
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
component.h
concap.h
configfs.h Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2016-01-20 17:20:53 -08:00
connector.h
console_struct.h
console.h printk: do cond_resched() between lines while outputting to consoles 2016-01-16 11:17:25 -08:00
consolemap.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight.h
count_zeros.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq-dt.h
cpufreq.h
cpuidle.h
cpumask.h kernel/cpu.c: make set_cpu_* static inlines 2016-01-20 17:09:18 -08:00
cpuset.h cpuset: make mm migration asynchronous 2016-01-22 10:22:46 -05:00
cputime.h
crash_dump.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h block: use DAX for partition table reads 2016-01-30 13:35:32 -08:00
dca.h
dcache.h include/linux/dcache.h: remove semicolons from HASH_LEN_DECLARE 2016-01-14 16:00:49 -08:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h PM / devfreq: Set the freq_table of devfreq device 2016-01-13 17:30:32 +09:00
device_cgroup.h
device-mapper.h
device.h device core: add device_is_bound() 2016-01-08 01:12:06 +01:00
devpts_fs.h pty: make sure super_block is still valid in final /dev/tty close 2016-02-06 23:45:46 -08:00
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma_remapping.h
dma-attrs.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-iommu.h
dma-mapping.h dma-mapping: use offset_in_page macro 2016-01-20 17:09:18 -08:00
dmaengine.h Merge branch 'topic/async' into for-linus 2016-01-06 15:17:47 +05:30
dmapool.h
dmar.h
dmi.h firmware: dmi_scan: Save SMBIOS Type 9 System Slots 2016-01-15 22:08:45 +01:00
dnotify.h
dns_resolver.h
dqblk_qtree.h quota: constify qtree_fmt_operations structures 2016-01-04 10:58:35 +01:00
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h err.h: add (missing) unlikely() to IS_ERR_OR_NULL() 2016-01-16 11:17:24 -08:00
errno.h
errqueue.h
etherdevice.h net: Add eth_platform_get_mac_address() helper. 2016-01-06 16:31:56 -05:00
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fence.h
file.h
filter.h bpf: cleanup bpf_prog_run_{save,clear}_cb helpers 2016-01-08 21:40:34 -05:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
freezer.h
frontswap.h
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fs.h block: revert runtime dax control of the raw block device 2016-01-30 13:35:31 -08:00
fscache-cache.h
fscache.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h fsnotify: destroy marks with call_srcu instead of dedicated thread 2016-01-14 16:00:49 -08:00
fsnotify.h
ftrace_irq.h
ftrace.h This includes three minor fixes, mostly due to cut-and-paste issues. 2016-01-28 17:00:50 -08:00
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h block: kill disk_{check|set|clear|alloc}_badblocks 2016-01-09 22:42:31 -08:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm, hugetlb: don't require CMA for runtime gigantic pages 2016-02-05 18:10:40 -08:00
glob.h
goldfish.h
gpio_keys.h
gpio_mouse.h
gpio-fan.h
gpio-pxa.h
gpio.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h hrtimer: Handle remaining time proper for TIME_LOW_RES 2016-01-17 11:13:55 +01:00
htcpld.h
htirq.h
huge_mm.h thp: change pmd_trans_huge_lock() interface to return ptl 2016-01-21 17:20:51 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h hugetlb: fix compile error on tile 2016-01-15 17:56:32 -08:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h i2c: create builtin_i2c_driver to avoid registration boilerplate 2016-01-13 11:06:03 +01:00
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
in6.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel_pmic_gpio.h
intel-iommu.h
intel-svm.h
interrupt.h Initial roundup of 4.5 merge window patches 2016-01-23 18:45:06 -08:00
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h lib/iomap_copy.c: add __ioread32_copy() 2016-01-20 17:09:18 -08:00
ioc3.h
ioc4.h
iocontext.h
iommu-common.h
iommu-helper.h
iommu.h iommu: Update struct iommu_ops comments 2016-01-29 12:34:29 +01:00
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_poll.h
irq_work.h
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token 2016-01-26 16:00:14 +01:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h include/linux/kdev_t.h: remove new_valid_dev() 2016-01-16 11:17:23 -08:00
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h include/linux/kernel.h: change abs() macro so it uses consistent return type 2016-01-16 11:17:22 -08:00
kernelcapi.h
kernfs.h
kexec.h kexec: move some memembers and definitions within the scope of CONFIG_KEXEC_FILE 2016-01-20 17:09:18 -08:00
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
kvm_irqfd.h
kvm_para.h
kvm_types.h kvm: rename pfn_t to kvm_pfn_t 2016-01-15 17:56:32 -08:00
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
lglock.h
lguest_launcher.h
lguest.h
libata.h drivers: ata: wake port before DMA stop for ALPM 2016-01-25 15:20:44 -05:00
libfdt_env.h
libfdt.h
libnvdimm.h libnvdimm: Add a poison list and export badblocks 2016-01-09 08:39:03 -08:00
libps2.h
license.h
lightnvm.h lightnvm: ensure that nvm_dev_ops can be used without CONFIG_NVM 2016-01-13 13:04:11 -07:00
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h mm: memcontrol: move kmem accounting code to CONFIG_MEMCG 2016-01-20 17:09:18 -08:00
list_nulls.h
list_sort.h
list.h mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup 2016-01-15 17:56:32 -08:00
livepatch.h
llc.h
llist.h
lockdep.h kernel/locking/lockdep.c: convert hash tables to hlists 2016-02-11 18:35:48 -08:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
lz4.h lz4: fix wrong compress buffer size for 64-bits 2016-01-20 17:09:18 -08:00
lzo.h
m48t86.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-mux.h
mdio.h mdio: Abstract device_remove() and device_free() 2016-01-07 14:31:27 -05:00
mei_cl_bus.h
memblock.h memblock: fix section mismatch 2016-01-15 17:56:32 -08:00
memcontrol.h mm: memcontrol: drop superfluous entry in the per-memcg stats array 2016-02-03 08:28:43 -08:00
memory_hotplug.h x86, mm: introduce vmem_altmap to augment vmemmap_populate() 2016-01-15 17:56:32 -08:00
memory.h
mempolicy.h mm/mempolicy.c: convert the shared_policy lock to a rwlock 2016-01-14 16:00:49 -08:00
mempool.h
memremap.h mm, dax, pmem: introduce {get|put}_dev_pagemap() for dax-gup 2016-01-15 17:56:32 -08:00
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h mm: move lru_to_page to mm_inline.h 2016-01-14 16:00:49 -08:00
mm_types.h Merge branches 'x86/fpu', 'x86/mm' and 'x86/asm' into x86/pkeys 2016-02-16 09:37:37 +01:00
mm-arch-hooks.h
mm.h mm/core, x86/mm/pkeys: Differentiate instruction fetches 2016-02-18 19:46:29 +01:00
mman.h mm/core, arch, powerpc: Pass a protection key in to calc_vm_flag_bits() 2016-02-18 19:46:30 +01:00
mmdebug.h page-flags: introduce page flags policies wrt compound pages 2016-01-15 17:56:32 -08:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h thp: make split_queue per-node 2016-02-03 08:28:43 -08:00
mnt_namespace.h
mod_devicetable.h
module.h modules: fix longstanding /proc/kallsyms vs module insertion race. 2016-02-03 16:58:15 +10:30
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
mutex-debug.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h nfsd: don't hold i_mutex over userspace upcalls 2016-01-09 03:07:52 -05:00
nd.h
net.h
netdev_features.h
netdevice.h net: simplify napi_synchronize() to avoid warnings 2016-01-24 22:19:55 -08:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h
netpoll.h
nfs3.h
nfs4.h NFS client updates for Linux 4.5 2016-01-14 16:08:23 -08:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS client updates for Linux 4.5 2016-01-14 16:08:23 -08:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h Merge branch 'pnfs_generic' 2016-01-04 13:19:55 -05:00
nfs.h
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme.h
nvmem-consumer.h
nvmem-provider.h
nvram.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h gpio: of: provide optional of_mm_gpiochip_add_data() function 2016-01-05 11:20:12 +01:00
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h
of_pci.h PCI: host: Add of_pci_get_host_bridge_resources() stub 2016-01-15 12:30:35 -06:00
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h of: drop symbols declared by _OF_DECLARE() from modules 2016-01-25 08:35:50 -06:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page-flags-layout.h
page-flags.h mm: rework mapcount accounting to enable 4k mapping of THPs 2016-01-15 17:56:32 -08:00
page-isolation.h
pageblock-flags.h
pagemap.h mm: add find_get_entries_tag() 2016-01-22 17:02:18 -08:00
pagevec.h
parport_pc.h
parport.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h PCI: Add Netronome NFP4000 PF device ID 2016-01-15 17:29:37 -06:00
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcieport_if.h
pda_power.h
pe.h
percpu_counter.h
percpu_ida.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h perf: Synchronously clean up child events 2016-01-29 08:35:35 +01:00
perf_regs.h
personality.h
pfn_t.h mm: fix pfn_t vs highmem 2016-02-11 18:35:48 -08:00
pfn.h mm: fix pfn_t vs highmem 2016-02-11 18:35:48 -08:00
phonet.h
phy_fixed.h
phy.h mdio: Add support for mdio drivers. 2016-01-07 14:31:27 -05:00
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h pipe: limit the per-user amount of pages allocated in pipes 2016-01-19 19:25:21 -05:00
pkeys.h mm/core, x86/mm/pkeys: Add execute-only protection keys support 2016-02-18 19:46:33 +01:00
pktcdvd.h
pl320-ipc.h
platform_device.h Power management and ACPI updates for v4.5-rc1 2016-01-12 20:25:09 -08:00
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: add setter for dev.pm_domain 2016-01-08 01:12:06 +01:00
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h PM / sleep: Go direct_complete if driver has no callbacks 2016-01-08 01:12:06 +01:00
pmem.h pmem: add wb_cache_pmem() to the PMEM API 2016-01-22 17:02:18 -08:00
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h include/linux/poison.h: use POISON_POINTER_DELTA for poison pointers 2016-01-16 11:17:22 -08:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
pr.h
preempt.h
prefetch.h
printk.h printk: help pr_debug and pr_devel to optimize out arguments 2016-01-16 11:17:29 -08:00
proc_fs.h
proc_ns.h
profile.h
projid.h
property.h
proportions.h
psci.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h ptrace: use fsuid, fsgid, effective creds for fs access checks 2016-01-20 17:09:18 -08:00
pvclock_gtod.h
pwm_backlight.h
pwm.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h radix-tree: fix oops after radix_tree_iter_retry 2016-02-05 18:10:40 -08:00
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h rbtree: use READ_ONCE in RB_EMPTY_ROOT 2016-01-20 17:09:18 -08:00
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate.h
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h Merge remote-tracking branches 'regmap/topic/64bit' and 'regmap/topic/irq-type' into regmap-next 2016-01-05 19:07:17 +00:00
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource_ext.h
resource.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h mm: replace vma_lock_anon_vma with anon_vma_lock_read/write 2016-02-05 18:10:40 -08:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h net, sched: add clsact qdisc 2016-01-10 22:13:15 -05:00
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched_clock.h
sched.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-01-22 10:24:03 -08:00
scif.h
scpi_protocol.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
sfi_acpi.h
sfi.h
sh_clk.h
sh_dma.h
sh_eth.h sh_eth: remove EDMAC_BIG_ENDIAN 2016-01-04 16:11:11 -05:00
sh_intc.h
sh_timer.h
shdma-base.h
shm.h ipc/shm.c: is_file_shm_hugepages() can be boolean 2016-01-20 17:09:18 -08:00
shmem_fs.h make sure that freeing shmem fast symlinks is RCU-delayed 2016-01-22 18:08:52 -05:00
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h net:Add sysctl_max_skb_frags 2016-02-09 04:28:06 -05:00
slab_def.h mm: memcontrol: move kmem accounting code to CONFIG_MEMCG 2016-01-20 17:09:18 -08:00
slab.h mm: memcontrol: move kmem accounting code to CONFIG_MEMCG 2016-01-20 17:09:18 -08:00
slub_def.h mm: memcontrol: move kmem accounting code to CONFIG_MEMCG 2016-01-20 17:09:18 -08:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
splice.h
spmi.h
srcu.h
ssbi.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h Merge branch 'sched/urgent' into sched/core, to pick up fixes before merging new patches 2016-01-06 11:02:29 +01:00
string_helpers.h
string.h new helper: memdup_user_nul() 2016-01-04 10:20:19 -05:00
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h
svga.h
sw842.h
swab.h
swap_cgroup.h
swap.h mm: free swap cache aggressively if memcg swap is full 2016-01-20 17:09:18 -08:00
swapfile.h
swapops.h
swiotlb.h swiotlb: Make linux/swiotlb.h standalone includible 2016-01-20 17:29:52 -05:00
sxgbe_platform.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h kmemcg: account certain kmem allocations to memcg 2016-01-14 16:00:49 -08:00
threads.h
ti_wilink_st.h
tick.h time: nohz: Expose tick_nohz_enabled 2016-01-15 22:34:39 +01:00
tifm.h
timb_dma.h
timb_gpio.h
time64.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h numa: remove stale node_has_online_mem() define 2016-01-18 14:49:33 -05:00
torture.h
toshiba.h
tpm_command.h
tpm.h
trace_clock.h
trace_events.h
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h Not much new with tracing for this release. Mostly just clean ups and 2016-01-12 20:04:15 -08:00
transport_class.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h tty: Wait interruptibly for tty lock on reopen 2016-01-26 23:17:54 -08:00
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio_driver.h
uio.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h
uwb.h
verify_pefile.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h virtio: make find_vqs() checkpatch.pl-friendly 2016-01-12 20:47:06 +02:00
virtio_console.h
virtio_mmio.h
virtio_ring.h virtio_ring: use virt_store_mb 2016-01-12 20:47:02 +02:00
virtio.h
vlynq.h
vm_event_item.h mm: support madvise(MADV_FREE) 2016-01-15 17:56:32 -08:00
vm_sockets.h
vmacache.h
vmalloc.h mm, vmalloc: remove VM_VPAGES 2016-01-14 16:00:49 -08:00
vme.h
vmpressure.h mm: memcontrol: hook up vmpressure to socket pressure 2016-01-14 16:00:49 -08:00
vmstat.h vmstat: make vmstat_updater deferrable again and shut down on idle 2016-01-14 16:00:49 -08:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
wait.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-01-12 18:57:02 -08:00
wanrouter.h
watchdog.h watchdog: Drop pointer to watchdog device from struct watchdog_device 2016-01-11 21:53:59 +01:00
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h workqueue: skip flush dependency checks for legacy workqueues 2016-01-29 13:31:10 -05:00
writeback.h
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h