twx-linux/include/linux
David Herrmann 40e041a2c8 shm: add sealing API
If two processes share a common memory region, they usually want some
guarantees to allow safe access. This often includes:
  - one side cannot overwrite data while the other reads it
  - one side cannot shrink the buffer while the other accesses it
  - one side cannot grow the buffer beyond previously set boundaries

If there is a trust-relationship between both parties, there is no need
for policy enforcement.  However, if there's no trust relationship (eg.,
for general-purpose IPC) sharing memory-regions is highly fragile and
often not possible without local copies.  Look at the following two
use-cases:

  1) A graphics client wants to share its rendering-buffer with a
     graphics-server. The memory-region is allocated by the client for
     read/write access and a second FD is passed to the server. While
     scanning out from the memory region, the server has no guarantee that
     the client doesn't shrink the buffer at any time, requiring rather
     cumbersome SIGBUS handling.
  2) A process wants to perform an RPC on another process. To avoid huge
     bandwidth consumption, zero-copy is preferred. After a message is
     assembled in-memory and a FD is passed to the remote side, both sides
     want to be sure that neither modifies this shared copy, anymore. The
     source may have put sensible data into the message without a separate
     copy and the target may want to parse the message inline, to avoid a
     local copy.

While SIGBUS handling, POSIX mandatory locking and MAP_DENYWRITE provide
ways to achieve most of this, the first one is unproportionally ugly to
use in libraries and the latter two are broken/racy or even disabled due
to denial of service attacks.

This patch introduces the concept of SEALING.  If you seal a file, a
specific set of operations is blocked on that file forever.  Unlike locks,
seals can only be set, never removed.  Hence, once you verified a specific
set of seals is set, you're guaranteed that no-one can perform the blocked
operations on this file, anymore.

An initial set of SEALS is introduced by this patch:
  - SHRINK: If SEAL_SHRINK is set, the file in question cannot be reduced
            in size. This affects ftruncate() and open(O_TRUNC).
  - GROW: If SEAL_GROW is set, the file in question cannot be increased
          in size. This affects ftruncate(), fallocate() and write().
  - WRITE: If SEAL_WRITE is set, no write operations (besides resizing)
           are possible. This affects fallocate(PUNCH_HOLE), mmap() and
           write().
  - SEAL: If SEAL_SEAL is set, no further seals can be added to a file.
          This basically prevents the F_ADD_SEAL operation on a file and
          can be set to prevent others from adding further seals that you
          don't want.

The described use-cases can easily use these seals to provide safe use
without any trust-relationship:

  1) The graphics server can verify that a passed file-descriptor has
     SEAL_SHRINK set. This allows safe scanout, while the client is
     allowed to increase buffer size for window-resizing on-the-fly.
     Concurrent writes are explicitly allowed.
  2) For general-purpose IPC, both processes can verify that SEAL_SHRINK,
     SEAL_GROW and SEAL_WRITE are set. This guarantees that neither
     process can modify the data while the other side parses it.
     Furthermore, it guarantees that even with writable FDs passed to the
     peer, it cannot increase the size to hit memory-limits of the source
     process (in case the file-storage is accounted to the source).

The new API is an extension to fcntl(), adding two new commands:
  F_GET_SEALS: Return a bitset describing the seals on the file. This
               can be called on any FD if the underlying file supports
               sealing.
  F_ADD_SEALS: Change the seals of a given file. This requires WRITE
               access to the file and F_SEAL_SEAL may not already be set.
               Furthermore, the underlying file must support sealing and
               there may not be any existing shared mapping of that file.
               Otherwise, EBADF/EPERM is returned.
               The given seals are _added_ to the existing set of seals
               on the file. You cannot remove seals again.

The fcntl() handler is currently specific to shmem and disabled on all
files. A file needs to explicitly support sealing for this interface to
work. A separate syscall is added in a follow-up, which creates files that
support sealing. There is no intention to support this on other
file-systems. Semantics are unclear for non-volatile files and we lack any
use-case right now. Therefore, the implementation is specific to shmem.

Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Acked-by: Hugh Dickins <hughd@google.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Ryan Lortie <desrt@desrt.ca>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Daniel Mack <zonque@gmail.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-08-08 15:57:31 -07:00
..
amba Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-06-10 10:28:45 -07:00
bcma bcma: use NS prefix for names of Northstar specific cores 2014-07-31 13:45:32 -04:00
byteorder include/linux/byteorder/generic.h: minor comment fix 2014-08-06 18:01:23 -07:00
can
ceph Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2014-06-12 23:06:23 -07:00
clk clk: Support for clock parents and rates assigned from device tree 2014-07-25 15:16:27 -07:00
crush
decompress initramfs: support initramfs that is bigger than 2GiB 2014-08-08 15:57:26 -07:00
dma
extcon extcon: sm5502: Change internal hardware switch according to cable type 2014-07-23 10:22:35 +09:00
fsl/bestcomm
gpio
hsi
i2c This pull-request contains some misplaced patches from Tony 2014-06-12 12:42:32 -07:00
iio Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
input
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:38:45 -07:00
isdn
lockd
mfd sound updates for 3.17-rc1 2014-08-06 20:07:24 -07:00
mlx4 net/mlx4_core: Use low memory profile on kdump kernel 2014-07-22 19:53:14 -07:00
mlx5 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
mmc
mtd MTD updates for 3.16: 2014-06-11 08:35:34 -07:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
phy phy: core: Let node ptr of PHY point to PHY and not of PHY provider 2014-07-22 12:46:11 +05:30
pinctrl
platform_data sound updates for 3.17-rc1 2014-08-06 20:07:24 -07:00
power
raid
regulator Merge remote-tracking branches 'regulator/topic/da9211', 'regulator/topic/getreg', 'regulator/topic/gpio' and 'regulator/topic/lp872x' into regulator-next 2014-08-05 18:29:21 +01:00
rtc
sched
spi Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
ssb ssb: extract power info from SPROM revs 4 and 5 2014-07-18 13:45:24 -04:00
sunrpc sched: Allow wait_on_bit_action() functions to support a timeout 2014-07-16 15:10:41 +02:00
unaligned
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-08-06 09:38:14 -07:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_pmtmr.h
acpi.h ACPICA: Linux: Allow ACPICA inclusion for CONFIG_ACPI=n builds. 2014-07-23 01:10:45 +02:00
adb.h
adfs_fs.h
aer.h x86/ras: Fix build warnings in <linux/aer.h> 2014-07-30 10:42:55 -07:00
agp_backend.h
agpgart.h
ahci_platform.h ata: libahci_platform: move port_map parameters into the AHCI structure 2014-07-30 15:39:46 -04:00
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h iommu/amd: Moving PPR fault flags macros definitions 2014-07-09 16:02:41 +02:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
arcdevice.h net: arcnet: Remove "#define bool int" 2014-07-07 21:34:43 -07:00
arm-cci.h
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_pwm.h
atmel_serial.h
atmel_tc.h
atmel-mci.h
atmel-pwm-bl.h
atmel-ssc.h ASoC: atmel_ssc_dai: enable fslen extension feature 2014-06-21 11:37:35 +01:00
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h
backlight.h
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h
bio.h block: add support for limiting gaps in SG lists 2014-06-24 16:22:24 -06:00
bit_spinlock.h
bitmap.h lib: bitmap: add missing mask in bitmap_andnot 2014-08-06 18:01:27 -07:00
bitops.h
bitrev.h
blk_types.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-06-12 10:30:18 -07:00
blk-iopoll.h
blk-mq.h blk-mq: bitmap tag: fix races on shared ::wake_index fields 2014-06-17 22:12:35 -07:00
blkdev.h block: add support for limiting gaps in SG lists 2014-06-24 16:22:24 -06:00
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.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
capability.h CAPABILITIES: remove undefined caps from all processes 2014-07-24 21:53:47 +10:00
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_subsys.h
cgroup.h cgroup: make CFTYPE_ONLY_ON_DFL and CFTYPE_NO_ internal to cgroup core 2014-07-15 11:05:10 -04:00
circ_buf.h
cleancache.h
clk-private.h
clk-provider.h clk: define and export clk_debugs_add_file 2014-07-02 16:15:55 -07:00
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clockchips.h
clocksource.h clocksource: Get rid of cycle_last 2014-07-23 15:01:52 -07:00
cm4000_cs.h
cma.h mm, CMA: change cma_declare_contiguous() to obey coding convention 2014-08-06 18:01:16 -07:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
com20020.h
compaction.h
compat.h
compiler-clang.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:18:49 -07:00
completion.h
component.h component: add support for component match array 2014-07-03 11:32:43 +01:00
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
cper.h trace, RAS: Add eMCA trace event interface 2014-06-25 13:26:47 -07:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq.h cpufreq: Introduce new relation for freq selection 2014-07-21 13:43:19 +02:00
cpuidle.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-06-09 18:10:34 -07:00
cpumask.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-06-12 14:27:40 -07:00
cpuset.h
cputime.h
crash_dump.h
crc7.h
crc8.h
crc16.h
crc32.h lib: crc32: Add some additional __pure annotations 2014-06-25 16:04:00 -07:00
crc32c.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h
crypto.h crypto: Resolve shadow warnings 2014-08-01 22:35:55 +08:00
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
cycx_x25.h
davinci_emac.h
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
dell-led.h
devfreq.h
device_cgroup.h
device-mapper.h
device.h IOMMU Updates for Linux v3.17 2014-08-05 15:59:35 -07:00
devpts_fs.h
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-buf.h dma-buf: add poll support, v3 2014-07-08 13:36:52 -07:00
dma-contiguous.h CMA: generalize CMA reserved area management functionality 2014-08-06 18:01:16 -07:00
dma-debug.h
dma-direction.h
dma-mapping.h
dmaengine.h dma: Support for 3 bytes word size 2014-07-04 18:55:13 +01:00
dmapool.h
dmar.h iommu/vt-d: Simplify include/linux/dmar.h 2014-07-23 16:04:47 +02:00
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
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
dw_dmac.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 efi: Update stale locking comment for struct efivars 2014-07-18 21:24:00 +01:00
efs_vh.h
eisa.h
elevator.h Revert "block: add __init to elv_register" 2014-06-22 16:34:11 -06:00
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 reservation: add suppport for read-only access using rcu 2014-07-08 13:41:08 -07:00
file.h
filter.h net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
fips.h
firewire.h
firmware-map.h
firmware.h firmware loader: inform direct failure when udev loader is disabled 2014-07-08 15:28:16 -07:00
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_stack.h
fs_struct.h
fs_uart_pd.h
fs.h mm: allow drivers to prevent new writable mappings 2014-08-08 15:57:31 -07:00
fscache-cache.h
fscache.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsnotify_backend.h fanotify: fix double free of pending permission events 2014-08-06 18:01:12 -07:00
fsnotify.h
ftrace_event.h tracing: Kill ftrace_event_call->files 2014-07-16 14:28:41 -04:00
ftrace_irq.h
ftrace.h ftrace: Rename ftrace_ops field from trampolines to nr_trampolines 2014-07-23 15:03:00 -04:00
futex.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm/page_alloc.c: add __meminit to alloc_pages_exact_nid() 2014-08-06 18:01:15 -07:00
glob.h lib: add lib/glob.c 2014-08-06 18:01:24 -07:00
goldfish.h
gpio_keys.h
gpio_mouse.h
gpio-fan.h
gpio-pxa.h
gpio.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 HID: lenovo: Add support for Compact (BT|USB) keyboard 2014-07-29 11:24:47 +02:00
hiddev.h
hidraw.h
highmem.h mm: BUG when __kmap_atomic_idx equals KM_TYPE_NR 2014-08-06 18:01:22 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h time: Consolidate the time accessor prototypes 2014-07-23 10:17:54 -07:00
htcpld.h
htirq.h
huge_mm.h mm: make copy_pte_range static again 2014-08-06 18:01:19 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h mm, hugetlb: remove hugetlb_zero and hugetlb_infinity 2014-08-06 18:01:19 -07:00
hw_breakpoint.h
hw_random.h hwrng: add per-device entropy derating 2014-07-15 04:49:40 -04:00
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
i2o.h
i7300_idle.h
i8042.h
i8253.h
i82593.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h mac80211: add TDLS QoS param IE on setup-confirm 2014-07-21 12:14:04 +02:00
if_arp.h
if_bridge.h bridge: export knowledge about the presence of IGMP/MLD queriers 2014-07-08 16:12:53 -07:00
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 ima: add support for measuring and appraising firmware 2014-07-25 11:47:46 -07:00
in6.h
in.h
inet_diag.h
inet_lro.h
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h rcu: Simplify priority boosting by putting rt_mutex in rcu_node 2014-07-09 09:15:01 -07:00
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel_mid_dma.h
intel_pmic_gpio.h
intel-iommu.h iommu/vt-d: Make use of IOMMU sysfs support 2014-07-04 12:35:59 +02:00
interrupt.h Merge commit '3cf2f34' into sched/core, to fix build error 2014-06-12 13:46:37 +02:00
interval_tree_generic.h
interval_tree.h
io-mapping.h
io.h of: Provide a function to request and map memory 2014-07-23 12:02:30 +02:00
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h iommu: Fix IOMMU sysfs stubs 2014-07-08 09:40:06 +02:00
ioport.h
ioprio.h
iova.h iommu/vt-d: Introduce helper function iova_size() to improve code readability 2014-07-23 16:04:47 +02:00
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h ipv6: Implement automatic flow label generation on transmit 2014-07-07 21:14:21 -07:00
irq_cpustat.h
irq_work.h irq_work: Implement remote queueing 2014-06-16 16:26:54 +02:00
irq.h genirq: generic chip: Export irq_map_generic_chip function 2014-07-17 13:30:00 +00:00
irqchip.h
irqdesc.h
irqdomain.h genirq: Export irq_domain_disassociate() to architecture interrupt drivers 2014-06-21 23:03:36 +02:00
irqflags.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h net: filter: split 'struct sk_filter' into socket and bpf parts 2014-08-02 15:03:58 -07:00
isdn.h
isdnif.h
isicom.h
jbd2.h
jbd_common.h
jbd.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.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_stat.h
kernel-page-flags.h
kernel.h panic: add TAINT_SOFTLOCKUP 2014-08-08 15:57:24 -07:00
kernelcapi.h
kernfs.h Merge branch 'for-3.16-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2014-07-10 11:38:23 -07:00
kexec.h
key-type.h KEYS: Allow expiry time to be set when preparsing a key 2014-07-22 21:46:08 +01:00
key.h Merge branch 'keys-fixes' into keys-next 2014-07-22 21:55:45 +01:00
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h klist: use same naming scheme as hlist for klist_add_after() 2014-08-06 18:01:24 -07:00
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h
kprobes.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:18:49 -07:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h kthread_work: remove the unused wait_queue_head 2014-07-28 14:16:30 -04:00
ktime.h time: Consolidate the time accessor prototypes 2014-07-23 10:17:54 -07:00
kvm_host.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:42:15 -07:00
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.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 libata: introduce ata_host->n_tags to avoid oops on SAS controllers 2014-07-23 10:30:34 -04:00
libfdt_env.h
libfdt.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h list: fix order of arguments for hlist_add_after(_rcu) 2014-08-06 18:01:24 -07:00
llc.h
llist.h
lockdep.h
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mailbox.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-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h include/linux/memblock.h: add __init to memblock_set_bottom_up() 2014-08-06 18:01:15 -07:00
memcontrol.h mm: memcontrol: use page lists for uncharge batching 2014-08-08 15:57:18 -07:00
memory_hotplug.h memory-hotplug: add zone_for_memory() for selecting zone for new memory 2014-08-06 18:01:21 -07:00
memory.h
mempolicy.h
mempool.h
memstick.h
mg_disk.h
mic_bus.h misc: mic: add a bus driver for virtual MIC devices 2014-07-11 18:27:56 -07:00
micrel_phy.h
migrate_mode.h
migrate.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types.h fork/exec: cleanup mm initialization 2014-08-08 15:57:23 -07:00
mm.h arm64,ia64,ppc,s390,sh,tile,um,x86,mm: remove default gate area 2014-08-08 15:57:27 -07:00
mman.h
mmdebug.h include/linux/mmdebug.h: add VM_WARN_ONCE() 2014-08-06 18:01:18 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h mmu_notifier: add call_srcu and sync function for listener to delay call and sync 2014-08-06 18:01:22 -07:00
mmzone.h mm: page_alloc: reduce cost of the fair zone allocation policy 2014-08-06 18:01:20 -07:00
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h Add module param type 'ullong' 2014-07-17 22:07:37 +02:00
mount.h
mpage.h
mpi.h
mpls.h
mroute6.h
mroute.h
msdos_fs.h
msg.h
msi.h PCI/MSI: Cache Multiple Message Capable in struct msi_desc 2014-07-03 16:55:07 -06:00
msm_mdp.h
mutex-debug.h
mutex.h arch, locking: Ciao arch_mutex_cpu_relax() 2014-07-17 12:32:47 +02:00
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mxm-wmi.h
n_r3964.h
namei.h
nbd.h
net.h
netdev_features.h openvswitch: Enable tunnel GSO for OVS bridge. 2014-07-24 01:15:04 -07:00
netdevice.h net: kernel-doc compliant documentation for net_device 2014-07-31 21:34:20 -07:00
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-06-12 10:30:18 -07:00
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h acpi, apei, ghes: Make NMI error notification to be GHES architecture extension. 2014-07-22 15:05:06 -07:00
node.h
nodemask.h mm, oom: ensure memoryless node zonelist always includes zones 2014-08-06 18:01:21 -07:00
notifier.h
nsc_gpio.h
nsproxy.h
ntb.h
nubus.h
numa.h
nvme.h NVMe: Fix hot cpu notification dead lock 2014-06-13 10:43:34 -04:00
nvram.h
nwpserial.h
nx842.h
of_address.h of: Provide a function to request and map memory 2014-07-23 12:02:30 +02:00
of_device.h
of_dma.h
of_fdt.h of: Add memory limiting function for flattened devicetrees 2014-07-29 21:26:45 -06:00
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h net: fix circular dependency in of_mdio code 2014-07-02 00:24:14 -07:00
of_mtd.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h
oid_registry.h pefile: Parse the "Microsoft individual code signing" data blob 2014-07-09 14:58:37 +01:00
olpc-ec.h
omap-dma.h MMC highlights for 3.16: 2014-06-10 14:35:22 -07:00
omap-dmaengine.h MMC highlights for 3.16: 2014-06-10 14:35:22 -07:00
omap-iommu.h iommu/omap: Remove virtual memory manager 2014-07-29 12:38:07 +02:00
omap-mailbox.h
omapfb.h
oom.h mm, oom: rename zonelist locking functions 2014-08-06 18:01:21 -07:00
openvswitch.h
oprofile.h
osq_lock.h locking/spinlocks/mcs: Introduce and use init macro and function for osq locks 2014-07-16 13:28:05 +02:00
oxu210hp.h
padata.h
page_cgroup.h memcg: remove lookup_cgroup_page() prototype 2014-08-08 15:57:18 -07:00
page-debug-flags.h
page-flags-layout.h
page-flags.h mm: page-flags: clean up the page flag test, set, clear macros 2014-08-06 18:01:17 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h mm: describe mmap_sem rules for __lock_page_or_retry() and callers 2014-08-06 18:01:20 -07: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 include guard to include/linux/pci_ids.h 2014-07-10 16:49:15 -06:00
pci-acpi.h ACPI / PM: Revork the handling of ACPI device wakeup notifications 2014-07-23 01:00:45 +02:00
pci-aspm.h
pci-ats.h
pci-dma.h
pci.h Char / Misc driver patches for 3.17-rc1 2014-08-04 17:32:24 -07:00
pcieport_if.h
pda_power.h
pe.h Provide PE binary definitions 2014-07-09 14:58:37 +01:00
percpu_counter.h
percpu_ida.h
percpu-defs.h Merge branch 'for-3.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-08-04 10:09:27 -07:00
percpu-refcount.h percpu-refcount: implement percpu_ref_reinit() and percpu_ref_is_zero() 2014-06-28 08:10:14 -04:00
percpu-rwsem.h
percpu.h percpu: move {raw|this}_cpu_*() definitions to include/linux/percpu-defs.h 2014-06-17 19:12:39 -04:00
perf_event.h
perf_regs.h
personality.h
pfn.h
phonedev.h
phonet.h
phy_fixed.h
phy.h net: libphy: Add phy specific function to access mmd phy registers 2014-07-30 20:00:21 -07:00
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pktcdvd.h
platform_device.h driver core: platform: add device binding path 'driver_override' 2014-07-08 15:31:26 -07:00
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h PM: Create PM workqueue if runtime PM is not configured too 2014-07-23 01:00:36 +02:00
pm_wakeup.h
pm.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h power_supply: Add inlmt,iterm, min/max temp props 2014-07-18 23:40:23 +02:00
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
preempt_mask.h
preempt.h
prefetch.h
printk.h printk: rename DEFAULT_MESSAGE_LOGLEVEL 2014-08-06 18:01:24 -07:00
prio_heap.h
proc_fs.h
proc_ns.h
profile.h
projid.h
proportions.h
pstore_ram.h
pstore.h
pti.h
ptp_classify.h ptp: Classify ptp over ip over vlan packets 2014-07-07 16:57:18 -07:00
ptp_clock_kernel.h
ptrace.h ptrace,x86: force IRET path after a ptrace_stop() 2014-07-03 17:27:23 -07:00
pvclock_gtod.h
pwm_backlight.h
pwm.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 RAS, debugfs: Add debugfs interface for RAS subsystem 2014-06-25 11:22:03 -07:00
ratelimit.h
rational.h
rbtree_augmented.h
rbtree.h
rculist_bl.h
rculist_nulls.h
rculist.h list: fix order of arguments for hlist_add_after(_rcu) 2014-08-06 18:01:24 -07:00
rcupdate.h rcu: Handle obsolete references to TINY_PREEMPT_RCU 2014-07-09 09:14:17 -07:00
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h regmap: Fix return code for stub regmap_get_device() 2014-07-25 19:01:53 +01:00
regset.h
relay.h
remoteproc.h
res_counter.h
reservation.h reservation: add suppport for read-only access using rcu 2014-07-08 13:41:08 -07:00
reset-controller.h
reset.h
resource.h
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h lib: Resizable, Scalable, Concurrent Hash Table 2014-08-02 19:49:38 -07:00
ring_buffer.h ring-buffer: Check if buffer exists before polling 2014-06-10 09:46:00 -04:00
rio_drv.h rapidio: add new RapidIO DMA interface routines 2014-08-08 15:57:24 -07:00
rio_ids.h
rio_regs.h
rio.h
rmap.h
rndis.h hyperv: Add handler for RNDIS_STATUS_NETWORK_CHANGE event 2014-06-19 21:17:37 -07:00
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h
rtmutex.h rtmutex: Confine deadlock logic to futex 2014-06-21 22:05:30 +02:00
rtnetlink.h bridge: fdb dumping takes a filter device 2014-07-10 12:37:33 -07:00
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem-spinlock.h locking/rwsem: Rename 'activity' to 'count' 2014-07-16 14:56:55 +02:00
rwsem.h locking/rwsem: Add CONFIG_RWSEM_SPIN_ON_OWNER 2014-07-16 14:57:13 +02:00
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h lib/scatterlist: make ARCH_HAS_SG_CHAIN an actual Kconfig 2014-08-08 15:57:26 -07:00
scc.h
sched_clock.h
sched.h shm: make exit_shm work proportional to task activity 2014-08-08 15:57:26 -07:00
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h seccomp: implement SECCOMP_FILTER_FLAG_TSYNC 2014-07-18 12:13:40 -07:00
securebits.h
security.h Merge branch 'stable-3.16' of git://git.infradead.org/users/pcmoore/selinux into next 2014-07-30 01:31:46 +10:00
selection.h
selinux.h
sem.h
semaphore.h
seq_file_net.h
seq_file.h
seqlock.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-05 17:46:42 -07:00
seqno-fence.h seqno-fence: Hardware dma-buf implementation of fencing (v6) 2014-07-08 12:50:59 -07:00
serial_8250.h serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers 2014-07-17 18:23:35 -07:00
serial_bcm63xx.h
serial_core.h Serial: allow port drivers to have a default attribute group 2014-07-17 18:21:21 -07:00
serial_max3100.h
serial_mfd.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
sfi_acpi.h ACPI / SFI: Fix wrong <acpi/acpi.h> inclusion in SFI/ACPI wrapper - table definitions. 2014-07-23 01:10:45 +02:00
sfi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h clocksource: shmobile: Remove unused sh_timer_config members 2014-07-02 16:01:51 +02:00
shdma-base.h
shm.h shm: remove unneeded extern for function 2014-08-08 15:57:26 -07:00
shmem_fs.h shm: add sealing API 2014-08-08 15:57:31 -07:00
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
slab_def.h
slab.h
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 iovec: move memcpy_from/toiovecend to lib/iovec.c 2014-06-27 11:47:58 -07:00
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 fs/splice.c: remove unneeded exports 2014-06-12 00:21:11 -04:00
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 net: stmmac: Support devicetree configs for mcast and ucast filter entries 2014-07-31 14:13:29 -07:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h PM / hibernate: introduce "nohibernate" boot parameter 2014-06-16 23:29:39 +02:00
svga.h
swab.h
swap.h mm: memcontrol: rewrite uncharge API 2014-08-08 15:57:17 -07:00
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
synclink.h
sys_soc.h
sys.h
syscalls.h Cleanups and bug fixes to /dev/random, add a new getrandom(2) system 2014-08-06 08:16:24 -07:00
syscore_ops.h
sysctl.h sysctl: remove typedef ctl_table 2014-08-08 15:57:24 -07:00
sysfs.h
syslog.h
sysrq.h
sysv_fs.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 tcp: add init_req method to tcp_request_sock_ops 2014-06-27 15:53:35 -07:00
tegra-ahb.h
tegra-cpuidle.h
tegra-powergate.h
tegra-soc.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-08-04 16:23:30 -07:00
tifm.h
timb_dma.h
timb_gpio.h
time64.h time: More core infrastructure for timespec64 2014-07-23 10:17:53 -07:00
time.h time: Consolidate the time accessor prototypes 2014-07-23 10:17:54 -07:00
timekeeper_internal.h timekeeping: Fixup typo in update_vsyscall_old definition 2014-07-30 09:26:25 +02:00
timekeeping.h timekeeping: Provide fast and NMI safe access to CLOCK_MONOTONIC 2014-07-23 15:01:55 -07:00
timer.h
timerfd.h timerfd: Implement timerfd_ioctl method to restore timerfd_ctx::ticks, v3 2014-07-18 11:49:57 +02:00
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm.h tpm: Provide a generic means to override the chip returned timeouts 2014-07-29 23:10:56 +02:00
trace_clock.h
trace_seq.h tracing: Add trace_seq_buffer_ptr() helper function 2014-07-01 07:13:39 -04:00
tracehook.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty_driver.h tty: Document locking for tty driver methods 2014-07-10 16:05:19 -07:00
tty_flip.h
tty_ldisc.h
tty.h drivers: tty: Merge alloc_tty_struct and initialize_tty_struct 2014-07-11 17:54:28 -07: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2014-06-28 09:43:58 -07:00
uprobes.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-06-12 19:18:49 -07:00
usb_usual.h usb-storage/SCSI: Add broken_fua blacklist flag 2014-06-30 22:47:18 -07:00
usb.h
usbdevice_fs.h
user_namespace.h proc: constify seq_operations 2014-08-08 15:57:22 -07:00
user-return-notifier.h
user.h
uts.h
utsname.h
uuid.h
uwb.h
verify_pefile.h pefile: Parse a PE binary to find a key and a signature contained therein 2014-07-09 14:58:37 +01:00
vermagic.h
vexpress.h
vfio.h drivers/vfio: EEH support for VFIO PCI device 2014-08-05 15:28:48 +10:00
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_ring.h
virtio_scsi.h
virtio.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h mm/vmalloc.c: clean up map_vm_area third argument 2014-08-06 18:01:19 -07:00
vme.h
vmpressure.h
vmstat.h
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 sched: Allow wait_on_bit_action() functions to support a timeout 2014-07-16 15:10:41 +02:00
wanrouter.h
watchdog.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h sched: Remove proliferation of wait_on_bit() action functions 2014-07-16 15:10:39 +02:00
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h mm/zbud: change zbud_alloc size type to size_t 2014-08-06 18:01:23 -07:00
zconf.h
zlib.h initramfs: support initramfs that is bigger than 2GiB 2014-08-08 15:57:26 -07:00
zorro.h
zpool.h mm/zpool: implement common zpool api to zbud/zsmalloc 2014-08-06 18:01:23 -07:00
zsmalloc.h
zutil.h