mirror-linux/include/uapi/linux
Mike Rapoport 1507f51255 mm: introduce memfd_secret system call to create "secret" memory areas
Introduce "memfd_secret" system call with the ability to create memory
areas visible only in the context of the owning process and not mapped not
only to other processes but in the kernel page tables as well.

The secretmem feature is off by default and the user must explicitly
enable it at the boot time.

Once secretmem is enabled, the user will be able to create a file
descriptor using the memfd_secret() system call.  The memory areas created
by mmap() calls from this file descriptor will be unmapped from the kernel
direct map and they will be only mapped in the page table of the processes
that have access to the file descriptor.

Secretmem is designed to provide the following protections:

* Enhanced protection (in conjunction with all the other in-kernel
  attack prevention systems) against ROP attacks.  Seceretmem makes
  "simple" ROP insufficient to perform exfiltration, which increases the
  required complexity of the attack.  Along with other protections like
  the kernel stack size limit and address space layout randomization which
  make finding gadgets is really hard, absence of any in-kernel primitive
  for accessing secret memory means the one gadget ROP attack can't work.
  Since the only way to access secret memory is to reconstruct the missing
  mapping entry, the attacker has to recover the physical page and insert
  a PTE pointing to it in the kernel and then retrieve the contents.  That
  takes at least three gadgets which is a level of difficulty beyond most
  standard attacks.

* Prevent cross-process secret userspace memory exposures.  Once the
  secret memory is allocated, the user can't accidentally pass it into the
  kernel to be transmitted somewhere.  The secreremem pages cannot be
  accessed via the direct map and they are disallowed in GUP.

* Harden against exploited kernel flaws.  In order to access secretmem,
  a kernel-side attack would need to either walk the page tables and
  create new ones, or spawn a new privileged uiserspace process to perform
  secrets exfiltration using ptrace.

The file descriptor based memory has several advantages over the
"traditional" mm interfaces, such as mlock(), mprotect(), madvise().  File
descriptor approach allows explicit and controlled sharing of the memory
areas, it allows to seal the operations.  Besides, file descriptor based
memory paves the way for VMMs to remove the secret memory range from the
userspace hipervisor process, for instance QEMU.  Andy Lutomirski says:

  "Getting fd-backed memory into a guest will take some possibly major
  work in the kernel, but getting vma-backed memory into a guest without
  mapping it in the host user address space seems much, much worse."

memfd_secret() is made a dedicated system call rather than an extension to
memfd_create() because it's purpose is to allow the user to create more
secure memory mappings rather than to simply allow file based access to
the memory.  Nowadays a new system call cost is negligible while it is way
simpler for userspace to deal with a clear-cut system calls than with a
multiplexer or an overloaded syscall.  Moreover, the initial
implementation of memfd_secret() is completely distinct from
memfd_create() so there is no much sense in overloading memfd_create() to
begin with.  If there will be a need for code sharing between these
implementation it can be easily achieved without a need to adjust user
visible APIs.

The secret memory remains accessible in the process context using uaccess
primitives, but it is not exposed to the kernel otherwise; secret memory
areas are removed from the direct map and functions in the
follow_page()/get_user_page() family will refuse to return a page that
belongs to the secret memory area.

Once there will be a use case that will require exposing secretmem to the
kernel it will be an opt-in request in the system call flags so that user
would have to decide what data can be exposed to the kernel.

Removing of the pages from the direct map may cause its fragmentation on
architectures that use large pages to map the physical memory which
affects the system performance.  However, the original Kconfig text for
CONFIG_DIRECT_GBPAGES said that gigabyte pages in the direct map "...  can
improve the kernel's performance a tiny bit ..." (commit 00d1c5e057
("x86: add gbpages switches")) and the recent report [1] showed that "...
although 1G mappings are a good default choice, there is no compelling
evidence that it must be the only choice".  Hence, it is sufficient to
have secretmem disabled by default with the ability of a system
administrator to enable it at boot time.

Pages in the secretmem regions are unevictable and unmovable to avoid
accidental exposure of the sensitive data via swap or during page
migration.

Since the secretmem mappings are locked in memory they cannot exceed
RLIMIT_MEMLOCK.  Since these mappings are already locked independently
from mlock(), an attempt to mlock()/munlock() secretmem range would fail
and mlockall()/munlockall() will ignore secretmem mappings.

However, unlike mlock()ed memory, secretmem currently behaves more like
long-term GUP: secretmem mappings are unmovable mappings directly consumed
by user space.  With default limits, there is no excessive use of
secretmem and it poses no real problem in combination with
ZONE_MOVABLE/CMA, but in the future this should be addressed to allow
balanced use of large amounts of secretmem along with ZONE_MOVABLE/CMA.

A page that was a part of the secret memory area is cleared when it is
freed to ensure the data is not exposed to the next user of that page.

The following example demonstrates creation of a secret mapping (error
handling is omitted):

	fd = memfd_secret(0);
	ftruncate(fd, MAP_SIZE);
	ptr = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE,
		   MAP_SHARED, fd, 0);

[1] https://lore.kernel.org/linux-mm/213b4567-46ce-f116-9cdf-bbd0c884eb3c@linux.intel.com/

[akpm@linux-foundation.org: suppress Kconfig whine]

Link: https://lkml.kernel.org/r/20210518072034.31572-5-rppt@kernel.org
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Hagen Paul Pfeifer <hagen@jauu.net>
Acked-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christopher Lameter <cl@linux.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Elena Reshetova <elena.reshetova@intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Palmer Dabbelt <palmerdabbelt@google.com>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Roman Gushchin <guro@fb.com>
Cc: Shakeel Butt <shakeelb@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tycho Andersen <tycho@tycho.ws>
Cc: Will Deacon <will@kernel.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: kernel test robot <lkp@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-07-08 11:48:21 -07:00
..
android binder: tell userspace to dump current backtrace when detected oneway spamming 2021-04-10 10:52:04 +02:00
byteorder
caif
can can: isotp: add SF_BROADCAST support for functional addressing 2020-12-10 09:31:40 +01:00
cifs cifs: Set witness notification handler for messages from userspace daemon 2020-12-14 09:16:22 -06:00
dvb media: dvb header files: move some headers to staging 2021-06-04 08:07:30 +02:00
genwqe
hdlc
hsi
iio iio: buffer: add ioctl() to support opening extra buffers for IIO device 2021-03-11 20:47:05 +00:00
isdn
misc bcm-vk: add bcm_vk UAPI 2021-01-25 18:44:44 +01:00
mmc
netfilter netfilter: nf_tables: add last expression 2021-06-17 03:23:00 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd UAPI: nfsfh.h: Replace one-element array with flexible-array member 2021-03-31 15:59:14 -04:00
raid
sched sched/uclamp: Allow to reset a task uclamp constraint value 2020-11-19 11:25:47 +01:00
spi spi: Add SPI_NO_TX/RX support 2020-12-28 14:21:31 +00:00
sunrpc
surface_aggregator platform/surface: aggregator_cdev: Allow enabling of events from user-space 2021-06-16 17:47:53 +02:00
tc_act
tc_ematch
usb usb: webcam: Invalid size of Processing Unit Descriptor 2021-03-18 09:02:27 +01:00
a.out.h
acct.h
acrn.h virt: acrn: Introduce irqfd 2021-02-09 10:58:19 +01:00
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.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 audit: remove trailing spaces and tabs 2021-06-10 20:59:05 -04:00
auto_dev-ioctl.h
auto_fs.h
auto_fs4.h
auxvec.h uapi/auxvec: Define the aux vector AT_MINSIGSTKSZ 2021-05-19 11:40:15 +02:00
ax25.h
batadv_packet.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
batman_adv.h batman-adv: Drop publication years from copyright info 2021-02-06 09:22:10 +01:00
baycom.h
bcache.h bcache: introduce BCH_FEATURE_INCOMPAT_LOG_LARGE_BUCKET_SIZE for large bucket 2021-01-09 09:21:03 -07:00
bcm933xx_hcs.h
bfs_fs.h
binfmts.h binfmt_misc: pass binfmt_misc flags to the interpreter 2021-02-15 18:28:30 +01:00
blkpg.h block: update a few comments in uapi/linux/blkpg.h 2021-04-02 11:18:30 -06:00
blktrace_api.h
blkzoned.h
bpf.h bpf: Support socket migration by eBPF. 2021-06-15 18:01:06 +02:00
bpf_common.h
bpf_perf_event.h
bpfilter.h
bpqether.h
bsg.h
bt-bmc.h
btf.h bpf: Add BTF_KIND_FLOAT to uapi 2021-03-04 17:58:15 -08:00
btrfs.h btrfs: fix typos in comments 2021-06-22 14:11:57 +02:00
btrfs_tree.h btrfs: fix typos in comments 2021-06-22 14:11:57 +02:00
can.h can: uapi: introduce CANFD_FDF flag for mixed content in struct canfd_frame 2021-05-27 09:42:21 +02:00
capability.h capabilities: require CAP_SETFCAP to map uid 0 2021-04-20 14:28:33 -07:00
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h media: v4l: uapi: ccs: Add CCS controls for shading correction 2021-01-12 17:31:14 +01:00
cdrom.h
cec-funcs.h media: uapi/linux/cec-funcs.h: set delay to 1 if unnused 2021-06-02 14:08:09 +02:00
cec.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h fs, close_range: add flag CLOSE_RANGE_CLOEXEC 2020-12-04 12:06:15 +01:00
cm4000_cs.h
cn_proc.h
coda.h
coff.h
connector.h
const.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
coresight-stm.h
cramfs_fs.h
cryptouser.h
cuda.h
cxl_mem.h cxl/pci: Add media provisioning required commands 2021-06-14 23:54:53 -07:00
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Allow setting parent node of rate objects 2021-06-02 14:08:37 -07:00
dlm.h
dlm_device.h
dlm_netlink.h
dlm_plock.h
dlmconstants.h
dm-ioctl.h dm ioctl: return UUID in DM_LIST_DEVICES_CMD result 2021-03-26 14:53:41 -04:00
dm-log-userspace.h
dma-buf.h
dma-heap.h
dn.h
dns_resolver.h
dqblk_xfs.h quota: report warning limits for realtime space quotas 2021-03-18 17:03:54 +01:00
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS) 2021-04-13 17:31:44 +01:00
errno.h
errqueue.h
erspan.h
ethtool.h net: fix mistake path for netdev_features_strings 2021-06-17 11:32:50 -07:00
ethtool_netlink.h ethtool: Document correct attribute type 2021-06-22 10:40:54 -07:00
eventpoll.h
f2fs.h f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE 2020-12-03 00:12:08 -08:00
fadvise.h
falloc.h
fanotify.h
fb.h
fcntl.h
fd.h floppy: cleanups: remove trailing whitespaces 2021-04-20 08:59:03 -06:00
fdreg.h
fib_rules.h
fiemap.h
filter.h
firewire-cdev.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
firewire-constants.h
fou.h
fpga-dfl.h
fs.h block: uapi: fix comment about block device ioctl 2021-05-10 09:26:18 -06:00
fscrypt.h fscrypt: remove kernel-internal constants from UAPI header 2020-11-16 11:41:12 -08:00
fsi.h
fsl_hypervisor.h
fsl_mc.h bus: fsl-mc: add fsl-mc userspace support 2021-01-27 15:13:52 +01:00
fsmap.h
fsverity.h fs-verity: support reading signature with ioctl 2021-02-07 14:51:19 -08:00
fuse.h virtiofs: propagate sync() to file server 2021-06-22 09:15:35 +02:00
futex.h futex: Provide FUTEX_LOCK_PI2 to support clock selection 2021-06-22 16:42:09 +02:00
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h gfs2: Add trusted xattr support 2021-02-08 13:01:24 +01:00
gpio.h gpio: uapi: use the preferred SPDX license identifier 2021-02-15 11:43:33 +01:00
gsmmux.h
gtp.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h HID: hidraw: Add additional hidraw input/output report ioctls. 2020-11-27 15:48:31 +01:00
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h i2c: remove licence boilerplate from i2c-dev UAPI header 2021-01-22 09:58:57 +01:00
i2c.h i2c: uapi: add macro to describe support for all SMBus transfers 2021-01-22 09:59:00 +01:00
i2o-dev.h
i8k.h
icmp.h icmp: fix lib conflict with trinity 2021-06-03 15:31:34 -07:00
icmpv6.h ICMPV6: add support for RFC 8335 PROBE 2021-03-30 13:29:39 -07:00
idxd.h dmaengine: idxd: fix delta_rec and crc size field for completion record 2021-04-12 13:26:03 +05:30
if.h
if_addr.h
if_addrlabel.h
if_alg.h crypto: af_alg - avoid undefined behavior accessing salg_name 2020-11-06 14:29:11 +11:00
if_arcnet.h
if_arp.h
if_bonding.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
if_bridge.h net: bridge: mcast: add ip4+ip6 mcast router timers to mdb netlink 2021-05-13 14:04:31 -07:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h FDDI: if_fddi.h: Update my e-mail address 2021-03-10 12:45:16 -08:00
if_hippi.h
if_infiniband.h
if_link.h rtnetlink: add IFLA_PARENT_[DEV|DEV_BUS]_NAME 2021-06-12 13:16:45 -07:00
if_ltalk.h
if_macsec.h
if_packet.h net/packet: make packet_fanout.arr size configurable up to 64K 2020-11-09 16:41:40 -08:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h
if_tun.h
if_tunnel.h Revert "GTP: add support for flow based tunneling API" 2021-02-04 09:29:57 -08:00
if_vlan.h
if_x25.h
if_xdp.h
ife.h
igmp.h
ila.h
in.h icmp: don't send out ICMP messages with a source address of 0.0.0.0 2021-06-18 12:13:24 -07:00
in6.h
in_route.h
inet_diag.h
inotify.h
input-event-codes.h HID: hid-input: add mapping for emoji picker key 2021-05-05 14:31:05 +02:00
input.h include/linux: remove repeated words 2021-02-26 09:41:03 -08:00
io_uring.h io_uring: simplify struct io_uring_sqe layout 2021-06-30 14:15:39 -06:00
ioctl.h
iommu.h iommu/vt-d: Enable write protect propagation from guest 2021-03-18 11:42:46 +01:00
ip.h
ip6_tunnel.h
ip_vs.h
ipc.h
ipmi.h
ipmi_bmc.h
ipmi_msgdefs.h
ipsec.h
ipv6.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
ipv6_route.h
ipx.h
irqnr.h
iso_fs.h
isst_if.h
ivtv.h
ivtvfb.h
jffs2.h
joystick.h
kcm.h
kcmp.h
kcov.h
kd.h console: Delete unused con_font_copy() callback implementations 2020-11-16 16:27:03 +01:00
kdev_t.h
kernel-page-flags.h
kernel.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
kernelcapi.h
kexec.h RISC-V: Add EM_RISCV to kexec UAPI header 2021-04-26 08:25:20 -07:00
keyboard.h
keyctl.h
kfd_ioctl.h drm/amdkfd: add ioctl to configure and query xnack retries 2021-04-20 21:47:48 -04:00
kvm.h KVM/arm64 updates for v5.14. 2021-06-25 11:24:24 -04:00
kvm_para.h KVM: X86: Introduce KVM_HC_MAP_GPA_RANGE hypercall 2021-06-17 14:25:39 -04:00
l2tp.h net: l2tp: reduce log level of messages in receive path, add counter instead 2021-03-03 16:55:02 -08:00
landlock.h landlock: Enable user space to infer supported features 2021-04-22 12:22:11 -07:00
libc-compat.h
lightnvm.h lightnvm: remove duplicate include in lightnvm.h 2021-04-13 09:16:12 -06:00
limits.h
lirc.h media: lirc: remove out of date comment 2021-05-21 15:03:50 +02:00
llc.h
loop.h
lp.h
lwtunnel.h
magic.h mm: introduce memfd_secret system call to create "secret" memory areas 2021-07-08 11:48:21 -07:00
major.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
map_to_7segment.h uapi: map_to_7segment: Remove licence boilerplate 2021-03-24 08:26:29 +01:00
matroxfb.h
max2175.h
mdio.h net: phy: add constants for 2.5G and 5G speed in PCS speed register 2021-04-08 13:15:33 -07:00
media-bus-format.h media updates for v5.11-rc1 2020-12-14 11:47:37 -08:00
media.h media: uapi: Add an entity type for Image Signal Processors 2021-01-12 17:05:37 +01:00
mei.h
membarrier.h
memfd.h
mempolicy.h mm/mempolicy: don't handle MPOL_LOCAL like a fake MPOL_PREFERRED policy 2021-06-30 20:47:29 -07:00
meye.h
mii.h
minix_fs.h
mman.h
mmtimer.h
module.h
mount.h mount: Support "nosymfollow" in new mount api 2021-06-01 12:09:27 +02:00
mpls.h
mpls_iptunnel.h
mptcp.h mptcp: add csum_enabled in mptcp_sock 2021-06-18 11:40:11 -07:00
mqueue.h
mroute.h
mroute6.h uapi: move constants from <linux/kernel.h> to <linux/const.h> 2020-12-15 12:13:36 -08:00
mrp_bridge.h net: mrp: move struct definitions out of uapi 2021-01-23 12:38:42 -08:00
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h
ncsi.h
ndctl.h
neighbour.h
net.h Revert "net: add pf_family_names[] for protocol family" 2021-06-18 13:02:45 -07:00
net_dropmon.h
net_namespace.h
net_tstamp.h
netconf.h
netdevice.h
netfilter.h
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink: simplify NLMSG_DATA with NLMSG_HDRLEN 2021-06-10 12:51:33 -07:00
netlink_diag.h
netrom.h
nexthop.h nexthop: Add netlink defines and enumerators for resilient NH groups 2021-03-11 16:12:59 -08:00
nfc.h
nfs.h
nfs2.h
nfs3.h NFSD: Update the SETATTR3args decoder to use struct xdr_stream 2021-01-25 09:36:25 -05:00
nfs4.h treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
nfs4_mount.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfsacl.h
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211.h cfg80211: allow advertising vendor-specific capabilities 2021-06-23 13:05:09 +02:00
nsfs.h
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED 2021-01-04 11:42:26 -05:00
openvswitch.h net: openvswitch: fix TTL decrement action netlink message format 2020-11-27 11:03:06 -08:00
packet_diag.h
param.h
parport.h
patchkey.h
pci.h
pci_regs.h pci-v5.11-changes 2020-12-15 16:49:59 -08:00
pcitest.h
perf_event.h Merge branch 'for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-05-21 06:12:52 -10:00
personality.h
pfkeyv2.h
pg.h
phantom.h
phonet.h
pidfd.h
pkt_cls.h net/sched: act_police: add support for packet-per-second policing 2021-03-13 14:18:09 -08:00
pkt_sched.h sch_htb: Hierarchical QoS hardware offload 2021-01-22 20:41:29 -08:00
pktcdvd.h
pmu.h
poll.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
ppdev.h
ppp-comp.h
ppp-ioctl.h ppp: Fix PPPIOCUNBRIDGECHAN request number 2020-12-21 17:36:48 -08:00
ppp_defs.h
pps.h
pr.h
prctl.h sched: prctl() core-scheduling interface 2021-05-12 11:43:31 +02:00
psample.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-03-25 15:31:22 -07:00
psci.h
psp-sev.h
ptp_clock.h
ptrace.h rseq, ptrace: Add PTRACE_GET_RSEQ_CONFIGURATION request 2021-03-17 16:15:39 +01:00
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h
rds.h
reboot.h
reiserfs_fs.h
reiserfs_xattr.h
remoteproc_cdev.h
resource.h
rfkill.h rfkill: revert back to old userspace API by default 2021-04-08 10:14:45 +02:00
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rkisp1: uapi: document which flags/structs relate to statistics config 2021-04-06 10:29:56 +02:00
romfs_fs.h
rose.h
route.h
rpl.h uapi: fix big endian definition of ipv6_rpl_sr_hdr 2021-01-25 15:14:16 -08:00
rpl_iptunnel.h
rpmsg.h rpmsg: Add short description of the IOCTL defined in UAPI. 2021-03-17 14:16:26 -05:00
rpmsg_types.h rpmsg: Introduce __rpmsg{16|32|64} types 2020-11-24 10:10:59 -06:00
rseq.h
rtc.h rtc: introduce features bitfield 2021-01-16 23:19:26 +01:00
rtnetlink.h Add Open Routing Protocol ID to `rtnetlink.h` 2021-03-24 16:31:23 -07:00
rxrpc.h
scc.h
sched.h
scif_ioctl.h
screen_info.h
sctp.h sctp: add SCTP_PLPMTUD_PROBE_INTERVAL sockopt for sock/asoc/transport 2021-06-22 11:28:51 -07:00
seccomp.h seccomp: Support atomic "addfd + send reply" 2021-06-28 12:49:52 -07:00
securebits.h
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h seg6: add support for SRv6 End.DT46 Behavior 2021-06-18 11:35:47 -07:00
selinux_netlink.h
sem.h
serial.h tty: cyclades, remove this orphan 2021-03-10 09:34:06 +01:00
serial_core.h tty: serial: Drop unused efm32 serial driver 2021-01-15 17:14:49 +01:00
serial_reg.h
serio.h
shm.h
signal.h
signalfd.h signalfd: Remove SIL_PERF_EVENT fields from signalfd_siginfo 2021-05-18 16:20:54 -05:00
smc.h net/smc: Add netlink support for SMC fallback statistics 2021-06-16 12:54:02 -07:00
smc_diag.h
smiapp.h
snmp.h tcp: Add stats for socket migration. 2021-06-23 12:56:08 -07:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h uapi: fix statx attribute value overlap for DAX & MOUNT_ROOT 2020-12-03 10:03:14 -08:00
stddef.h
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h net: allow user to set metric on default route learned via Router Advertisement 2021-01-26 18:39:45 -08:00
sysinfo.h
target_core_user.h
taskstats.h
tcp.h tcp: Sanitize CMSG flags and reserved args in tcp_zerocopy_receive. 2021-02-11 18:25:05 -08:00
tcp_metrics.h
tee.h tee: fix some comment typos in header files 2021-02-02 14:50:15 +01:00
termios.h tty: drop termiox user definitions 2021-01-07 16:17:32 +01:00
thermal.h thermal: Fix spelling mistake "disabed" -> "disabled" 2021-03-11 12:13:08 +01:00
time.h
time_types.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tls.h net/tls: add CHACHA20-POLY1305 specific defines and structures 2020-11-27 14:32:37 -08:00
toshiba.h
tty.h
tty_flags.h tty: add ASYNC_SPLIT_TERMIOS to deprecation mask 2021-04-10 10:36:34 +02:00
types.h
udf_fs_i.h
udmabuf.h
udp.h
uhid.h
uinput.h
uio.h
uleds.h
ultrasound.h
um_timetravel.h
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
userfaultfd.h userfaultfd/shmem: advertise shmem minor fault support 2021-06-30 20:47:27 -07:00
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h media: vpbe_osd.h/uvcvideo.h includes: fix trivial kernel-doc warnings 2021-03-22 10:24:07 +01:00
v4l2-common.h
v4l2-controls.h media: vicodec: Use _BITUL() macro in UAPI headers 2021-06-02 14:09:05 +02:00
v4l2-dv-timings.h
v4l2-mediabus.h
v4l2-subdev.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
vbox_err.h
vbox_vmmdev_types.h
vboxguest.h
vdpa.h vdpa: Enable user to query vdpa device info 2021-02-23 07:52:56 -05:00
veth.h
vfio.h vfio/pci: Revert nvlink removal uAPI breakage 2021-05-05 10:19:41 -06:00
vfio_ccw.h
vfio_zdev.h
vhost.h
vhost_types.h
videodev2.h media: uapi: move MPEG-2 stateless controls out of staging 2021-05-23 19:21:31 +02:00
virtio_9p.h
virtio_balloon.h
virtio_blk.h
virtio_bt.h Bluetooth: Add support for virtio transport driver 2021-04-08 12:26:34 +02:00
virtio_config.h
virtio_console.h
virtio_crypto.h
virtio_fs.h
virtio_gpu.h virtio-gpu api: Add a comment on VIRTIO_GPU_SHM_ID_HOST_VISIBLE 2020-11-20 10:44:41 +01:00
virtio_ids.h Bluetooth: Fix VIRTIO_ID_BT assigned number 2021-06-03 14:01:55 -07:00
virtio_input.h
virtio_iommu.h
virtio_mem.h
virtio_mmio.h
virtio_net.h
virtio_pci.h
virtio_pmem.h
virtio_ring.h
virtio_rng.h
virtio_scsi.h
virtio_snd.h ALSA: virtio: add virtio sound driver 2021-03-07 09:07:16 +01:00
virtio_types.h
virtio_vsock.h virtio/vsock: defines and constants for SEQPACKET 2021-06-11 13:32:47 -07:00
vm_sockets.h vm_sockets: Add VMADDR_FLAG_TO_HOST vsock flag 2020-12-14 19:33:39 -08:00
vm_sockets_diag.h
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h
wmi.h
wwan.h wwan: add interface creation support 2021-06-12 13:16:45 -07:00
x25.h
xattr.h
xdp_diag.h
xfrm.h
xilinx-v4l2-controls.h
zorro.h
zorro_ids.h