linux-uconsole/include/uapi/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
..
byteorder
caif caif: Remove my bouncing email address. 2013-04-23 13:25:51 -04:00
can can: netlink: Add CAN_CTRLMODE_PRESUME_ACK flag 2014-07-15 09:34:19 +02:00
cifs cifs: Move and expand MAX_SERVER_SIZE definition 2013-09-08 14:34:22 -05:00
dvb [media] demux.h: Remove duplicated enum 2013-04-08 06:53:15 -03:00
genwqe GenWQE: Update author information 2014-09-23 23:15:46 -07:00
hdlc
hsi
isdn
mmc
netfilter netfilter: fix wrong arithmetics regarding NFT_REJECT_ICMPX_MAX 2014-10-07 20:16:31 +02:00
netfilter_arp uapi: netfilter_arp: use __u8 instead of u_int8_t 2014-08-20 15:13:08 +02:00
netfilter_bridge netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv4 netfilter: kill ulog targets 2014-06-25 19:28:43 +02:00
netfilter_ipv6 netfilter: fix struct ip6t_frag field description 2013-04-02 12:25:57 +02:00
nfsd nfsd: allow turning off nfsv3 readdir_plus 2014-08-18 15:12:14 -04:00
raid md: discard PRINT_RAID_DEBUG ioctl 2014-10-14 13:08:29 +11:00
spi spi: spidev: Add support for Dual/Quad SPI Transfers 2014-02-27 13:51:29 +09:00
sunrpc
tc_act net_sched: act: pick a different type for act_xt 2014-01-16 17:24:11 -08:00
tc_ematch
usb usb: gadget: f_fs: virtual endpoint address mapping 2014-09-16 09:58:21 -05:00
wimax uapi: Convert some uses of 6 to ETH_ALEN 2013-08-02 12:33:54 -07:00
a.out.h
acct.h UAPI: fix endianness conditionals in linux/acct.h 2013-03-13 15:21:48 -07:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h UAPI: fix endianness conditionals in linux/aio_abi.h 2013-03-13 15:21:48 -07:00
apm_bios.h apm-emulation: add hibernation APM events to support suspend2disk 2014-01-07 13:50:28 +01:00
arcfb.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
audit.h Merge git://git.infradead.org/users/eparis/audit 2014-10-19 16:25:56 -07:00
auto_fs.h unbreak automounter support on 64-bit kernel with 32-bit userspace (v2) 2013-02-08 20:42:18 +01:00
auto_fs4.h
auxvec.h powerpc: Add HWCAP2 aux entry 2013-04-26 16:08:16 +10:00
ax25.h
b1lli.h
baycom.h
bcache.h bcache: Add bch_btree_keys_u64s_remaining() 2014-01-08 13:05:13 -08:00
bcm933xx_hcs.h MIPS: BCM63XX: recognize Cable Modem firmware format 2013-07-01 15:10:53 +02:00
bfs_fs.h
binfmts.h
blkpg.h
blktrace_api.h
bpf.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpf_common.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
bpqether.h
bsg.h block SG_IO: add SG_FLAG_Q_AT_HEAD flag 2014-07-01 10:48:05 -06:00
btrfs.h btrfs: create sprout should rename fsid on the sysfs as well 2014-06-28 13:48:44 -07:00
can.h can: unify identifiers to ensure unique include processing 2014-05-19 09:38:24 +02:00
capability.h audit: add netlink audit protocol bind to check capabilities on multicast join 2014-04-22 21:42:27 -04:00
capi.h isdn: capi: fix "CAPI_VERSION" comment 2014-03-20 14:55:18 +01:00
cciss_defs.h
cciss_ioctl.h
cdrom.h libata: identify and init ZPODD devices 2013-01-21 15:40:35 -05:00
cgroupstats.h
chio.h
cm4000_cs.h Omnikey Cardman 4000: pull in ioctl.h in user header 2013-08-28 19:26:38 -07:00
cn_proc.h connector: Added coredumping event to the process connector 2013-03-20 13:23:21 -04:00
coda.h
coda_psdev.h
coff.h
connector.h Drivers: hv: Add a new driver to support host initiated backup 2013-03-15 12:12:36 -07:00
const.h linux/const.h: Add _BITUL() and _BITULL() 2013-06-25 15:50:04 -07:00
cramfs_fs.h
cuda.h
cyclades.h
cycx_cfm.h
dcbnl.h dcbnl : Fix misleading dcb_app->priority explanation 2014-07-30 17:21:05 -07:00
dccp.h
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm: allow active and inactive tables to share dm_devs 2014-10-05 20:03:35 -04:00
dm-log-userspace.h dm log userspace: allow mark requests to piggyback on flush requests 2014-01-21 23:46:27 -05:00
dn.h include/uapi/linux/dn.h: pull in ioctl.h header 2014-01-23 16:36:55 -08:00
dqblk_xfs.h quota: Add a new quotactl command Q_XGETQSTATV 2013-08-20 16:53:58 -05:00
edd.h
efs_fs_sb.h
elf-em.h next: openrisc: Fix build 2014-09-26 14:53:23 -04:00
elf-fdpic.h
elf.h s390: add support for vector extension 2014-10-09 09:14:13 +02:00
elfcore.h
errno.h
errqueue.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
ethtool.h ethtool: Ethtool parameter to dynamically change tx_copybreak 2014-10-06 01:04:16 -04:00
eventpoll.h epoll: drop EPOLLWAKEUP if PM_SLEEP is disabled 2013-12-03 15:35:52 +01:00
fadvise.h
falloc.h fs: Introduce FALLOC_FL_ZERO_RANGE flag for fallocate 2014-03-13 19:07:42 +11:00
fanotify.h
fb.h
fcntl.h shm: add sealing API 2014-08-08 15:57:31 -07:00
fd.h floppy: bail out in open() if drive is not responding to block0 read 2014-01-17 11:12:06 +01:00
fdreg.h
fib_rules.h fib_rules: fix suppressor names and default values 2013-08-03 10:40:23 -07:00
fiemap.h ext4: add support for extent pre-caching 2013-08-16 22:05:14 -04:00
filter.h net: filter: move common defines into bpf_common.h 2014-10-14 16:06:45 -04:00
firewire-cdev.h firewire: fix libdc1394/FlyCap2 iso event regression 2013-07-27 20:24:36 +02:00
firewire-constants.h
flat.h
fou.h gue: Receive side for Generic UDP Encapsulation 2014-10-03 16:53:33 -07:00
fs.h vfs: add RENAME_WHITEOUT 2014-10-24 00:14:37 +02:00
fsl_hypervisor.h
fuse.h fuse: add FUSE_NO_OPEN_SUPPORT flag to INIT 2014-07-22 16:37:43 +02:00
futex.h
gameport.h
gen_stats.h net_sched: add 64bit rate estimators 2013-06-11 02:51:03 -07:00
genetlink.h genetlink/pmcraid: use proper genetlink multicast API 2013-11-28 18:26:30 -05:00
gfs2_ondisk.h GFS2: remove transaction glock 2014-05-14 10:04:34 +01:00
gigaset_dev.h
hash_info.h crypto: provide single place for hash algo information 2013-10-25 17:14:03 -04:00
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h
hpet.h
hsr_netlink.h net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0) 2013-11-03 23:20:14 -05:00
hw_breakpoint.h
hyperv.h Drivers: hv: util: Properly pack the data for file copy functionality 2014-09-23 23:31:21 -07:00
hysdn_if.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h i8k: uapi: Introduce define for new highest fan speed 2014-07-09 16:41:36 -07:00
icmp.h
icmpv6.h ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO 2013-09-03 22:11:44 -04:00
if.h net: move net_device priv_flags out from UAPI 2014-02-27 15:59:09 -05:00
if_addr.h ipv6 addrconf: add IFA_F_NOPREFIXROUTE flag to suppress creation of IP6 routes 2014-01-15 17:00:40 -08:00
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h net: if_arp: add ARPHRD_6LOWPAN type 2013-12-11 12:57:55 -08:00
if_bonding.h bonding: modify the old and add new xmit hash policies 2013-10-03 15:36:38 -04:00
if_bridge.h uapi: Convert some uses of 6 to ETH_ALEN 2013-08-02 12:33:54 -07:00
if_cablemodem.h if_cablemodem.h: Add parenthesis around ioctl macros 2013-05-08 13:13:30 -07:00
if_eql.h
if_ether.h net: dsa: reduce number of protocol hooks 2014-08-27 22:59:39 -07:00
if_fc.h
if_fddi.h FDDI: Reformat <linux/if_fddi.h> for 8-character tabs 2014-04-27 19:08:06 -04:00
if_frad.h
if_hippi.h
if_infiniband.h
if_link.h macvlan: add source mode 2014-09-29 15:37:01 -04:00
if_ltalk.h
if_packet.h packet: remove deprecated syststamp timestamp 2014-07-29 11:39:50 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h pptp: fix byte order warnings 2013-08-13 15:10:22 -07:00
if_slip.h
if_team.h
if_tun.h tun: Get skfilter layout 2013-08-21 12:21:45 -07:00
if_tunnel.h ip_tunnel: Add GUE support 2014-10-03 16:53:33 -07:00
if_vlan.h net/8021q: Implement Multiple VLAN Registration Protocol (MVRP) 2013-02-10 20:37:22 -05:00
if_x25.h
igmp.h
in.h ipv4: yet another new IP_MTU_DISCOVER option IP_PMTUDISC_OMIT 2014-02-26 15:51:00 -05:00
in6.h net: reallocate new socket option number for IPV6_AUTOFLOWLABEL 2014-08-06 15:25:01 -07:00
in_route.h
inet_diag.h net: tcp: add DCTCP congestion control algorithm 2014-09-29 00:13:10 -04:00
inotify.h
input.h HID: add keyboard input assist hid usages 2014-10-20 21:03:58 +02:00
ioctl.h
ip.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2013-08-26 16:37:08 -04:00
ip6_tunnel.h
ip_vs.h ipvs: Add destination address family to netlink interface 2014-09-16 09:03:33 +09:00
ipc.h
ipmi.h ipmi: remove superfluous kernel/userspace explanation 2013-02-27 19:10:21 -08:00
ipmi_msgdefs.h
ipsec.h
ipv6.h ipv6: Allow accepting RA from local IP addresses. 2014-07-01 12:16:24 -07:00
ipv6_route.h
ipx.h
irda.h
irqnr.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
iso_fs.h
ivtv.h
ivtvfb.h
ixjuser.h
jffs2.h
joystick.h
Kbuild Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2014-10-21 13:06:38 -07:00
kd.h
kdev_t.h
kernel-page-flags.h mm/balloon_compaction: add vmstat counters and kpageflags bit 2014-10-09 22:26:01 -04:00
kernel.h
kernelcapi.h
kexec.h kexec: implementation of new syscall kexec_file_load 2014-08-08 15:57:32 -07:00
keyboard.h
keyctl.h KEYS: Add per-user_namespace registers for persistent per-UID kerberos caches 2013-09-24 10:35:19 +01:00
kvm.h KVM: device: add simple registration mechanism for kvm_device_ops 2014-09-17 13:10:08 +02:00
kvm_para.h MIPS: Add functions for hypervisor call 2014-05-30 21:01:11 +02:00
l2tp.h l2tp: Add support for zero IPv6 checksums 2014-05-23 16:28:53 -04:00
libc-compat.h xattr: guard against simultaneous glibc header inclusion 2014-04-03 16:21:06 -07:00
limits.h
llc.h
loop.h
lp.h
magic.h Btrfs: add tests for find_lock_delalloc_range 2013-11-11 21:56:51 -05:00
major.h mtd: Move major number definitions to major.h 2013-11-06 23:32:59 -08:00
map_to_7segment.h
matroxfb.h
mdio.h
media.h [media] media: Add pad flag MEDIA_PAD_FL_MUST_CONNECT 2013-12-04 14:59:20 -02:00
mei.h
memfd.h shm: add memfd_create() syscall 2014-08-08 15:57:31 -07:00
mempolicy.h
meye.h [media] meye: convert to the control framework 2013-02-05 18:23:47 -02:00
mic_common.h misc: mic: Fix endianness issues. 2013-11-27 11:03:38 -08:00
mic_ioctl.h misc: mic: fix possible signed underflow (undefined behavior) in userspace API 2014-02-07 15:30:34 -08:00
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mpls.h UAPI: add MPLS label stack definition 2014-03-04 13:51:06 -05:00
mqueue.h uapi: Use __kernel_long_t in struct mq_attr 2014-01-20 14:45:33 -08:00
mroute.h mcast: add multicast proxy support (IPv4 and IPv6) 2013-01-21 13:55:14 -05:00
mroute6.h mcast: add multicast proxy support (IPv4 and IPv6) 2013-01-21 13:55:14 -05:00
msdos_fs.h fatfs: add FAT_IOCTL_GET_VOLUME_ID 2013-07-09 10:33:25 -07:00
msg.h uapi: Use __kernel_long_t in struct msgbuf 2014-01-20 14:44:50 -08:00
mtio.h
n_r3964.h
nbd.h nbd: support FLUSH requests 2013-02-27 19:10:22 -08:00
ncp.h
ncp_fs.h
ncp_mount.h
ncp_no.h
neighbour.h bridge: Add bridge ifindex to bridge fdb notify msgs 2014-06-02 17:58:55 -07:00
net.h
net_dropmon.h
net_tstamp.h net-timestamp: ACK timestamp for bytestreams 2014-08-05 16:35:54 -07:00
netconf.h netconf: rename PROXY_ARP to NEIGH_PROXY 2013-12-22 18:02:43 -05:00
netdevice.h net: add name_assign_type netdev attribute 2014-07-15 16:12:01 -07:00
netfilter.h netfilter: nf_tables: add "inet" table for IPv4/IPv6 2014-01-07 23:57:25 +01:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: mmaped netlink: ring setup 2013-04-19 14:57:57 -04:00
netlink_diag.h diag: warn about missing first netlink attribute 2013-11-28 18:16:43 -05:00
netrom.h
nfc.h NFC: Add RAW socket type support for SOCKPROTO_RAW 2014-05-20 00:06:04 +02:00
nfs.h
nfs2.h
nfs3.h
nfs4.h uapi: convert u64 to __u64 in exported headers 2014-01-23 16:36:55 -08:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h NFS: stop using NFS_MOUNT_SECFLAVOUR server flag 2013-10-28 15:37:56 -04:00
nfsacl.h
nl80211.h cfg80211: allow requesting SMPS mode on ap start 2014-09-11 13:37:02 +02:00
nubus.h
nvme.h NVMe: Define Log Page constants 2014-06-13 10:53:49 -04:00
nvram.h
omap3isp.h
omapfb.h
oom.h
openvswitch.h openvswitch: Add support for Geneve tunneling. 2014-10-06 00:32:21 -04:00
packet_diag.h diag: warn about missing first netlink attribute 2013-11-28 18:16:43 -05:00
param.h
parport.h
patchkey.h
pci.h
pci_regs.h Merge branches 'pci/aer' and 'pci/virtualization' into next 2014-10-01 12:30:58 -06:00
perf_event.h perf: Fix typos in sample code in the perf_event.h header 2014-10-28 10:51:02 +01:00
personality.h
pfkeyv2.h ipsec: add support of limited SA dump 2014-02-17 07:18:19 +01:00
pg.h
phantom.h
phonet.h
pkt_cls.h net: sched: cls_bpf: add BPF-based classifier 2013-10-29 17:33:17 -04:00
pkt_sched.h net: pkt_sched: PIE AQM scheme 2014-01-06 15:13:01 -05:00
pktcdvd.h
pmu.h
poll.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h include/uapi/linux/ppp-ioctl.h: pull in ppp_defs.h 2014-01-23 16:36:55 -08:00
ppp_defs.h
pps.h
prctl.h x86, mpx: On-demand kernel allocation of bounds tables 2014-11-18 00:58:53 +01:00
psci.h ARM/ARM64: KVM: Add common header for PSCI related defines 2014-04-30 04:18:57 -07:00
ptp_clock.h ptp: introduce programmable pins. 2014-03-21 14:21:13 -04:00
ptrace.h ptrace: add ability to get/set signal-blocked mask 2013-07-03 16:08:01 -07:00
qnx4_fs.h
qnxtypes.h
quota.h
radeonfb.h
random.h random: introduce getrandom(2) system call 2014-08-05 16:41:22 -04:00
raw.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h xattr: Constify ->name member of "struct xattr". 2013-07-25 19:30:03 +10:00
resource.h uapi: Use __kernel_long_t/__kernel_ulong_t in <linux/resource.h> 2014-01-20 14:44:17 -08:00
rfkill.h rfkill: Add NFC to the list of supported radios 2013-04-12 16:54:38 +02:00
romfs_fs.h
rose.h
route.h
rtc.h
rtnetlink.h tcp: introduce a per-route knob for quick ack 2013-06-19 23:06:51 -07:00
scc.h
sched.h sched: Update comments for CLONE_NEWNS 2014-10-28 10:46:08 +01:00
screen_info.h
sctp.h net: sctp: implement rfc6458, 8.1.31. SCTP_DEFAULT_SNDINFO support 2014-07-16 14:40:04 -07:00
sdla.h
seccomp.h seccomp: implement SECCOMP_FILTER_FLAG_TSYNC 2014-07-18 12:13:40 -07:00
securebits.h
selinux_netlink.h
sem.h
serial.h
serial_core.h ARM: meson: serial: add MesonX SoC on-chip uart driver 2014-09-08 16:12:40 -07:00
serial_reg.h serial/uart/8250: Add tunable RX interrupt trigger I/F of FIFO buffers 2014-07-17 18:23:35 -07:00
serio.h Input: add support for Wacom protocol 4 serial tablets 2014-07-20 14:33:23 -07:00
shm.h ipc,shm: document new limits in the uapi header 2014-06-06 16:08:14 -07:00
signal.h unify SS_ONSTACK/SS_DISABLE definitions 2012-12-19 18:07:39 -05:00
signalfd.h
smiapp.h [media] smiapp: Add driver-specific test pattern menu item definitions 2014-08-21 15:25:11 -05:00
snmp.h tcp: snmp stats for Fast Open, SYN rtx, and data pkts 2014-03-03 15:58:03 -05:00
sock_diag.h
socket.h
sockios.h net_tstamp: Add SIOCGHWTSTAMP ioctl to match SIOCSHWTSTAMP 2013-11-19 19:07:21 +00:00
som.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h
stddef.h
string.h
suspend_ioctls.h
swab.h
synclink.h
sysctl.h ipv6: Allow accepting RA from local IP addresses. 2014-07-01 12:16:24 -07:00
sysinfo.h
target_core_user.h target: Add a user-passthrough backstore 2014-10-03 11:15:20 -07:00
taskstats.h
tcp.h tcp: add pacing_rate information into tcp_info 2014-02-14 16:09:43 -05:00
tcp_metrics.h tcp: switch rtt estimations to usec resolution 2014-02-26 17:08:40 -05:00
telephony.h
termios.h
time.h timekeeping: Add CLOCK_TAI clockid 2013-03-22 16:19:59 -07:00
times.h
timex.h uapi: Use __kernel_long_t in struct timex 2014-01-20 14:44:05 -08:00
tiocl.h
tipc.h tipc: add ioctl to fetch link names 2014-04-26 12:13:24 -04:00
tipc_config.h tipc: bump max configurable window size 2014-06-25 18:03:41 -07:00
toshiba.h
tty.h
tty_flags.h
types.h
udf_fs_i.h
udp.h net: Make enabling of zero UDP6 csums more restrictive 2014-05-23 16:28:53 -04:00
uhid.h HID: uhid: report to user-space whether reports are numbered 2014-08-25 03:28:08 -05:00
uinput.h Input: uinput - add UI_GET_VERSION ioctl 2014-07-21 14:30:42 -07:00
uio.h
ultrasound.h
un.h
unistd.h
unix_diag.h diag: warn about missing first netlink attribute 2013-11-28 18:16:43 -05:00
usbdevice_fs.h usbfs: Add support for allocating / freeing streams 2014-03-04 15:38:05 -08:00
usbip.h usbip: move usbip kernel code out of staging 2014-08-25 10:40:06 -07:00
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h [media] v4l2-common.h: remove __user annotation in struct v4l2_edid 2014-04-16 18:20:02 -03:00
v4l2-controls.h [media] v4l: Add camera pan/tilt speed controls 2014-09-21 20:23:39 -03:00
v4l2-dv-timings.h Revert "[media] v4l2-dv-timings: fix a sparse warning" 2014-10-24 08:58:09 -02:00
v4l2-mediabus.h [media] v4l: Add 12-bit YUV 4:2:2 media bus pixel codes 2014-05-13 13:48:29 -03:00
v4l2-subdev.h [media] v4l: Add support for DV timings ioctls on subdev nodes 2014-05-25 12:47:55 -03:00
veth.h
vfio.h vfio/iommu_type1: add new VFIO_TYPE1_NESTING_IOMMU IOMMU type 2014-09-29 10:06:19 -06:00
vhost.h tcm_vhost: header split up 2013-05-02 13:40:15 +03:00
videodev2.h [media] v4l: Add ARGB555X and XRGB555X pixel formats 2014-09-21 20:28:32 -03:00
virtio_9p.h
virtio_balloon.h virtio: do not export "u16" and "u64" to userspace 2013-04-02 16:42:58 +10:30
virtio_blk.h include/uapi/linux/virtio_blk.h: introduce feature of VIRTIO_BLK_F_MQ 2014-07-01 10:51:01 -06:00
virtio_config.h virtio: VIRTIO_F_ANY_LAYOUT feature 2013-07-09 10:47:45 +09:30
virtio_console.h Simple warning fix for module sections. If too late to pull, no big deal. 2013-07-03 13:09:06 -07:00
virtio_ids.h caif_virtio: Introduce caif over virtio 2013-03-20 14:06:06 +10:30
virtio_net.h uapi: Convert some uses of 6 to ETH_ALEN 2013-08-02 12:33:54 -07:00
virtio_pci.h virtio_pci: better macro exported in uapi 2013-05-20 12:08:09 +09:30
virtio_ring.h
virtio_rng.h
vm_sockets.h VSOCK: Split vm_sockets.h into kernel/uapi 2013-03-08 12:24:48 -05:00
vsp1.h [media] v4l: vsp1: Add LUT support 2013-12-11 09:25:20 -02:00
vt.h
wait.h
wanrouter.h wanrouter: delete now orphaned header content, files/drivers 2013-01-31 19:56:35 -05:00
watchdog.h
wil6210_uapi.h wil6210: atomic I/O for the card memory 2014-10-02 14:23:14 -04:00
wimax.h
wireless.h
x25.h
xattr.h xattr: fix check for simultaneous glibc header inclusion 2014-08-29 16:28:16 -07:00
xfrm.h xfrm: configure policy hash table thresholds by netlink 2014-09-02 13:37:56 +02:00
zorro.h zorro/UAPI: Use proper types (endianness/size) in <linux/zorro.h> 2013-11-26 11:09:09 +01:00
zorro_ids.h zorro/UAPI: Disintegrate include/linux/zorro*.h 2013-11-26 11:09:08 +01:00