alistair23-linux/include/linux
Denys Vlasenko 16e72e9b30 powerpc: do not make the entire heap executable
On 32-bit powerpc the ELF PLT sections of binaries (built with
--bss-plt, or with a toolchain which defaults to it) look like this:

  [17] .sbss             NOBITS          0002aff8 01aff8 000014 00  WA  0   0  4
  [18] .plt              NOBITS          0002b00c 01aff8 000084 00 WAX  0   0  4
  [19] .bss              NOBITS          0002b090 01aff8 0000a4 00  WA  0   0  4

Which results in an ELF load header:

  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x019c70 0x00029c70 0x00029c70 0x01388 0x014c4 RWE 0x10000

This is all correct, the load region containing the PLT is marked as
executable.  Note that the PLT starts at 0002b00c but the file mapping
ends at 0002aff8, so the PLT falls in the 0 fill section described by
the load header, and after a page boundary.

Unfortunately the generic ELF loader ignores the X bit in the load
headers when it creates the 0 filled non-file backed mappings.  It
assumes all of these mappings are RW BSS sections, which is not the case
for PPC.

gcc/ld has an option (--secure-plt) to not do this, this is said to
incur a small performance penalty.

Currently, to support 32-bit binaries with PLT in BSS kernel maps
*entire brk area* with executable rights for all binaries, even
--secure-plt ones.

Stop doing that.

Teach the ELF loader to check the X bit in the relevant load header and
create 0 filled anonymous mappings that are executable if the load
header requests that.

Test program showing the difference in /proc/$PID/maps:

int main() {
	char buf[16*1024];
	char *p = malloc(123); /* make "[heap]" mapping appear */
	int fd = open("/proc/self/maps", O_RDONLY);
	int len = read(fd, buf, sizeof(buf));
	write(1, buf, len);
	printf("%p\n", p);
	return 0;
}

Compiled using: gcc -mbss-plt -m32 -Os test.c -otest

Unpatched ppc64 kernel:
00100000-00120000 r-xp 00000000 00:00 0                                  [vdso]
0fe10000-0ffd0000 r-xp 00000000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffd0000-0ffe0000 r--p 001b0000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffe0000-0fff0000 rw-p 001c0000 fd:00 67898094                           /usr/lib/libc-2.17.so
10000000-10010000 r-xp 00000000 fd:00 100674505                          /home/user/test
10010000-10020000 r--p 00000000 fd:00 100674505                          /home/user/test
10020000-10030000 rw-p 00010000 fd:00 100674505                          /home/user/test
10690000-106c0000 rwxp 00000000 00:00 0                                  [heap]
f7f70000-f7fa0000 r-xp 00000000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7fa0000-f7fb0000 r--p 00020000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7fb0000-f7fc0000 rw-p 00030000 fd:00 67898089                           /usr/lib/ld-2.17.so
ffa90000-ffac0000 rw-p 00000000 00:00 0                                  [stack]
0x10690008

Patched ppc64 kernel:
00100000-00120000 r-xp 00000000 00:00 0                                  [vdso]
0fe10000-0ffd0000 r-xp 00000000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffd0000-0ffe0000 r--p 001b0000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffe0000-0fff0000 rw-p 001c0000 fd:00 67898094                           /usr/lib/libc-2.17.so
10000000-10010000 r-xp 00000000 fd:00 100674505                          /home/user/test
10010000-10020000 r--p 00000000 fd:00 100674505                          /home/user/test
10020000-10030000 rw-p 00010000 fd:00 100674505                          /home/user/test
10180000-101b0000 rw-p 00000000 00:00 0                                  [heap]
                  ^^^^ this has changed
f7c60000-f7c90000 r-xp 00000000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7c90000-f7ca0000 r--p 00020000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7ca0000-f7cb0000 rw-p 00030000 fd:00 67898089                           /usr/lib/ld-2.17.so
ff860000-ff890000 rw-p 00000000 00:00 0                                  [stack]
0x10180008

The patch was originally posted in 2012 by Jason Gunthorpe
and apparently ignored:

https://lkml.org/lkml/2012/9/30/138

Lightly run-tested.

Link: http://lkml.kernel.org/r/20161215131950.23054-1-dvlasenk@redhat.com
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-22 16:41:29 -08:00
..
amba
bcma mtd: bcm47xxsflash: use platform_(set|get)_drvdata 2017-02-08 11:19:43 -08:00
byteorder
can can: rx-offload: Add support for timestamp based irq offloading 2017-02-06 15:13:24 +01:00
ceph
clk
crush
decompress
dma dmaengine: dw: register IRQ and DMA pool with instance ID 2017-01-25 11:51:39 +05:30
extcon
firmware/meson
fpga fpga: Add scatterlist based programming 2017-02-10 15:20:44 +01:00
fsl
gpio Linux 4.10-rc6 2017-01-30 14:39:20 +01:00
hsi
i2c
iio Immutable branch between MFD, IIO and PWM due for the v4.11 merge window 2017-01-28 18:21:49 +00:00
input
irqchip irqchip/gic-v3: Remove duplicate definition of GICD_TYPER_LPIS 2017-02-08 13:54:11 +00:00
isdn
lockd
mailbox
mfd staging/iio driver patches for 4.11-rc1 2017-02-22 12:14:01 -08:00
mlx4 net/mlx4_en: Pass user MTU value to Firmware at set port command 2017-01-30 15:26:43 -05:00
mlx5 net/mlx5: TX WQE update 2017-02-06 18:20:16 +02:00
mmc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
mtd mtd: name the mtd device with an optional label property 2017-02-10 10:16:34 -08:00
netfilter netfilter: nfnetlink: allow to check for generation ID 2017-02-12 14:45:11 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl Merge branch 'ib-pinctrl-genprops' into devel 2017-01-26 15:27:54 +01:00
platform_data char/misc driver patches for 4.11-rc1 2017-02-22 11:38:22 -08:00
power
qed qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
raid
regulator
remoteproc
reset
rpmsg
rtc
sched sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds 2017-02-01 11:01:30 +01:00
soc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
spi
ssb
sunrpc Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
ulpi
unaligned
usb
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h ACPI updates for v4.11-rc1 2017-02-20 17:55:15 -08:00
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.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-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arm-cci.h
arm-smccc.h ARM: smccc: Update HVC comment to describe new quirk parameter 2017-02-08 14:54:12 +00:00
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h async_tx: deprecate broken support for channel switching 2017-02-16 10:08:41 +05:30
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atmel_serial.h
atmel_tc.h
atomic.h
attribute_container.h
audit.h Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit 2017-02-21 13:25:50 -08:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h block: Dynamically allocate and refcount backing_dev_info 2017-02-02 08:20:50 -07:00
backing-dev.h block: Get rid of blk_get_backing_dev_info() 2017-02-02 08:21:32 -07:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
bfin_mac.h
binfmts.h
bio.h
bit_spinlock.h
bitfield.h bitfield.h: add FIELD_FIT() helper 2017-02-10 15:52:24 -05:00
bitmap.h
bitops.h
bitrev.h
blk-cgroup.h
blk-mq-pci.h
blk-mq.h
blk_types.h block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
blkdev.h Merge branch 'for-4.11/block' into for-4.11/linus-merge 2017-02-17 14:06:45 -07:00
blkpg.h
blktrace_api.h blktrace: make do_blk_trace_setup() static 2017-02-02 10:20:16 -07:00
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf-cgroup.h bpf: introduce BPF_F_ALLOW_OVERRIDE flag 2017-02-12 21:52:19 -05:00
bpf.h bpf: make jited programs visible in traces 2017-02-17 13:40:05 -05:00
bpf_trace.h bpf: add initial bpf tracepoints 2017-01-25 13:17:47 -05:00
bpf_verifier.h
brcmphy.h net: phy: bcm7xxx: Add BCM74371 PHY ID 2017-02-07 13:03:10 -05:00
bsearch.h
bsg-lib.h block/bsg: move queue creation into bsg_setup_queue 2017-01-27 15:08:35 -07:00
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h mm: avoid returning VM_FAULT_RETRY from ->page_mkwrite handlers 2017-02-08 15:41:43 -08:00
bug.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h cdrom: Make device operations read-only 2017-02-14 08:29:56 -07:00
cfag12864b.h
cgroup-defs.h
cgroup.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h clockevents: Add a clkevt-of mechanism like clksrc-of 2017-02-07 20:58:30 +01:00
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
compaction.h
compat.h fs/binfmt: Convert obsolete cputime type to nsecs 2017-02-01 09:13:51 +01:00
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
component.h
concap.h
configfs.h
connector.h
console.h console: Add callback to flush scrollback buffer to consw struct 2017-01-25 11:54:02 +01:00
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h cpufreq: Fix typos in comments 2017-02-04 00:47:59 +01:00
cpuhotplug.h arm64 updates for 4.11: 2017-02-22 10:46:44 -08:00
cpuidle.h cpuidle:powernv: Add helper function to populate powernv idle states. 2017-01-31 08:32:13 +11:00
cpumask.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 10:06:32 -08:00
cpuset.h
cputime.h sched/cputime: Remove generic asm headers 2017-02-01 09:14:07 +01:00
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.h ext4: move halfmd4 into hash.c directly 2017-02-02 11:52:14 -05:00
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h mm, dax: change pmd_fault() to take only vmf parameter 2017-02-22 16:41:26 -08:00
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h driver core patches for 4.11-rc1 2017-02-22 11:44:32 -08:00
debugobjects.h
delay.h delay: Add explanation of udelay() inaccuracy 2017-01-20 14:32:39 -08:00
delayacct.h delayacct: Include <uapi/linux/taskstats.h> 2017-02-07 10:57:47 +01:00
delayed_call.h
dell-led.h
devcoredump.h
devfreq-event.h
devfreq.h PM / devfreq: Fix available_governor sysfs 2017-01-31 15:46:49 +09:00
devfreq_cooling.h
device-mapper.h dm: always defer request allocation to the owner of the request_queue 2017-01-27 15:08:35 -07:00
device.h device: Implement a bus agnostic dev_num_vf routine 2017-01-20 11:43:17 -05:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h iommu/dma: Remove bogus dma_supported() implementation 2017-02-06 13:14:10 +01:00
dma-mapping.h
dma_remapping.h
dmaengine.h dmaengine: Provide a wrapper for memcpy operations 2017-01-31 09:03:20 +05:30
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.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/x86: Move the EFI BGRT init code to early init code 2017-02-01 08:45:46 +01:00
efi.h efi: Get and store the secure boot status 2017-02-07 10:42:10 +01:00
efs_vh.h
eisa.h
elevator.h blk-mq: pass bio to blk_mq_sched_get_rq_priv 2017-02-10 09:09:59 -07:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h net: add devm version of alloc_etherdev_mqs function 2017-01-29 19:24:12 -05:00
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h module: unify absolute krctab definitions for 32-bit and 64-bit 2017-02-03 08:28:25 -08:00
exportfs.h
ext2_fs.h
extable.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
file.h
filter.h This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config 2017-02-21 17:56:45 -08: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
frame.h
freezer.h
frontswap.h
fs.h block: Make blk_get_backing_dev_info() safe without open bdev 2017-02-02 08:20:53 -07:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h fscache: Fix dead object requeue 2017-01-31 13:23:09 -05:00
fscache.h
fscrypt_common.h fscrypt: split supp and notsupp declarations into their own headers 2017-02-06 23:26:43 -05:00
fscrypt_notsupp.h fscrypt: split supp and notsupp declarations into their own headers 2017-02-06 23:26:43 -05:00
fscrypt_supp.h fscrypt: split supp and notsupp declarations into their own headers 2017-02-06 23:26:43 -05:00
fsi.h drivers/fsi: add driver to device matches 2017-02-10 15:19:48 +01:00
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0 2017-02-06 08:54:01 +01:00
fsldma.h
fsnotify.h
fsnotify_backend.h
ftrace.h
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h scsi, block: fix duplicate bdi name registration crashes 2017-02-02 08:23:19 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.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.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h time: Remove CONFIG_TIMER_STATS 2017-02-10 11:15:08 +01:00
htcpld.h
htirq.h
huge_mm.h
hugetlb.h userfaultfd: hugetlbfs: gup: support VM_FAULT_RETRY 2017-02-22 16:41:28 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h vmbus: constify parameters where possible 2017-02-14 10:20:35 -08:00
hypervisor.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: allow specify device properties in i2c_board_info 2017-02-08 13:34:41 +01:00
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h block: fold cmd_type into the REQ_OP_ space 2017-01-31 14:00:44 -07:00
idr.h
ieee80211.h nl80211: add HT/VHT capabilities to AP parameters 2017-02-08 10:06:24 +01:00
ieee802154.h
if_arp.h
if_bridge.h bridge: uapi: add per vlan tunnel info 2017-02-03 15:21:21 -05:00
if_eql.h
if_ether.h
if_fddi.h
if_frad.h net: wan: Remove unused stats member from struct frad_local 2017-01-27 11:32:26 -05:00
if_link.h
if_ltalk.h
if_macvlan.h tap: Renaming tap related APIs, data structures, macros 2017-02-11 20:59:41 -05:00
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_tap.h tap: tap as an independent module 2017-02-11 20:59:41 -05:00
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
inetdevice.h
init.h arch: Rename CONFIG_DEBUG_RODATA and CONFIG_DEBUG_MODULE_RONX 2017-02-07 12:32:52 -08:00
init_ohci1394_dma.h
init_task.h timers: Omit POSIX timer stuff from task_struct when disabled 2017-01-27 13:05:26 -08:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h Merge branches 'iommu/fixes', 'arm/exynos', 'arm/renesas', 'arm/smmu', 'arm/mediatek', 'arm/core', 'x86/vt-d' and 'core' into next 2017-02-10 15:13:10 +01:00
intel-svm.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h
iommu-common.h
iommu-helper.h
iommu.h Merge branches 'iommu/fixes', 'arm/exynos', 'arm/renesas', 'arm/smmu', 'arm/mediatek', 'arm/core', 'x86/vt-d' and 'core' into next 2017-02-10 15:13:10 +01:00
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h net/ipv6: allow sysctl to change link-local address generation mode 2017-01-27 10:25:34 -05:00
ipv6_route.h
irq.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 10:52:23 -08:00
irq_cpustat.h
irq_poll.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h irqdomain: irq_domain_check_msi_remap 2017-01-23 15:00:45 +00:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd2.h
jhash.h
jiffies.h time: Introduce jiffies64_to_nsecs() 2017-02-01 09:13:45 +01:00
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
kernel_stat.h sched/cputime: Push time to account_system_time() in nsecs 2017-02-01 09:13:58 +01:00
kernelcapi.h
kernfs.h
kexec.h
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.h
kobject_ns.h
kprobes.h
kref.h kref: Implement 'struct kref' using refcount_t 2017-02-10 09:04:19 +01:00
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h leds: class: Add new optional brightness_hw_changed attribute 2017-01-29 19:59:42 +01:00
leds_pwm.h
lguest.h
lguest_launcher.h
libata.h Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
libfdt.h
libfdt_env.h
libnvdimm.h
libps2.h
license.h
lightnvm.h lightnvm: allow targets to use sysfs 2017-01-31 08:32:13 -07:00
linkage.h
linux_logo.h
lis3lv02d.h
list.h list: introduce list_for_each_entry_from_reverse helper 2017-02-03 16:35:42 -05:00
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h llist: Clarify comments about when locking is needed 2017-01-23 11:37:13 -08:00
lockdep.h
lockref.h
log2.h log2: make order_base_2() behave correctly on const input value zero 2017-02-03 09:56:43 -08:00
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/selinux into next 2017-02-10 10:28:49 +11:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h net: phy: marvell: Add support for 88e1545 PHY 2017-02-02 22:05:28 -05:00
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-mux.h
mdio.h net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
mei_cl_bus.h
memblock.h mm: page_alloc: skip over regions of invalid pfns where possible 2017-02-22 16:41:29 -08:00
memcontrol.h slab: use memcg_kmem_cache_wq for slab destruction operations 2017-02-22 16:41:27 -08:00
memory.h
memory_hotplug.h base/memory, hotplug: fix a kernel oops in show_valid_zones() 2017-02-03 14:13:19 -08:00
mempolicy.h
mempool.h
memremap.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h net: phy: micrel: add support for KSZ8795 2017-01-27 11:10:50 -05:00
microchipphy.h
migrate.h
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm-arch-hooks.h
mm.h powerpc: do not make the entire heap executable 2017-02-22 16:41:29 -08:00
mm_inline.h
mm_types.h
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm, page_alloc: fix check for NULL preferred_zone 2017-01-24 16:26:14 -08:00
mnt_namespace.h
mod_devicetable.h net: phy: Allow pre-declaration of MDIO devices 2017-02-07 10:51:46 -05:00
module.h This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config 2017-02-21 17:56:45 -08:00
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h genirq/msi: Add stubs for get_cached_msi_msg/pci_write_msi_msg 2017-02-16 15:32:19 +01:00
mutex.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
net.h
netdev_features.h net: remove support for per driver ndo_busy_poll() 2017-02-03 17:28:29 -05:00
netdevice.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next 2017-02-16 21:25:49 -05:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h nfs: Don't increment lock sequence ID after NFS4ERR_MOVED 2017-01-24 12:50:47 -05:00
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nl802154.h
nls.h
nmi.h kernel/watchdog: prevent false hardlockup on overloaded system 2017-01-24 16:26:14 -08:00
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme.h Merge branch 'for-4.11/next' into for-4.11/linus-merge 2017-02-17 14:08:19 -07:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h iommu: Remove iommu_register_instance interface 2017-02-10 14:54:37 +01:00
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
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-flags-layout.h
page-flags.h
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
pageblock-flags.h
pagemap.h mm: un-export wake_up_page functions 2017-02-22 16:41:29 -08:00
pagevec.h
parman.h lib: Introduce priority array area manager 2017-02-03 16:35:42 -05:00
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-dma.h
pci-ecam.h
pci.h device: Implement a bus agnostic dev_num_vf routine 2017-01-20 11:43:17 -05:00
pci_hotplug.h
pci_ids.h
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h percpu-refcount: fix reference leak during percpu-atomic transition 2017-01-28 07:49:42 -05:00
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h perf/core: Allow kernel filters on CPU events 2017-02-10 09:08:09 +01:00
perf_regs.h
personality.h
pfn.h
pfn_t.h dax: add tracepoints to dax_pmd_insert_mapping() 2017-02-22 16:41:26 -08:00
phonet.h
phy.h net: phy: Check phydev->drv 2017-02-20 10:15:11 -05:00
phy_fixed.h
phy_led_triggers.h net: phy: leds: Fix truncated LED trigger names 2017-01-25 14:40:19 -05:00
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm-trace.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Provide dummy governors if CONFIG_PM_GENERIC_DOMAINS=n 2017-02-09 14:29:27 +01:00
pm_opp.h PM / OPP: Expose _of_get_opp_desc_node as dev_pm_opp API 2017-02-09 22:52:17 +01:00
pm_qos.h PM / QoS: Remove unneeded linux/miscdevice.h include 2017-01-27 11:26:58 +01:00
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmem.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h timers/itimer: Convert internal cputime_t units to nsec 2017-02-01 09:13:55 +01:00
posix_acl.h
posix_acl_xattr.h
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pr.h
preempt.h
prefetch.h
printk.h
proc_fs.h
proc_ns.h
profile.h
projid.h
property.h device property: export code duplicating array of property entries 2017-02-07 13:21:15 +01:00
psci.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h ptr_ring: fix race conditions when resizing 2017-02-20 10:27:56 -05:00
ptrace.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h srcu: Force full grace-period ordering 2017-01-25 12:54:22 -08:00
rcutiny.h rcu: Abstract extended quiescent state determination 2017-01-23 11:44:18 -08:00
rcutree.h
rcuwait.h sched/wait, rcuwait: Fix typo in comment 2017-02-01 09:17:51 +01:00
reboot.h
reciprocal_div.h
refcount.h refcount_t: Introduce a special purpose refcount type 2017-02-10 09:04:19 +01:00
regmap.h Merge remote-tracking branches 'regmap/topic/doc' and 'regmap/topic/rbtree' into regmap-next 2017-02-03 12:34:59 +01:00
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable.h rhashtable: Add nested tables 2017-02-17 12:28:35 -05:00
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rmi.h
rndis.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h sbitmap: add helpers for dumping to a seq_file 2017-01-27 08:17:44 -07:00
scatterlist.h
scc.h
sched.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
sched_clock.h
scif.h
scpi_protocol.h
screen_info.h
sctp.h sctp: add support for generating stream reconf resp chunk 2017-02-19 18:17:59 -05:00
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
sed-opal.h block/sed-opal: allocate struct opal_dev dynamically 2017-02-17 12:41:47 -07:00
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h serdev: add a tty port controller driver 2017-02-03 10:17:02 +01:00
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support 2017-02-22 16:41:28 -08:00
shrinker.h
signal.h
signalfd.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h net/skbuff: Introduce skb_mac_offset() 2017-02-10 13:18:33 -05:00
slab.h slab: remove synchronous synchronize_sched() from memcg cache deactivation path 2017-02-22 16:41:27 -08:00
slab_def.h
slub_def.h slub: separate out sysfs_slab_release() from sysfs_slab_remove() 2017-02-22 16:41:27 -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.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h misc: sram: Introduce support code for protect-exec sram type 2017-01-25 11:48:03 +01:00
srcu.h srcu: Implement more-efficient reader counts 2017-01-25 12:53:20 -08:00
ssbi.h
stackdepot.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 net: stmmac: Remove the bus_setup function pointer 2017-02-08 15:11:22 -05:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swap.h
swap_cgroup.h
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h tcp: add tcp_mss_clamp() helper 2017-02-03 11:19:34 -05:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h
time64.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h time: Remove CONFIG_TIMER_STATS 2017-02-10 11:15:08 +01:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
trace.h
trace_clock.h
trace_events.h tracing: add __print_flags_u64() 2017-02-22 16:41:26 -08:00
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h tty_port: Add port client functions 2017-02-03 10:17:02 +01:00
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio.h
uio_driver.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
userfaultfd_k.h userfaultfd: non-cooperative: add madvise() event for MADV_DONTNEED request 2017-02-22 16:41:28 -08:00
util_macros.h
uts.h
utsname.h
uuid.h afs: Move UUID struct to linux/uuid.h 2017-02-10 16:34:17 +00:00
uwb.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h virtio_net: refactor freeze/restore logic into virtnet reset logic 2017-02-07 10:05:12 -05:00
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_net.h
virtio_ring.h
virtio_vsock.h
vlynq.h
vm_event_item.h mm, compaction: add vmstats for kcompactd work 2017-02-22 16:41:29 -08:00
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h vmw_vmci: switch to pci_irq_alloc_vectors 2017-02-03 11:49:06 +01:00
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h
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