mirror-linux/include/linux
Dave Hansen fe3d197f84 x86, mpx: On-demand kernel allocation of bounds tables
This is really the meat of the MPX patch set.  If there is one patch to
review in the entire series, this is the one.  There is a new ABI here
and this kernel code also interacts with userspace memory in a
relatively unusual manner.  (small FAQ below).

Long Description:

This patch adds two prctl() commands to provide enable or disable the
management of bounds tables in kernel, including on-demand kernel
allocation (See the patch "on-demand kernel allocation of bounds tables")
and cleanup (See the patch "cleanup unused bound tables"). Applications
do not strictly need the kernel to manage bounds tables and we expect
some applications to use MPX without taking advantage of this kernel
support. This means the kernel can not simply infer whether an application
needs bounds table management from the MPX registers.  The prctl() is an
explicit signal from userspace.

PR_MPX_ENABLE_MANAGEMENT is meant to be a signal from userspace to
require kernel's help in managing bounds tables.

PR_MPX_DISABLE_MANAGEMENT is the opposite, meaning that userspace don't
want kernel's help any more. With PR_MPX_DISABLE_MANAGEMENT, the kernel
won't allocate and free bounds tables even if the CPU supports MPX.

PR_MPX_ENABLE_MANAGEMENT will fetch the base address of the bounds
directory out of a userspace register (bndcfgu) and then cache it into
a new field (->bd_addr) in  the 'mm_struct'.  PR_MPX_DISABLE_MANAGEMENT
will set "bd_addr" to an invalid address.  Using this scheme, we can
use "bd_addr" to determine whether the management of bounds tables in
kernel is enabled.

Also, the only way to access that bndcfgu register is via an xsaves,
which can be expensive.  Caching "bd_addr" like this also helps reduce
the cost of those xsaves when doing table cleanup at munmap() time.
Unfortunately, we can not apply this optimization to #BR fault time
because we need an xsave to get the value of BNDSTATUS.

==== Why does the hardware even have these Bounds Tables? ====

MPX only has 4 hardware registers for storing bounds information.
If MPX-enabled code needs more than these 4 registers, it needs to
spill them somewhere. It has two special instructions for this
which allow the bounds to be moved between the bounds registers
and some new "bounds tables".

They are similar conceptually to a page fault and will be raised by
the MPX hardware during both bounds violations or when the tables
are not present. This patch handles those #BR exceptions for
not-present tables by carving the space out of the normal processes
address space (essentially calling the new mmap() interface indroduced
earlier in this patch set.) and then pointing the bounds-directory
over to it.

The tables *need* to be accessed and controlled by userspace because
the instructions for moving bounds in and out of them are extremely
frequent. They potentially happen every time a register pointing to
memory is dereferenced. Any direct kernel involvement (like a syscall)
to access the tables would obviously destroy performance.

==== Why not do this in userspace? ====

This patch is obviously doing this allocation in the kernel.
However, MPX does not strictly *require* anything in the kernel.
It can theoretically be done completely from userspace. Here are
a few ways this *could* be done. I don't think any of them are
practical in the real-world, but here they are.

Q: Can virtual space simply be reserved for the bounds tables so
   that we never have to allocate them?
A: As noted earlier, these tables are *HUGE*. An X-GB virtual
   area needs 4*X GB of virtual space, plus 2GB for the bounds
   directory. If we were to preallocate them for the 128TB of
   user virtual address space, we would need to reserve 512TB+2GB,
   which is larger than the entire virtual address space today.
   This means they can not be reserved ahead of time. Also, a
   single process's pre-popualated bounds directory consumes 2GB
   of virtual *AND* physical memory. IOW, it's completely
   infeasible to prepopulate bounds directories.

Q: Can we preallocate bounds table space at the same time memory
   is allocated which might contain pointers that might eventually
   need bounds tables?
A: This would work if we could hook the site of each and every
   memory allocation syscall. This can be done for small,
   constrained applications. But, it isn't practical at a larger
   scale since a given app has no way of controlling how all the
   parts of the app might allocate memory (think libraries). The
   kernel is really the only place to intercept these calls.

Q: Could a bounds fault be handed to userspace and the tables
   allocated there in a signal handler instead of in the kernel?
A: (thanks to tglx) mmap() is not on the list of safe async
   handler functions and even if mmap() would work it still
   requires locking or nasty tricks to keep track of the
   allocation state there.

Having ruled out all of the userspace-only approaches for managing
bounds tables that we could think of, we create them on demand in
the kernel.

Based-on-patch-by: Qiaowei Ren <qiaowei.ren@intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: linux-mm@kvack.org
Cc: linux-mips@linux-mips.org
Cc: Dave Hansen <dave@sr71.net>
Link: http://lkml.kernel.org/r/20141114151829.AD4310DE@viggo.jf.intel.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2014-11-18 00:58:53 +01:00
..
amba
bcma bcma: register bcma as device tree driver 2014-09-30 13:17:14 -04:00
byteorder
can
ceph libceph: sync osd op definitions in rados.h 2014-10-14 12:57:02 -07:00
clk The clk tree changes for 3.18 are dominated by clock drivers. Mostly 2014-10-15 07:05:03 +02:00
crush
decompress
dma dmaengine: dw: export probe()/remove() and Co to users 2014-10-15 20:31:05 +05:30
extcon
fsl/bestcomm
gpio This is the bulk of GPIO changes for the v3.18 development 2014-10-09 14:58:15 -04:00
hsi
i2c
iio
input
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-09 06:42:04 -04:00
isdn
lockd
mfd Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2014-10-19 12:50:44 -07:00
mlx4 net/mlx4_en: Code cleanups in tx path 2014-10-06 01:04:15 -04:00
mlx5 Main set of InfiniBand/RDMA updates for 3.18 merge window: 2014-10-19 12:29:23 -07:00
mmc mmc: sdhci: Add quirk for always getting TC with stop cmd 2014-10-03 14:18:17 +02:00
mtd mtd: m25p80,spi-nor: Fix module aliases for m25p80 2014-10-21 13:46:03 -07:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
phy
pinctrl
platform_data Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2014-10-19 12:50:44 -07:00
power
raid
regulator regulator: Include err.h from consumer.h to fix build failure 2014-10-13 13:05:58 +02:00
rtc
sched
soc/ti drivers/soc: ti: fix build break with modules 2014-09-24 11:53:39 -07:00
spi Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-10-18 18:11:04 -07:00
ssb
sunrpc Merge branch 'for-3.18' of git://linux-nfs.org/~bfields/linux 2014-10-08 12:51:44 -04:00
unaligned
usb usbnet: add a callback for set_rx_mode 2014-10-28 17:26:19 -04:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2014-10-24 11:21:43 -07:00
acpi_dma.h
acpi_pmtmr.h
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-emulation.h
apm_bios.h
apple_bl.h
arcdevice.h
arm-cci.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
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 audit: Remove "weak" from audit_classify_compat_syscall() declaration 2014-10-22 16:14:03 -06:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h
backlight.h
balloon_compaction.h mm/balloon_compaction: add vmstat counters and kpageflags bit 2014-10-09 22:26:01 -04:00
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h
bio.h block: add bioset_create_nobvec() 2014-10-03 15:28:18 -06:00
bit_spinlock.h
bitmap.h
bitops.h
bitrev.h
blk-iopoll.h
blk-mq.h Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07:00
blk_types.h block: Remove REQ_KERNEL 2014-10-14 09:00:44 -06:00
blkdev.h SCSI for-linus on 20141102 2014-11-02 14:39:35 -08:00
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf.h bpf: verifier (add verifier core) 2014-09-26 15:05:15 -04:00
brcmphy.h net: phy: add BCM7425 and BCM7429 PHYs 2014-10-01 22:12:48 -04:00
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
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-private.h Allwinner Clocks Additions for 3.18 2014-09-27 12:52:33 -07:00
clk-provider.h Allwinner Clocks Additions for 3.18 2014-09-27 12:52:33 -07:00
clk.h The clk tree changes for 3.18 are dominated by clock drivers. Mostly 2014-10-15 07:05:03 +02:00
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h clocksource: Remove "weak" from clocksource_default_clock() declaration 2014-10-22 16:14:03 -06:00
cm4000_cs.h
cma.h mm, cma: make parameters order consistent in func declaration and definition 2014-10-27 13:00:55 +01:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
com20020.h ARCNET: add support for multi interfaces on com20020 2014-09-29 14:36:26 -04:00
compaction.h mm, compaction: khugepaged should not give up due to need_resched() 2014-10-09 22:25:54 -04:00
compat.h
compiler-clang.h
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles 2014-10-28 11:03:40 +01:00
compiler-gcc5.h compiler/gcc4+: Remove inaccurate comment about 'asm goto' miscompiles 2014-10-28 11:03:40 +01:00
compiler-intel.h
compiler.h
completion.h
component.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq-dt.h cpufreq: cpufreq-dt: extend with platform_data 2014-10-21 00:51:01 +02:00
cpufreq.h cpufreq: allow driver-specific data 2014-10-21 00:51:01 +02:00
cpuidle.h
cpumask.h
cpuset.h Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2014-10-10 07:24:40 -04:00
cputime.h
crash_dump.h vmcore: Remove "weak" from function declarations 2014-10-22 16:14:04 -06:00
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h block: Add T10 Protection Information functions 2014-09-27 09:14:59 -06:00
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dca.h
dcache.h don't need that forward declaration of struct nameidata in dcache.h anymore 2014-10-12 17:09:06 -04:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
dell-led.h
devcoredump.h
devfreq.h
device-mapper.h
device.h IOMMU Updates for Linux v3.18 2014-10-15 07:23:49 +02: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-attrs.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h
dma_remapping.h
dmaengine.h Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-10-18 18:11:04 -07:00
dmapool.h
dmar.h iommu/vt-d: Store bus information in RMRR PCI device path 2014-10-02 12:12:25 +02:00
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
ds1286.h
ds2782_battery.h
ds17287rtc.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h dynamic_debug: change __dynamic_<foo>_dbg return types to void 2014-10-03 14:55:48 -07:00
dynamic_queue_limits.h dql: dql_queued() should write first to reduce bus transactions 2014-09-29 00:04:55 -04:00
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h efi: Provide a non-blocking SetVariable() operation 2014-10-03 18:41:03 +01:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
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: handle pseudo BPF_LD_IMM64 insn 2014-09-26 15:05:15 -04: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 fonts: Add 6x10 font 2014-10-09 11:35:48 +03:00
freezer.h
frontswap.h
fs.h Return short read or 0 at end of a raw device, not EIO 2014-10-31 06:33:26 -04:00
fs_enet_pd.h net: fs_enet: Remove non NAPI RX 2014-10-08 16:01:41 -04:00
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h dmaengine: freescale: add and export fsl_dma_external_start() 2014-10-15 21:31:27 +05:30
fsnotify.h
fsnotify_backend.h
ftrace.h
ftrace_event.h
ftrace_irq.h
futex.h
gameport.h
gcd.h
genalloc.h lib/genalloc.c: add genpool range check function 2014-10-09 22:25:52 -04:00
genetlink.h
genhd.h
genl_magic_func.h genl_magic: Resolve logical-op warnings 2014-10-14 17:03:53 -04:00
genl_magic_struct.h
getcpu.h
gfp.h mm: rename allocflags_to_migratetype for clarity 2014-10-09 22:25:55 -04:00
glob.h
goldfish.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.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 Merge branches 'for-3.18/always-poll-quirk', 'for-3.18/logitech', 'for-3.18/picolcd', 'for-3.18/rmi', 'for-3.18/sony', 'for-3.18/uhid', 'for-3.18/upstream' and 'for-3.18/wacom' into for-linus 2014-10-06 23:34:40 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h mm: convert a few VM_BUG_ON callers to VM_BUG_ON_VMA 2014-10-09 22:25:57 -04:00
hugetlb.h
hugetlb_cgroup.h
hugetlb_inline.h
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: move acpi code back into the core 2014-09-25 16:07:15 +02:00
i2o.h
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.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 macvlan: add source mode 2014-09-29 15:37:01 -04:00
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
in.h
in6.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h IOMMU Updates for Linux v3.18 2014-10-15 07:23:49 +02:00
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
ipv6_route.h
irq.h
irq_cpustat.h
irq_work.h
irqchip.h
irqdesc.h ACPI and power management updates for 3.18-rc1 2014-10-09 16:07:43 -04:00
irqdomain.h
irqflags.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
jbd.h
jbd2.h
jbd_common.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kcmp.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-23 14:45:09 -07:00
kernel_stat.h
kernelcapi.h isdn/capi: correct capi20_manufacturer argument type mismatch 2014-10-14 15:05:34 -04:00
kernfs.h
kexec.h kexec: take the segment adding out of locate_mem_hole functions 2014-10-14 02:18:21 +02:00
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h kgdb: Remove "weak" from kgdb_arch_pc() declaration 2014-10-22 16:14:04 -06:00
khugepaged.h mm, thp: fix collapsing of hugepages on madvise 2014-10-29 16:33:14 -07:00
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h kvm: vfio: fix unregister kvm_device_ops of vfio 2014-10-24 13:30:47 +02:00
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
leds_pwm.h
lglock.h
lguest.h
lguest_launcher.h
libata.h
libfdt.h
libfdt_env.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h list: include linux/kernel.h 2014-10-14 02:18:13 +02:00
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
llc.h
llist.h
lockdep.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 15:51:40 +02:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mailbox_client.h mailbox: Introduce framework for mailbox 2014-10-08 10:39:41 +05:30
mailbox_controller.h mailbox: Introduce framework for mailbox 2014-10-08 10:39:41 +05:30
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h mei: remove include to pci header from mei module files 2014-09-29 11:56:02 -04:00
memblock.h
memcontrol.h mm: memcontrol: fix missed end-writeback page accounting 2014-10-29 16:33:15 -07:00
memory.h memory-hotplug: Remove "weak" from memory_block_size_bytes() declaration 2014-10-22 16:14:04 -06:00
memory_hotplug.h memory-hotplug: add sysfs valid_zones attribute 2014-10-09 22:25:52 -04:00
mempolicy.h mempolicy: unexport get_vma_policy() and remove its "task" arg 2014-10-09 22:25:56 -04:00
mempool.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h net/phy: micrel: Add clock support for KSZ8021/KSZ8031 2014-10-10 15:35:13 -04:00
migrate.h mm/balloon_compaction: redesign ballooned pages management 2014-10-09 22:26:01 -04:00
migrate_mode.h
mii.h
miscdevice.h
mm.h x86, mpx: Introduce VM_MPX to indicate that a VMA is MPX specific 2014-11-18 00:58:53 +01:00
mm_inline.h
mm_types.h x86, mpx: On-demand kernel allocation of bounds tables 2014-11-18 00:58:53 +01:00
mman.h
mmdebug.h mm: introduce VM_BUG_ON_MM 2014-10-09 22:25:58 -04:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: clean up zone flags 2014-10-09 22:25:57 -04:00
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h kernel/param: consolidate __{start,stop}___param[] in <linux/moduleparam.h> 2014-10-14 02:18:28 +02:00
mount.h vfs: introduce clone_private_mount() 2014-10-24 00:14:36 +02:00
mpage.h
mpi.h
mpls.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h PCI/MSI: Remove "pos" from the struct msi_desc msi_attrib 2014-10-01 12:21:23 -06:00
msm_mdp.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nbd.h
net.h
netdev_features.h
netdevice.h net: Add ndo_gso_check 2014-10-15 12:11:00 -04:00
netfilter.h
netfilter_bridge.h netfilter: bridge: move br_netfilter out of the core 2014-09-26 18:42:31 +02:00
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
nfs_fs.h Merge branch 'for-3.18/core' of git://git.kernel.dk/linux-block 2014-10-18 11:53:51 -07:00
nfs_fs_i.h
nfs_fs_sb.h NFS: Implement SEEK 2014-09-30 16:24:56 -04:00
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h Merge branch 'client-4.2' into linux-next 2014-09-30 17:22:02 -04:00
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h kernel/watchdog.c: control hard lockup detection default 2014-10-14 02:18:27 +02:00
node.h
nodemask.h
notifier.h
nsc_gpio.h
nsproxy.h
ntb.h
nubus.h
numa.h
nvme.h
nvram.h
nwpserial.h
nx842.h
of.h of: Fix overflow bug in string property parsing functions 2014-11-04 10:19:48 +00:00
of_address.h of/pci: Fix the conversion of IO ranges into IO resources 2014-09-30 17:08:40 -06:00
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_mtd.h
of_net.h
of_pci.h of/pci: Add support for parsing PCI host bridge resources from DT 2014-09-30 17:08:57 -06:00
of_pdt.h
of_platform.h
of_reserved_mem.h drivers: of: add return value to of_reserved_mem_device_init() 2014-10-29 16:33:14 -07:00
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-iommu.h
omap-mailbox.h
omapfb.h
oom.h OOM, PM: OOM killed task shouldn't escape PM suspend 2014-10-21 23:44:21 +02:00
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page-debug-flags.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_cgroup.h
pageblock-flags.h
pagemap.h mm/balloon_compaction: remove balloon mapping and flag AS_BALLOON_MAP 2014-10-09 22:26:01 -04:00
pagevec.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h PCI: Don't oops on virtual buses in acpi_pci_get_bridge_handle() 2014-11-05 13:06:16 -07:00
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h PCI changes for the v3.18 merge window: 2014-10-09 15:03:49 -04:00
pci_hotplug.h
pci_ids.h Changes to existing drivers: 2014-10-15 06:58:16 +02:00
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h Merge branch 'for-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-10 07:26:02 -04:00
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h
perf_regs.h
personality.h
pfn.h
phonet.h
phy.h
phy_fixed.h net: phy: adjust fixed_phy_register() return value 2014-10-07 13:06:45 -04:00
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pktcdvd.h
pl320-ipc.h mailbox: rename pl320-ipc specific mailbox.h 2014-10-08 10:39:33 +05:30
platform_device.h
plist.h
pm.h Merge branch 'pm-domains' 2014-10-07 01:18:12 +02:00
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Rename cpu_data to cpuidle_data 2014-10-03 15:43:14 +02:00
pm_opp.h
pm_qos.h PM / QoS: Add PM_QOS_MEMORY_BANDWIDTH class 2014-09-25 01:18:33 +02:00
pm_runtime.h
pm_wakeup.h
pmu.h
pnfs_osd_xdr.h Boaz Harrosh - Fix broken email address 2014-10-19 20:22:32 +03:00
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
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
preempt.h
preempt_mask.h
prefetch.h
printk.h
proc_fs.h
proc_ns.h
profile.h
projid.h
proportions.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.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: add comment to rb_insert_augmented() 2014-10-14 02:18:21 +02:00
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h rcu: Provide counterpart to rcu_dereference() for non-RCU situations 2014-10-28 18:25:17 -04:00
rcutiny.h
rcutree.h
reboot.h kernel: add support for kernel restart handler call chain 2014-09-26 00:00:06 -07:00
reciprocal_div.h
regmap.h
regset.h
relay.h
remoteproc.h
res_counter.h
reservation.h
reset-controller.h
reset.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm: convert a few VM_BUG_ON callers to VM_BUG_ON_VMA 2014-10-09 22:25:57 -04: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
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 16:23:15 +02:00
sched_clock.h
screen_info.h include/linux/screen_info.h: remove unused ORIG_* macros 2014-10-09 22:26:04 -04:00
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2014-10-12 10:13:55 -04:00
selection.h
selinux.h
sem.h
semaphore.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serial.h
serial_8250.h tty: serial: 8250: use 32bit variable for rpm_tx_active 2014-09-29 18:20:38 -07:00
serial_bcm63xx.h
serial_core.h tty: serial: 8250_core: allow to set ->throttle / ->unthrottle callbacks 2014-09-26 18:01:56 +02:00
serial_max3100.h
serial_mfd.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
shrinker.h
signal.h signal: use BUILD_BUG() instead of _NSIG_WORDS_is_unsupported_size() 2014-10-14 02:18:20 +02:00
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h net: skb_fclone_busy() needs to detect orphaned skb 2014-10-30 19:58:30 -04:00
slab.h mm/sl[ao]b: always track caller in kmalloc_(node_)track_caller() 2014-10-09 22:25:50 -04:00
slab_def.h mm/slab: use percpu allocator for cpu cache 2014-10-09 22:25:51 -04:00
slub_def.h
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
srcu.h
ssbi.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h This adds a memzero_explicit() call which is guaranteed not to be 2014-10-24 12:33:32 -07:00
string_helpers.h lib / string_helpers: introduce string_escape_mem() 2014-10-14 02:18:26 +02:00
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h ACPI / sleep: Rework the handling of ACPI GPE wakeup from suspend-to-idle 2014-09-30 21:06:07 +02:00
svga.h
swab.h
swap.h mm: memcontrol: fix transparent huge page allocations under pressure 2014-10-09 22:25:59 -04:00
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
synclink.h
sys.h
sys_soc.h
syscalls.h bpf: enable bpf syscall on x64 and i386 2014-09-26 15:05:14 -04:00
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h block: Add T10 Protection Information functions 2014-09-27 09:14:59 -06:00
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-10-08 21:40:54 -04:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h Thermal: introduce INT3402 thermal driver 2014-10-10 14:02:25 +08:00
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h misc: st_kim: Increase size of dev_name buffer to incorporate termination 2014-09-26 08:15:29 +01:00
tick.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-10-14 03:47:00 +02:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time64.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h topology: add support for node_to_mem_node() to determine the fallback node 2014-10-09 22:25:51 -04:00
torture.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_seq.h
tracehook.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h tty: Fix width of unsigned long bitfield padding 2014-09-25 12:17:25 +02: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 Add copy_to_iter(), copy_from_iter() and iov_iter_zero() 2014-10-09 02:39:03 -04:00
uio_driver.h uio: Export definition of struct uio_device 2014-10-02 21:35:54 -07:00
uprobes.h uprobes: Remove "weak" from function declarations 2014-10-22 16:14:04 -06:00
usb.h usb: Add LED triggers for USB activity 2014-09-25 17:05:12 +02:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.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-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h virtio: defer config changed notifications 2014-10-15 10:24:56 +10:30
virtio_caif.h
virtio_config.h virtio: add API to enable VQs early 2014-10-15 10:25:01 +10:30
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_scsi.h
vlynq.h
vm_event_item.h mm/balloon_compaction: add vmstat counters and kpageflags bit 2014-10-09 22:26:01 -04:00
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-10-13 16:23:15 +02:00
wanrouter.h
watchdog.h watchdog: simplify definitions of WATCHDOG_NOWAYOUT(_INIT_STATUS)? 2014-10-20 20:46:25 +02:00
wireless.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 zsmalloc: change return value unit of zs_get_total_size_bytes 2014-10-09 22:26:02 -04:00
zutil.h