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
spi: pl022: Add support for chip select extension
2014-09-24 10:25:52 +01:00
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
crypto: ccp - Check for CCP before registering crypto algs
2014-09-24 14:23:34 +08:00
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
device coredump: add new device coredump class
2014-09-23 22:53:15 -07:00
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
ipack: save carrier owner to allow device to get it
2014-09-23 23:13:13 -07:00
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
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
mISDNdsp.h
mISDNhw.h
mISDNif.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
kvm: Fix page ageing bugs
2014-09-24 14:07:58 +02:00
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
uas: Add no-report-opcodes quirk
2014-09-23 21:40:48 -07:00
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