twx-linux/include/uapi/linux
Christian Brauner 7a54947e72
Merge patch series "fs: allow changing idmappings"
Christian Brauner <brauner@kernel.org> says:

Currently, it isn't possible to change the idmapping of an idmapped
mount. This is becoming an obstacle for various use-cases.

  /* idmapped home directories with systemd-homed */

  On newer systems /home is can be an idmapped mount such that each file
  on disk is owned by 65536 and a subfolder exists for foreign id ranges
  such as containers. For example, a home directory might look like this
  (using an arbitrary folder as an example):

  user1@localhost:~/data/mount-idmapped$ ls -al /data/
  total 16
  drwxrwxrwx 1      65536      65536  36 Jan 27 12:15 .
  drwxrwxr-x 1      root       root  184 Jan 27 12:06 ..
  -rw-r--r-- 1      65536      65536   0 Jan 27 12:07 aaa
  -rw-r--r-- 1      65536      65536   0 Jan 27 12:07 bbb
  -rw-r--r-- 1      65536      65536   0 Jan 27 12:07 cc
  drwxr-xr-x 1 2147352576 2147352576   0 Jan 27 19:06 containers

  When logging in home is mounted as an idmapped mount with the following
  idmappings:

  65536:$(id -u):1            // uid mapping
  65536:$(id -g):1            // gid mapping
  2147352576:2147352576:65536 // uid mapping
  2147352576:2147352576:65536 // gid mapping

  So for a user with uid/gid 1000 an idmapped /home would like like this:

  user1@localhost:~/data/mount-idmapped$ ls -aln /mnt/
  total 16
  drwxrwxrwx 1       1000       1000  36 Jan 27 12:15 .
  drwxrwxr-x 1          0          0 184 Jan 27 12:06 ..
  -rw-r--r-- 1       1000       1000   0 Jan 27 12:07 aaa
  -rw-r--r-- 1       1000       1000   0 Jan 27 12:07 bbb
  -rw-r--r-- 1       1000       1000   0 Jan 27 12:07 cc
  drwxr-xr-x 1 2147352576 2147352576   0 Jan 27 19:06 containers

  In other words, 65536 is mapped to the user's uid/gid and the range
  2147352576 up to 2147352576 + 65536 is an identity mapping for
  containers.

  When a container is started a transient uid/gid range is allocated
  outside of both mappings of the idmapped mount. For example, the
  container might get the idmapping:

  $ cat /proc/1742611/uid_map
           0  537985024      65536

  This container will be allowed to write to disk within the allocated
  foreign id range 2147352576 to 2147352576 + 65536. To do this an
  idmapped mount must be created from an already idmapped mount such that:

  - The mappings for the user's uid/gid must be dropped, i.e., the
    following mappings are removed:

    65536:$(id -u):1            // uid mapping
    65536:$(id -g):1            // gid mapping

  - A mapping for the transient uid/gid range to the foreign uid/gid range
    is added:

    2147352576:537985024:65536

  In combination this will mean that the container will write to disk
  within the foreign id range 2147352576 to 2147352576 + 65536.

  /* nested containers */

  When the outer container makes use of idmapped mounts it isn't posssible
  to create an idmapped mount for the inner container with a differen
  idmapping from the outer container's idmapped mount.

There are other usecases and the two above just serve as an illustration
of the problem.

This patchset makes it possible to create a new idmapped mount from an
already idmapped mount. It aims to adhere to current performance
constraints and requirements:

- Idmapped mounts aim to have near zero performance implications for
  path lookup. That is why no refernce counting, locking or any other
  mechanism can be required that would impact performance.

  This works be ensuring that a regular mount transitions to an idmapped
  mount once going from a static nop_mnt_idmap mapping to a non-static
  idmapping.

- The idmapping of a mount change anymore for the lifetime of the mount
  afterwards. This not just avoids UAF issues it also avoids pitfalls
  such as generating non-matching uid/gid values.

Changing idmappings could be solved by:

- Idmappings could simply be reference counted (above the simple
  reference count when sharing them across multiple mounts).

  This would require pairing mnt_idmap_get() with mnt_idmap_put() which
  would end up being sprinkled everywhere into the VFS and some
  filesystems that access idmappings directly.

  It wouldn't just be quite ugly and introduce new complexity it would
  have a noticeable performance impact.

- Idmappings could gain RCU protection. This would help the LOOKUP_RCU
  case and avoids taking reference counts under RCU.

  When not under LOOKUP_RCU reference counts need to be acquired on each
  idmapping. This would require pairing mnt_idmap_get() with
  mnt_idmap_put() which would end up being sprinkled everywhere into the
  VFS and some filesystems that access idmappings directly.

  This would have the same downsides as mentioned earlier.

- The earlier solutions work by updating the mnt->mnt_idmap pointer with
  the new idmapping. Instead of this it would be possible to change the
  idmapping itself to avoid UAF issues.

  To do this a sequence counter would have to be added to struct mount.
  When retrieving the idmapping to generate uid/gid values the sequence
  counter would need to be sampled and the generation of the uid/gid
  would spin until the update of the idmap is finished.

  This has problems as well but the biggest issue will be that this can
  lead to inconsistent permission checking and inconsistent uid/gid
  pairs even more than this is already possible today. Specifically,
  during creation it could happen that:

  idmap = mnt_idmap(mnt);
  inode_permission(idmap, ...);
  may_create(idmap);
  // create file with uid/gid based on @idmap

  in between the permission checking and the generation of the uid/gid
  value the idmapping could change leading to the permission checking
  and uid/gid value that is actually used to create a file on disk being
  out of sync.

  Similarly if two values are generated like:

  idmap = mnt_idmap(mnt)
  vfsgid = make_vfsgid(idmap);
  // idmapping gets update concurrently
  vfsuid = make_vfsuid(idmap);

  @vfsgid and @vfsuid could be out of sync if the idmapping was changed
  in between. The generation of vfsgid/vfsuid could span a lot of
  codelines so to guard against this a sequence count would have to be
  passed around.

  The performance impact of this solutio are less clear but very likely
  not zero.

- Using SRCU similar to fanotify that can sleep. I find that not just
  ugly but it would have memory consumption implications and is overall
  pretty ugly.

/* solution */

So, to avoid all of these pitfalls creating an idmapped mount from an
already idmapped mount will be done atomically, i.e., a new detached
mount is created and a new set of mount properties applied to it without
it ever having been exposed to userspace at all.

This can be done in two ways. A new flag to open_tree() is added
OPEN_TREE_CLEAR_IDMAP that clears the old idmapping and returns a mount
that isn't idmapped. And then it is possible to set mount attributes on
it again including creation of an idmapped mount.

This has the consequence that a file descriptor must exist in userspace
that doesn't have any idmapping applied and it will thus never work in
unpriviledged scenarios. As a container would be able to remove the
idmapping of the mount it has been given. That should be avoided.

Instead, we add open_tree_attr() which works just like open_tree() but
takes an optional struct mount_attr parameter. This is useful beyond
idmappings as it fills a gap where a mount never exists in userspace
without the necessary mount properties applied.

This is particularly useful for mount options such as
MOUNT_ATTR_{RDONLY,NOSUID,NODEV,NOEXEC}.

To create a new idmapped mount the following works:

// Create a first idmapped mount
struct mount_attr attr = {
        .attr_set = MOUNT_ATTR_IDMAP
        .userns_fd = fd_userns
};

fd_tree = open_tree(-EBADF, "/", OPEN_TREE_CLONE, &attr, sizeof(attr));
move_mount(fd_tree, "", -EBADF, "/mnt", MOVE_MOUNT_F_EMPTY_PATH);

// Create a second idmapped mount from the first idmapped mount
attr.attr_set = MOUNT_ATTR_IDMAP;
attr.userns_fd = fd_userns2;
fd_tree2 = open_tree(-EBADF, "/mnt", OPEN_TREE_CLONE, &attr, sizeof(attr));

// Create a second non-idmapped mount from the first idmapped mount:
memset(&attr, 0, sizeof(attr));
attr.attr_clr = MOUNT_ATTR_IDMAP;
fd_tree2 = open_tree(-EBADF, "/mnt", OPEN_TREE_CLONE, &attr, sizeof(attr));

* patches from https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-0-c25feb0d2eb3@kernel.org:
  fs: allow changing idmappings
  fs: add kflags member to struct mount_kattr
  fs: add open_tree_attr()
  fs: add copy_mount_setattr() helper
  fs: add vfs_open_tree() helper

Link: https://lore.kernel.org/r/20250128-work-mnt_idmap-update-v2-v1-0-c25feb0d2eb3@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
2025-02-12 12:12:34 +01:00
..
android binder: frozen notification 2024-07-31 13:56:00 +02:00
byteorder
caif
can can: isotp: remove ISO 15675-2 specification version where possible 2024-06-20 11:52:56 +02:00
cifs
dvb media: dvb: Fix dtvs_stats packing. 2024-04-15 13:42:38 +02:00
genwqe
hdlc
hsi
iio iio: Add channel type for attention 2024-11-03 20:33:43 +00:00
isdn
media/raspberrypi media: raspberrypi: Add support for RP1-CFE 2024-10-16 09:32:40 +02:00
misc
mmc
netfilter netfilter: conntrack: add conntrack event timestamp 2025-01-09 14:42:16 +01:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
nfsd
raid md: reintroduce md-linear 2025-01-13 07:36:29 -08:00
sched sched/deadline: Clarify nanoseconds in uapi 2024-09-11 11:23:56 +02:00
spi spi: Enable controllers to extend the SPI protocol with MOSI idle configuration 2024-07-29 01:19:51 +01:00
sunrpc
surface_aggregator
tc_act net: sched: Annotate struct tc_pedit with __counted_by 2024-02-19 10:58:24 +00:00
tc_ematch
usb usb: gadget: functionfs: fix spellos 2024-12-04 16:08:34 +01:00
a.out.h
acct.h
acrn.h
adb.h
adfs_fs.h
affs_hardblocks.h
agpgart.h
aio_abi.h
am437x-vpfe.h
amt.h
apm_bios.h
arcfb.h
arm_sdei.h
aspeed-lpc-ctrl.h
aspeed-p2a-ctrl.h
aspeed-video.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_tcp.h
atm_zatm.h
atm.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 ima: instantiate the bprm_creds_for_exec() hook 2024-12-18 17:00:29 -08:00
auto_dev-ioctl.h
auto_fs4.h
auto_fs.h autofs: add per dentry expire timeout 2024-08-30 08:22:36 +02:00
auxvec.h uapi/auxvec: Define AT_HWCAP3 and AT_HWCAP4 aux vector, entries 2024-02-16 12:42:59 +11:00
ax25.h
batadv_packet.h batman-adv: Add flex array to struct batadv_tvlv_tt_data 2024-10-05 18:23:38 +02:00
batman_adv.h
baycom.h
bcm933xx_hcs.h
bfs_fs.h
binfmts.h
bits.h uapi: Define GENMASK_U128 2024-08-28 06:53:58 -07:00
blkdev.h block: implement async io_uring discard cmd 2024-09-11 10:45:28 -06:00
blkpg.h
blktrace_api.h
blkzoned.h
bpf_common.h
bpf_perf_event.h
bpf.h bpf: Add fd_array_cnt attribute for prog_load 2024-12-13 14:48:36 -08:00
bpqether.h
bsg.h
bt-bmc.h
btf.h
btrfs_tree.h btrfs: remove raid-stripe-tree encoding field from stripe_extent 2024-07-11 15:33:28 +02:00
btrfs.h btrfs: add new ioctl to wait for cleaned subvolumes 2024-11-11 14:34:22 +01:00
cachefiles.h
can.h can: canxl: add virtual CAN network identifier support 2024-02-13 11:47:13 +01:00
capability.h
capi.h
cciss_defs.h
cciss_ioctl.h
ccs.h
cdrom.h
cec-funcs.h
cec.h media: uapi/linux/cec.h: cec_msg_set_reply_to: zero flags 2024-08-08 15:23:21 +02:00
cfm_bridge.h
cgroupstats.h
chio.h
close_range.h
cn_proc.h connector: Fix invalid conversion in cn_proc.h 2024-05-24 10:36:55 +01:00
coda.h
coff.h
comedi.h
connector.h
const.h uapi: Define GENMASK_U128 2024-08-28 06:53:58 -07:00
coresight-stm.h
counter.h
cramfs_fs.h
cryptouser.h crypto: sig - Introduce sig_alg backend 2024-10-05 13:22:04 +08:00
cuda.h
cxl_mem.h cxl/mbox: Add Clear Log mailbox command 2024-04-30 08:48:10 -07:00
cyclades.h
cycx_cfm.h
dcbnl.h
dccp.h
devlink.h devlink: Support setting max_io_eqs 2024-04-08 14:10:45 +01:00
dlm_device.h
dlm_plock.h
dlm.h dlm: introduce DLM_LSFL_SOFTIRQ_SAFE 2024-06-11 12:57:49 -05:00
dlmconstants.h
dm-ioctl.h dm-table: atomic writes support 2025-01-17 22:23:47 +01:00
dm-log-userspace.h
dma-buf.h
dma-heap.h dma-buf: align fd_flags and heap_flags with dma_heap_allocation_data 2024-06-05 14:52:15 +05:30
dns_resolver.h
dpll.h tools: ynl-gen: de-kdocify enums with no doc for entries 2024-11-04 18:11:47 -08:00
dqblk_xfs.h
dw100.h
edd.h
efs_fs_sb.h
elf-em.h
elf-fdpic.h
elf.h RISC-V Paches for the 6.13 Merge Window, Part 1 2024-11-27 11:19:09 -08:00
errno.h
errqueue.h
erspan.h
ethtool_netlink_generated.h net: ethtool: ts: add separate counter for unconfirmed one-step TX timestamps 2025-01-17 20:01:09 -08:00
ethtool_netlink.h net: ethtool: add support for structured PHY statistics 2025-01-14 11:44:19 +01:00
ethtool.h net: ethtool: add support for structured PHY statistics 2025-01-14 11:44:19 +01:00
eventfd.h
eventpoll.h eventpoll: Add epoll ioctl for epoll_params 2024-02-14 11:01:01 +00:00
exfat.h exfat: Implement sops->shutdown and ioctl 2024-09-18 07:40:56 +09:00
ext4.h
f2fs.h f2fs: introduce device aliasing file 2024-11-01 01:19:00 +00:00
fadvise.h
falloc.h fs: sort out the fallocate mode vs flag mess 2024-08-28 16:53:57 +02:00
fanotify.h fanotify: notify on mount attach and detach 2025-02-05 17:21:07 +01:00
fb.h tty: vt: define a common enum for VESA blanking constants 2024-01-27 18:08:54 -08:00
fcntl.h exec: Add a new AT_EXECVE_CHECK flag to execveat(2) 2024-12-18 17:00:29 -08:00
fd.h
fdreg.h
fib_rules.h net: fib_rules: Add flow label selector attributes 2024-12-19 16:02:21 +01:00
fiemap.h fiemap: use kernel-doc includes in fiemap docbook 2024-12-22 11:29:50 +01:00
filter.h
firewire-cdev.h
firewire-constants.h
fou.h
fpga-dfl.h
fs.h for-6.14/io_uring-20250119 2025-01-20 20:27:33 -08:00
fscrypt.h
fsi.h
fsl_hypervisor.h
fsl_mc.h
fsmap.h
fsverity.h
fuse.h fuse: {io-uring} Handle SQEs - register commands 2025-01-24 11:54:08 +01:00
futex.h
gameport.h
gen_stats.h
genetlink.h
gfs2_ondisk.h
gpio.h gpio: uapi: clarify default_values being logical 2024-02-15 08:44:57 +01:00
gsmmux.h
gtp.h gtp: add IPv6 support 2024-05-07 01:35:57 +02:00
handshake.h
hash_info.h
hdlc.h
hdlcdrv.h
hdreg.h
hid.h
hiddev.h
hidraw.h HID: hidraw: add HIDIOCREVOKE ioctl 2024-08-29 10:39:37 +02:00
hpet.h
hsr_netlink.h
hw_breakpoint.h
hyperv.h
i2c-dev.h
i2c.h
i2o-dev.h
i8k.h
icmp.h
icmpv6.h netfilter: conntrack: fix ct-state for ICMPv6 Multicast Router Discovery 2024-05-06 11:13:56 +02:00
idxd.h
if_addr.h
if_addrlabel.h
if_alg.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h bridge: add MDB state mask uAPI attribute 2023-12-20 11:27:20 +00:00
if_cablemodem.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_hippi.h
if_infiniband.h
if_link.h bpf-next-for-netdev 2025-01-07 15:39:09 -08:00
if_ltalk.h
if_macsec.h
if_packet.h packet: Correct spelling in if_packet.h 2024-08-26 09:37:22 -07:00
if_phonet.h
if_plip.h
if_ppp.h
if_pppol2tp.h
if_pppox.h
if_slip.h
if_team.h uapi: team: use header file generated from YAML spec 2024-04-02 18:24:33 -07:00
if_tun.h
if_tunnel.h pfcp: always set pfcp metadata 2024-04-01 10:49:28 +01:00
if_vlan.h
if_x25.h
if_xdp.h xsk: Require XDP_UMEM_TX_METADATA_LEN to actuate tx_metadata_len 2024-07-25 11:57:27 +02:00
if.h
ife.h
igmp.h
ila.h
in6.h uapi: in6: replace temporary label with rfc9486 2024-02-27 18:22:49 -08:00
in_route.h ipv4: Fix user space build failure due to header change 2024-09-04 16:40:33 -07:00
in.h include: uapi: protocol number and packet structs for AGGFRAG in ESP 2024-12-05 10:01:09 +01:00
inet_diag.h net: Correct spelling in headers 2024-08-26 09:37:23 -07:00
inotify.h inotify: Fix misspelling of "writable" 2024-03-06 13:13:00 +01:00
input-event-codes.h Input: allocate keycode for phone linking 2025-01-15 16:26:41 +02:00
input.h
io_uring.h io_uring: expose read/write attribute capability 2025-01-10 17:12:42 -07:00
ioam6_genl.h uapi: ioam6: API for netlink multicast events 2024-02-28 11:19:41 +00:00
ioam6_iptunnel.h net: ipv6: ioam6: new feature tunsrc 2024-08-22 10:45:12 +02:00
ioam6.h
ioctl.h
iommufd.h iommufd: Fix struct iommu_hwpt_pgfault init and padding 2025-01-21 13:55:49 -04:00
ioprio.h
ip6_tunnel.h
ip_vs.h
ip.h include: uapi: protocol number and packet structs for AGGFRAG in ESP 2024-12-05 10:01:09 +01:00
ipc.h
ipmi_bmc.h
ipmi_msgdefs.h
ipmi_ssif_bmc.h
ipmi.h
ipsec.h xfrm: add generic iptfs defines and functionality 2024-12-05 10:01:28 +01:00
ipv6_route.h
ipv6.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 Revert "VT: Use macros to define ioctls" 2024-06-01 07:28:21 +02:00
kdev_t.h
kernel-page-flags.h mm: remove PG_error 2024-09-01 20:26:05 -07:00
kernel.h
kernelcapi.h
kexec.h crash: add a new kexec flag for hotplug support 2024-04-23 14:59:01 +10:00
keyboard.h
keyctl.h
kfd_ioctl.h Revert "drm/amdkfd: SMI report dropped event count" 2024-10-22 17:51:20 -04:00
kfd_sysfs.h drm/amdkfd: flag per-queue reset support for gfx9 2024-10-28 16:41:33 -04:00
kvm_para.h
kvm.h KVM: x86: Drop the now unused KVM_X86_DISABLE_VALID_EXITS 2024-12-18 14:19:37 -08:00
l2tp.h
landlock.h landlock: Add signal scoping 2024-09-16 23:50:52 +02:00
libc-compat.h uapi: libc-compat: remove ipx leftovers 2024-09-12 20:28:46 -07:00
limits.h
lirc.h
llc.h
loadpin.h
loop.h
lp.h
lsm.h lsm: add IPE lsm 2024-08-19 22:36:26 -04:00
lwtunnel.h
magic.h bcachefs: Move BCACHEFS_STATFS_MAGIC value to UAPI magic.h 2024-05-08 17:29:24 -04:00
major.h
map_to_7segment.h
map_to_14segment.h
matroxfb.h
max2175.h
mctp.h net: mctp: provide a more specific tag allocation ioctl 2024-02-22 13:32:55 +01:00
mdio.h net: mdio: add definition for clock stop capable bit 2025-01-16 17:22:59 -08:00
media-bus-format.h media: uapi: Add MEDIA_BUS_FMT_RGB101010_1X7X5_{SPWG, JEIDA} 2024-11-05 13:26:42 +02:00
media.h
mei_uuid.h
mei.h
membarrier.h
memfd.h
mempolicy.h mm/mempolicy: introduce MPOL_WEIGHTED_INTERLEAVE for weighted interleaving 2024-02-22 10:24:46 -08:00
mii.h
minix_fs.h
mman.h mm: add MAP_DROPPABLE for designating always lazily freeable mappings 2024-07-19 20:22:12 +02:00
mmtimer.h
module.h
mount.h Merge patch series "fs: allow changing idmappings" 2025-02-12 12:12:34 +01:00
mpls_iptunnel.h
mpls.h
mptcp_pm.h netlink: specs: mptcp: clearly mention attributes 2024-12-27 11:16:21 -08:00
mptcp.h mptcp: add last time fields in mptcp_info 2024-04-11 08:19:54 -07:00
mqueue.h
mroute6.h
mroute.h
mrp_bridge.h
msdos_fs.h
msg.h
mtio.h
nbd-netlink.h
nbd.h nbd: implement the WRITE_ZEROES command 2024-09-06 08:31:40 -06:00
ncsi.h
ndctl.h
neighbour.h
net_dropmon.h
net_namespace.h
net_shaper.h netlink: spec: add shaper introspection support 2024-10-10 08:30:22 -07:00
net_tstamp.h net: Add the possibility to support a selected hwtstamp in netdevice 2024-12-16 12:51:40 +00:00
net.h
netconf.h
netdev.h net: Add napi_struct parameter irq_suspend_timeout 2024-11-11 18:45:05 -08:00
netdevice.h
netfilter_arp.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink_diag.h
netlink.h
netrom.h
nexthop.h net: nexthop: Increase weight to u16 2024-08-12 17:50:34 -07:00
nfc.h net: nfc: Propagate ISO14443 type A target ATS to userspace via netlink 2024-11-07 10:21:58 +01:00
nfs2.h
nfs3.h
nfs4_mount.h
nfs4.h nfsd: rework NFS4_SHARE_WANT_* flag handling 2025-01-21 15:30:01 -05:00
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs.h NFS/knfsd: Remove the invalid NFS error 'NFSERR_OPNOTSUPP' 2024-05-06 12:47:24 -04:00
nfsacl.h
nfsd_netlink.h nfsd: new netlink ops to get/set server pool_mode 2024-07-08 14:10:05 -04:00
nilfs2_api.h
nilfs2_ondisk.h
nitro_enclaves.h
nl80211-vnd-intel.h
nl80211.h wifi: cfg80211: Add support for controlling EPCS 2025-01-13 15:34:09 +01:00
npcm-video.h
nsfs.h vfs-6.12.mount 2024-09-16 11:15:26 +02:00
nsm.h
ntsync.h ntsync: Introduce alertable waits. 2025-01-08 13:18:11 +01:00
nubus.h
nvme_ioctl.h
nvram.h
omap3isp.h
omapfb.h
oom.h
openat2.h
openvswitch.h net: openvswitch: store sampling probability in cb. 2024-07-05 17:45:47 -07:00
packet_diag.h
papr_pdsm.h powerpc/papr_scm: Move duplicate definitions to common header files 2024-04-25 12:37:12 -07:00
param.h
parport.h
patchkey.h
pci_regs.h Merge branch 'pci/misc' 2025-01-23 13:05:06 -06:00
pci.h
pcitest.h misc: pci_endpoint_test: Add consecutive BAR test 2025-01-21 09:44:14 -06:00
perf_event.h perf/core: Add aux_pause, aux_resume, aux_start_paused 2024-11-05 12:55:43 +01:00
personality.h
pfkeyv2.h
pfrut.h
pg.h
phantom.h
phonet.h
pidfd.h pidfd: add ioctl to retrieve pid info 2024-10-24 13:54:51 +02:00
pkt_cls.h UAPI: net/sched: Use __struct_group() in flex struct tc_u32_sel 2024-08-14 20:37:47 -07:00
pkt_sched.h net_sched: sch_fq: add the ability to offload pacing 2024-10-04 15:37:54 -07:00
pktcdvd.h
pmu.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
ppdev.h
ppp_defs.h
ppp-comp.h
ppp-ioctl.h
pps_gen.h drivers pps: add PPS generators support 2025-01-08 13:18:09 +01:00
pps.h
pr.h
prctl.h RISC-V Paches for the 6.13 Merge Window, Part 1 2024-11-27 11:19:09 -08:00
psample.h net: psample: allow using rate as probability 2024-07-05 17:45:47 -07:00
psci.h firmware/psci: Add definitions for PSCI v1.3 specification 2024-10-24 16:30:33 -07:00
psp-dbc.h
psp-sev.h KVM: SEV: uapi: fix typo in SEV_RET_INVALID_CONFIG 2024-08-14 13:05:42 -04:00
ptp_clock.h ptp/ioctl: support MONOTONIC{,_RAW} timestamps for PTP_SYS_OFFSET_EXTENDED 2024-09-08 18:40:33 +01:00
ptrace.h
qemu_fw_cfg.h
qnx4_fs.h
qnxtypes.h
qrtr.h
quota.h
radeonfb.h
random.h random: note that RNDGETPOOL was removed in 2.6.9-rc2 2024-07-19 20:22:48 +02:00
rds.h
reboot.h
remoteproc_cdev.h
resource.h uapi/linux/resource.h: fix include 2023-12-20 19:26:31 -05:00
rfkill.h
rio_cm_cdev.h
rio_mport_cdev.h
rkisp1-config.h media: rkisp1: Add support for the companding block 2024-08-14 16:42:58 +03:00
romfs_fs.h
rose.h
route.h
rpl_iptunnel.h
rpl.h
rpmsg_types.h
rpmsg.h
rseq.h
rtc.h
rtnetlink.h netlink: add IPv6 anycast join/leave notifications 2025-01-09 12:54:45 +01:00
rxrpc.h
scc.h
sched.h sched_ext: Implement BPF extensible scheduler class 2024-06-18 10:09:17 -10:00
scif_ioctl.h
screen_info.h
sctp.h
seccomp.h
securebits.h security: Add EXEC_RESTRICT_FILE and EXEC_DENY_INTERACTIVE securebits 2024-12-18 17:00:29 -08:00
sed-opal.h block: sed-opal: add ioctl IOC_OPAL_SET_SID_PW 2024-10-22 08:16:40 -06:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selinux_netlink.h
sem.h
serial_core.h
serial_reg.h
serial.h tty: serial: Fix bit order in RS485 flag definitions 2024-01-27 18:15:24 -08:00
serio.h media: input: serio.h: add SERIO_EXTRON_DA_HD_PLUS 2024-09-05 20:11:43 +02:00
sev-guest.h KVM: SEV: Provide support for SNP_GUEST_REQUEST NAE event 2024-07-16 11:44:00 -04:00
shm.h
signal.h
signalfd.h
smc_diag.h net/smc: support extended GID in SMC-D lgr netlink attribute 2023-12-26 20:24:33 +00:00
smc.h net/smc: introduce statistics for ringbufs usage of net namespace 2024-08-20 11:38:23 +02:00
smiapp.h
snmp.h tcp: add LINUX_MIB_PAWS_OLD_ACK SNMP counter 2025-01-14 13:28:13 -08:00
sock_diag.h
socket.h
sockios.h
sonet.h
sonypi.h
sound.h
soundcard.h
stat.h fs: add STATX_DIO_READ_ALIGN 2025-01-09 16:23:17 +01:00
stddef.h stddef: make __struct_group() UAPI C++-friendly 2024-12-20 09:05:53 -08:00
stm.h
string.h
suspend_ioctls.h
swab.h
switchtec_ioctl.h
sync_file.h
synclink.h
sysctl.h
sysinfo.h
target_core_user.h
taskstats.h delayacct: add delay min to record delay peak 2025-01-12 20:21:16 -08:00
tcp_metrics.h tcp_metrics: add netlink protocol spec in YAML 2024-07-01 09:44:27 +01:00
tcp.h tcp: socket option to check for MPTCP fallback to TCP 2024-05-13 14:48:04 -07:00
tdx-guest.h
tee.h tee: tstee: Add Trusted Services TEE driver 2024-04-03 14:03:09 +02:00
termios.h
thermal.h thermal/thresholds: Fix uapi header macros leading to a compilation error 2024-12-16 21:30:20 +01:00
thp7312.h
time_types.h
time.h
timerfd.h
times.h
timex.h
tiocl.h
tipc_config.h
tipc_netlink.h
tipc_sockets_diag.h
tipc.h
tls.h
toshiba.h
tps6594_pfsm.h
trace_mmap.h tracing: Have memmapped ring buffer use ioctl of "R" range 0x20-2F 2024-07-03 16:40:45 -04:00
tty_flags.h
tty.h
types.h types: Complement the aligned types with signed 64-bit one 2024-09-30 09:20:59 +01:00
ublk_cmd.h ublk: support device recovery without I/O queueing 2024-10-22 08:16:37 -06:00
udf_fs_i.h
udmabuf.h
udp.h Fix misspelling of "accept*" in net 2024-10-09 19:55:40 -07:00
uhid.h
uinput.h
uio.h net: add SO_DEVMEM_DONTNEED setsockopt to release RX frags 2024-09-11 20:44:32 -07:00
uleds.h
ultrasound.h
um_timetravel.h um: add shared memory optimisation for time-travel=ext 2024-07-03 12:24:54 +02:00
un.h
unistd.h
unix_diag.h
usbdevice_fs.h
usbip.h
user_events.h tracing/user_events: Introduce multi-format events 2024-03-18 10:13:03 -04:00
userfaultfd.h userfaultfd: UFFDIO_MOVE uABI 2023-12-29 11:58:24 -08:00
userio.h
utime.h
utsname.h
uuid.h
uvcvideo.h
v4l2-common.h
v4l2-controls.h media: v4l2-ctrls: Add average QP control 2024-06-10 10:24:30 +02:00
v4l2-dv-timings.h media: replace obsolete hans.verkuil@cisco.com alias 2024-11-08 13:38:09 +01:00
v4l2-mediabus.h media: uapi: Document which mbus format fields are valid for metadata 2024-04-29 14:56:36 +02:00
v4l2-subdev.h media: v4l: subdev: Add len_routes field to struct v4l2_subdev_routing 2024-04-29 14:56:37 +02:00
vbox_err.h
vbox_vmmdev_types.h virt: vbox: struct vmmdev_hgcm_pagelist: Replace 1-element array with flexible array 2024-08-22 16:56:24 -07:00
vboxguest.h
vdpa.h vdpa: support set mac address from vdpa tool 2024-09-10 02:51:48 -04:00
vduse.h vduse: relicense under GPL-2.0 OR BSD-3-Clause 2025-01-08 06:37:13 -05:00
vesa.h tty: vt: define a common enum for VESA blanking constants 2024-01-27 18:08:54 -08:00
veth.h
vfio_ccw.h
vfio_zdev.h
vfio.h vfio: Remove VFIO_TYPE1_NESTING_IOMMU 2024-11-05 10:24:16 +00:00
vhost_types.h
vhost.h vhost-vdpa: change ioctl # for VDPA_GET_VRING_SIZE 2024-04-08 04:11:04 -04:00
videodev2.h media: uapi: Add meta formats for PiSP FE config and stats 2024-10-16 09:32:39 +02:00
virtio_9p.h
virtio_balloon.h virtio_balloon: introduce memory scan/reclaim info 2024-09-10 02:51:48 -04:00
virtio_blk.h
virtio_bt.h Bluetooth: HCI: Remove HCI_AMP support 2024-05-14 10:54:49 -04:00
virtio_config.h virtio: Define feature bit for administration virtqueue 2023-12-19 11:51:31 -07:00
virtio_console.h
virtio_crypto.h crypto: virtio - Drop sign/verify operations 2024-10-05 13:22:04 +08:00
virtio_fs.h
virtio_gpio.h
virtio_gpu.h drm/virtio: Add DRM capset definition 2024-07-24 20:49:42 +03:00
virtio_i2c.h
virtio_ids.h
virtio_input.h
virtio_iommu.h
virtio_mem.h virtio-mem: support suspend+resume 2024-05-22 08:31:15 -04:00
virtio_mmio.h
virtio_net.h virtio_net: introduce device stats feature and structures 2024-04-30 10:51:32 +02:00
virtio_pci.h virtio-pci: define type and header for PCI vendor data 2025-01-27 09:39:25 -05:00
virtio_pcidev.h
virtio_pmem.h virtio_pmem: support feature SHMEM_REGION 2024-01-10 13:01:37 -05:00
virtio_ring.h
virtio_rng.h
virtio_scmi.h
virtio_scsi.h
virtio_snd.h ALSA: virtio: add support for audio controls 2024-02-09 14:01:15 +01:00
virtio_types.h
virtio_vsock.h
vm_sockets_diag.h
vm_sockets.h
vmclock-abi.h ptp: Add support for the AMZNC10C 'vmclock' device 2024-10-09 12:16:18 +01:00
vmcore.h
vsockmon.h
vt.h
vtpm_proxy.h
wait.h
watch_queue.h
watchdog.h
wireguard.h
wireless.h
wmi.h
wwan.h
x25.h
xattr.h fs/xattr: add *at family syscalls 2024-11-06 12:59:44 -05:00
xdp_diag.h
xfrm.h xfrm: netlink: add config (netlink) options 2024-12-05 10:01:15 +01:00
xilinx-v4l2-controls.h
zorro_ids.h m68k: amiga: Turn off Warp1260 interrupts during boot 2024-06-04 08:59:58 +02:00
zorro.h