History

Merge drm/drm-next into drm-misc-next

Backmerging to get v6.15-rc1 into drm-misc-next. Also fixes a build issue when enabling CONFIG_DRM_SCHED_KUNIT_TEST.

Thomas Zimmermann committed 1 year ago

Commit 1afba392 parents fbe4381 0af2f6b12658 files · +666610 −259887Browse files

Showing the changes to include/uapi/linux (58 of 12658 files). Show all

Unified · Split

58 files
  1. include/uapi/linux/audit.h +3 −1
  2. include/uapi/linux/batman_adv.h +9 −9
  3. include/uapi/linux/bits.h +2 −6
  4. include/uapi/linux/blk-crypto.h +44 −0
  5. include/uapi/linux/bpf.h +39 −1
  6. include/uapi/linux/btf.h +2 −1
  7. include/uapi/linux/btrfs.h +13 −3
  8. include/uapi/linux/can.h +2 −1
  9. include/uapi/linux/capability.h +1 −0
  10. include/uapi/linux/const.h +1 −1
  11. include/uapi/linux/counter.h +2 −0
  12. include/uapi/linux/counter/microchip-tcb-capture.h +40 −0
  13. include/uapi/linux/elf.h +132 −5
  14. include/uapi/linux/errqueue.h +1 −0
  15. include/uapi/linux/ethtool.h +22 −0
  16. include/uapi/linux/f2fs.h +7 −0
  17. include/uapi/linux/fanotify.h +10 −0
  18. include/uapi/linux/fib_rules.h +3 −0
  19. include/uapi/linux/firewire-cdev.h +2 −1
  20. include/uapi/linux/fs.h +2 −4
  21. include/uapi/linux/fuse.h +9 −3
  22. include/uapi/linux/if_cablemodem.h +0 −23
  23. include/uapi/linux/if_link.h +7 −0
  24. include/uapi/linux/if_xdp.h +10 −0
  25. include/uapi/linux/iio/types.h +2 −0
  26. include/uapi/linux/io_uring.h +58 −1
  27. include/uapi/linux/iommufd.h +128 −1
  28. include/uapi/linux/kfd_ioctl.h +8 −2
  29. include/uapi/linux/kfd_sysfs.h +3 −0
  30. include/uapi/linux/kvm.h +1 −0
  31. include/uapi/linux/landlock.h +41 −2
  32. include/uapi/linux/lockd_netlink.h +29 −0
  33. include/uapi/linux/mount.h +9 −1
  34. include/uapi/linux/mshv.h +291 −0
  35. include/uapi/linux/net_tstamp.h +4 −2
  36. include/uapi/linux/netdev.h +16 −0
  37. include/uapi/linux/nilfs2_ondisk.h +2 −1
  38. include/uapi/linux/nl80211.h +43 −29
  39. include/uapi/linux/pci_regs.h +10 −3
  40. include/uapi/linux/pcitest.h +6 −0
  41. include/uapi/linux/perf_event.h +2 −0
  42. include/uapi/linux/pidfd.h +30 −1
  43. include/uapi/linux/prctl.h +11 −0
  44. include/uapi/linux/psp-sev.h +14 −7
  45. include/uapi/linux/rkisp1-config.h +1 −1
  46. include/uapi/linux/rtnetlink.h +1 −0
  47. include/uapi/linux/snmp.h +7 −6
  48. include/uapi/linux/stddef.h +6 −0
  49. include/uapi/linux/tcp.h +9 −3
  50. include/uapi/linux/ublk_cmd.h +36 −0
  51. include/uapi/linux/usb/ch9.h +16 −0
  52. include/uapi/linux/usb/video.h +1 −0
  53. include/uapi/linux/uvcvideo.h +13 −0
  54. include/uapi/linux/v4l2-controls.h +7 −0
  55. include/uapi/linux/vfio.h +20 −10
  56. include/uapi/linux/videodev2.h +5 −0
  57. include/uapi/linux/virtio_net.h +13 −0
  58. include/uapi/linux/xattr.h +4 −0
include/uapi/linux/audit.h+3−1
@@ -33,7 +33,7 @@ · 32 unmodified lines
3333 * 1100 - 1199 user space trusted application messages
3434 * 1200 - 1299 messages internal to the audit daemon
3535 * 1300 - 1399 audit event messages
36− * 1400 - 1499 SE Linux use
36+ * 1400 - 1499 access control messages
3737 * 1500 - 1599 kernel LSPP events
3838 * 1600 - 1699 kernel crypto events
3939 * 1700 - 1799 kernel anomaly records
@@ -146,6 +146,8 @@ · 106 unmodified lines
146146 #define AUDIT_IPE_ACCESS 1420 /* IPE denial or grant */
147147 #define AUDIT_IPE_CONFIG_CHANGE 1421 /* IPE config change */
148148 #define AUDIT_IPE_POLICY_LOAD 1422 /* IPE policy load */
149+#define AUDIT_LANDLOCK_ACCESS 1423 /* Landlock denial */
150+#define AUDIT_LANDLOCK_DOMAIN 1424 /* Landlock domain status */
149151
150152 #define AUDIT_FIRST_KERN_ANOM_MSG 1700
151153 #define AUDIT_LAST_KERN_ANOM_MSG 1799
include/uapi/linux/batman_adv.h+9−9
@@ -342,7 +342,7 @@ enum batadv_nl_attrs { · 341 unmodified lines
342342 BATADV_ATTR_MCAST_FLAGS_PRIV,
343343
344344 /**
345− * @BATADV_ATTR_VLANID: VLAN id on top of soft interface
345+ * @BATADV_ATTR_VLANID: VLAN id on top of mesh interface
346346 */
347347 BATADV_ATTR_VLANID,
348348
@@ -380,7 +380,7 @@ enum batadv_nl_attrs { · 31 unmodified lines
380380 /**
381381 * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
382382 * avoidance feature is enabled. This feature detects and avoids loops
383− * between the mesh and devices bridged with the soft interface
383+ * between the mesh and devices bridged with the mesh interface
384384 */
385385 BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
386386
@@ -509,7 +509,7 @@ enum batadv_nl_commands { · 122 unmodified lines
509509 BATADV_CMD_UNSPEC,
510510
511511 /**
512− * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh
512+ * @BATADV_CMD_GET_MESH: Get attributes from mesh(if)
513513 */
514514 BATADV_CMD_GET_MESH,
515515
@@ -535,7 +535,7 @@ enum batadv_nl_commands { · 19 unmodified lines
535535
536536 /**
537537 * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
538− * current softif
538+ * current mesh(if)
539539 */
540540 BATADV_CMD_GET_HARDIF,
541541
@@ -591,25 +591,25 @@ enum batadv_nl_commands { · 49 unmodified lines
591591 BATADV_CMD_GET_MCAST_FLAGS,
592592
593593 /**
594− * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh
594+ * @BATADV_CMD_SET_MESH: Set attributes for mesh(if)
595595 */
596596 BATADV_CMD_SET_MESH,
597597
598598 /**
599599 * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
600− * current softif
600+ * current mesh(if)
601601 */
602602 BATADV_CMD_SET_HARDIF,
603603
604604 /**
605605 * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
606− * current softif
606+ * current mesh(if)
607607 */
608608 BATADV_CMD_GET_VLAN,
609609
610610 /**
611611 * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
612− * current softif
612+ * current mesh(if)
613613 */
614614 BATADV_CMD_SET_VLAN,
615615
@@ -691,7 +691,7 @@ enum batadv_ifla_attrs { · 75 unmodified lines
691691 */
692692 IFLA_BATADV_ALGO_NAME,
693693
694− /* add attributes above here, update the policy in soft-interface.c */
694+ /* add attributes above here, update the policy in mesh-interface.c */
695695
696696 /**
697697 * @__IFLA_BATADV_MAX: internal use
include/uapi/linux/bits.h+2−6
@@ -4,13 +4,9 @@ · 3 unmodified lines
44 #ifndef _UAPI_LINUX_BITS_H
55 #define _UAPI_LINUX_BITS_H
66
7−#define __GENMASK(h, l) \
8− (((~_UL(0)) - (_UL(1) << (l)) + 1) & \
9− (~_UL(0) >> (__BITS_PER_LONG - 1 - (h))))
7+#define __GENMASK(h, l) (((~_UL(0)) << (l)) & (~_UL(0) >> (BITS_PER_LONG - 1 - (h))))
108
11−#define __GENMASK_ULL(h, l) \
12− (((~_ULL(0)) - (_ULL(1) << (l)) + 1) & \
13− (~_ULL(0) >> (__BITS_PER_LONG_LONG - 1 - (h))))
9+#define __GENMASK_ULL(h, l) (((~_ULL(0)) << (l)) & (~_ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h))))
1410
1511 #define __GENMASK_U128(h, l) \
1612 ((_BIT128((h)) << 1) - (_BIT128(l)))
include/uapi/linux/blk-crypto.h+44−0
@@ -0,0 +1,44 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef _UAPI_LINUX_BLK_CRYPTO_H
3+#define _UAPI_LINUX_BLK_CRYPTO_H
4+
5+#include <linux/ioctl.h>
6+#include <linux/types.h>
7+
8+struct blk_crypto_import_key_arg {
9+ /* Raw key (input) */
10+ __u64 raw_key_ptr;
11+ __u64 raw_key_size;
12+ /* Long-term wrapped key blob (output) */
13+ __u64 lt_key_ptr;
14+ __u64 lt_key_size;
15+ __u64 reserved[4];
16+};
17+
18+struct blk_crypto_generate_key_arg {
19+ /* Long-term wrapped key blob (output) */
20+ __u64 lt_key_ptr;
21+ __u64 lt_key_size;
22+ __u64 reserved[4];
23+};
24+
25+struct blk_crypto_prepare_key_arg {
26+ /* Long-term wrapped key blob (input) */
27+ __u64 lt_key_ptr;
28+ __u64 lt_key_size;
29+ /* Ephemerally-wrapped key blob (output) */
30+ __u64 eph_key_ptr;
31+ __u64 eph_key_size;
32+ __u64 reserved[4];
33+};
34+
35+/*
36+ * These ioctls share the block device ioctl space; see uapi/linux/fs.h.
37+ * 140-141 are reserved for future blk-crypto ioctls; any more than that would
38+ * require an additional allocation from the block device ioctl space.
39+ */
40+#define BLKCRYPTOIMPORTKEY _IOWR(0x12, 137, struct blk_crypto_import_key_arg)
41+#define BLKCRYPTOGENERATEKEY _IOWR(0x12, 138, struct blk_crypto_generate_key_arg)
42+#define BLKCRYPTOPREPAREKEY _IOWR(0x12, 139, struct blk_crypto_prepare_key_arg)
43+
44+#endif /* _UAPI_LINUX_BLK_CRYPTO_H */
include/uapi/linux/bpf.h+39−1
@@ -51,6 +51,9 @@ · 50 unmodified lines
5151 #define BPF_XCHG (0xe0 | BPF_FETCH) /* atomic exchange */
5252 #define BPF_CMPXCHG (0xf0 | BPF_FETCH) /* atomic compare-and-write */
5353
54+#define BPF_LOAD_ACQ 0x100 /* load-acquire */
55+#define BPF_STORE_REL 0x110 /* store-release */
56+
5457 enum bpf_cond_pseudo_jmp {
5558 BPF_MAY_GOTO = 0,
5659 };
@@ -1207,6 +1210,7 @@ enum bpf_perf_event_type { · 1150 unmodified lines
12071210 #define BPF_F_BEFORE (1U << 3)
12081211 #define BPF_F_AFTER (1U << 4)
12091212 #define BPF_F_ID (1U << 5)
1213+#define BPF_F_PREORDER (1U << 6)
12101214 #define BPF_F_LINK BPF_F_LINK /* 1 << 13 */
12111215
12121216 /* If BPF_F_STRICT_ALIGNMENT is used in BPF_PROG_LOAD command, the
@@ -1648,6 +1652,7 @@ union bpf_attr { · 435 unmodified lines
16481652 };
16491653 __u32 next_id;
16501654 __u32 open_flags;
1655+ __s32 fd_by_id_token_fd;
16511656 };
16521657
16531658 struct { /* anonymous struct used by BPF_OBJ_GET_INFO_BY_FD */
@@ -6019,7 +6024,10 @@ union bpf_attr { · 4365 unmodified lines
60196024 FN(user_ringbuf_drain, 209, ##ctx) \
60206025 FN(cgrp_storage_get, 210, ##ctx) \
60216026 FN(cgrp_storage_delete, 211, ##ctx) \
6022− /* */
6027+ /* This helper list is effectively frozen. If you are trying to \
6028+ * add a new helper, you should add a kfunc instead which has \
6029+ * less stability guarantees. See Documentation/bpf/kfuncs.rst \
6030+ */
60236031
60246032 /* backwards-compatibility macros for users of __BPF_FUNC_MAPPER that don't
60256033 * know or care about integer value that is now passed as second argument
@@ -6913,6 +6921,12 @@ enum { · 887 unmodified lines
69136921 BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7F,
69146922 };
69156923
6924+enum {
6925+ SK_BPF_CB_TX_TIMESTAMPING = 1<<0,
6926+ SK_BPF_CB_MASK = (SK_BPF_CB_TX_TIMESTAMPING - 1) |
6927+ SK_BPF_CB_TX_TIMESTAMPING
6928+};
6929+
69166930 /* List of known BPF sock_ops operators.
69176931 * New entries can only be added at the end
69186932 */
@@ -7025,6 +7039,29 @@ enum { · 106 unmodified lines
70257039 * by the kernel or the
70267040 * earlier bpf-progs.
70277041 */
7042+ BPF_SOCK_OPS_TSTAMP_SCHED_CB, /* Called when skb is passing
7043+ * through dev layer when
7044+ * SK_BPF_CB_TX_TIMESTAMPING
7045+ * feature is on.
7046+ */
7047+ BPF_SOCK_OPS_TSTAMP_SND_SW_CB, /* Called when skb is about to send
7048+ * to the nic when SK_BPF_CB_TX_TIMESTAMPING
7049+ * feature is on.
7050+ */
7051+ BPF_SOCK_OPS_TSTAMP_SND_HW_CB, /* Called in hardware phase when
7052+ * SK_BPF_CB_TX_TIMESTAMPING feature
7053+ * is on.
7054+ */
7055+ BPF_SOCK_OPS_TSTAMP_ACK_CB, /* Called when all the skbs in the
7056+ * same sendmsg call are acked
7057+ * when SK_BPF_CB_TX_TIMESTAMPING
7058+ * feature is on.
7059+ */
7060+ BPF_SOCK_OPS_TSTAMP_SENDMSG_CB, /* Called when every sendmsg syscall
7061+ * is triggered. It's used to correlate
7062+ * sendmsg timestamp with corresponding
7063+ * tskey.
7064+ */
70287065 };
70297066
70307067 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -7091,6 +7128,7 @@ enum { · 60 unmodified lines
70917128 TCP_BPF_SYN_IP = 1006, /* Copy the IP[46] and TCP header */
70927129 TCP_BPF_SYN_MAC = 1007, /* Copy the MAC, IP[46], and TCP header */
70937130 TCP_BPF_SOCK_OPS_CB_FLAGS = 1008, /* Get or Set TCP sock ops flags */
7131+ SK_BPF_CB_FLAGS = 1009, /* Get or set sock ops flags in socket */
70947132 };
70957133
70967134 enum {
include/uapi/linux/btf.h+2−1
@@ -36,7 +36,8 @@ struct btf_type { · 35 unmodified lines
3636 * bits 24-28: kind (e.g. int, ptr, array...etc)
3737 * bits 29-30: unused
3838 * bit 31: kind_flag, currently used by
39− * struct, union, enum, fwd and enum64
39+ * struct, union, enum, fwd, enum64,
40+ * decl_tag and type_tag
4041 */
4142 __u32 info;
4243 /* "size" is used by INT, ENUM, STRUCT, UNION, DATASEC and ENUM64.
include/uapi/linux/btrfs.h+13−3
@@ -615,7 +615,9 @@ struct btrfs_ioctl_clone_range_args { · 614 unmodified lines
615615 */
616616 #define BTRFS_DEFRAG_RANGE_COMPRESS 1
617617 #define BTRFS_DEFRAG_RANGE_START_IO 2
618+#define BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL 4
618619 #define BTRFS_DEFRAG_RANGE_FLAGS_SUPP (BTRFS_DEFRAG_RANGE_COMPRESS | \
620+ BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL | \
619621 BTRFS_DEFRAG_RANGE_START_IO)
620622
621623 struct btrfs_ioctl_defrag_range_args {
@@ -640,10 +642,18 @@ struct btrfs_ioctl_defrag_range_args { · 18 unmodified lines
640642
641643 /*
642644 * which compression method to use if turning on compression
643− * for this defrag operation. If unspecified, zlib will
644− * be used
645+ * for this defrag operation. If unspecified, zlib will be
646+ * used. If compression level is also being specified, set the
647+ * BTRFS_DEFRAG_RANGE_COMPRESS_LEVEL flag and fill the compress
648+ * member structure instead of the compress_type field.
645649 */
646− __u32 compress_type;
650+ union {
651+ __u32 compress_type;
652+ struct {
653+ __u8 type;
654+ __s8 level;
655+ } compress;
656+ };
647657
648658 /* spare for later */
649659 __u32 unused[4];
include/uapi/linux/can.h+2−1
@@ -182,7 +182,7 @@ struct canfd_frame { · 181 unmodified lines
182182 /*
183183 * defined bits for canxl_frame.flags
184184 *
185− * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC
185+ * The canxl_frame.flags element contains three bits CANXL_[XLF|SEC|RRS]
186186 * and shares the relative position of the struct can[fd]_frame.len element.
187187 * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame.
188188 * As a side effect setting this bit intentionally breaks the length checks
@@ -192,6 +192,7 @@ struct canfd_frame { · 3 unmodified lines
192192 */
193193 #define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
194194 #define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
195+#define CANXL_RRS 0x02 /* Remote Request Substitution */
195196
196197 /* the 8-bit VCID is optionally placed in the canxl_frame.prio element */
197198 #define CANXL_VCID_OFFSET 16 /* bit offset of VCID in prio element */
include/uapi/linux/capability.h+1−0
@@ -275,6 +275,7 @@ struct vfs_ns_cap_data { · 274 unmodified lines
275275 /* Allow setting encryption key on loopback filesystem */
276276 /* Allow setting zone reclaim policy */
277277 /* Allow everything under CAP_BPF and CAP_PERFMON for backward compatibility */
278+/* Allow setting hardware protection emergency action */
278279
279280 #define CAP_SYS_ADMIN 21
280281
include/uapi/linux/const.h+1−1
@@ -33,7 +33,7 @@ · 32 unmodified lines
3333 * Missing asm support
3434 *
3535 * __BIT128() would not work in the asm code, as it shifts an
36− * 'unsigned __init128' data type as direct representation of
36+ * 'unsigned __int128' data type as direct representation of
3737 * 128 bit constants is not supported in the gcc compiler, as
3838 * they get silently truncated.
3939 *
include/uapi/linux/counter.h+2−0
@@ -65,6 +65,8 @@ enum counter_event_type { · 64 unmodified lines
6565 COUNTER_EVENT_CHANGE_OF_STATE,
6666 /* Count value captured */
6767 COUNTER_EVENT_CAPTURE,
68+ /* Direction change detected */
69+ COUNTER_EVENT_DIRECTION_CHANGE,
6870 };
6971
7072 /**
include/uapi/linux/counter/microchip-tcb-capture.h+40−0
@@ -0,0 +1,40 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Channel numbers used by the microchip-tcb-capture driver
4+ * Copyright (C) 2025 Bence Csókás
5+ */
6+#ifndef _UAPI_COUNTER_MCHP_TCB_H_
7+#define _UAPI_COUNTER_MCHP_TCB_H_
8+
9+/*
10+ * The driver defines the following components:
11+ *
12+ * Count 0
13+ * \__ Synapse 0 -- Signal 0 (Channel A, i.e. TIOA)
14+ * \__ Synapse 1 -- Signal 1 (Channel B, i.e. TIOB)
15+ * \__ Extension capture0 (RA register)
16+ * \__ Extension capture1 (RB register)
17+ *
18+ * It also supports the following events:
19+ *
20+ * Channel 0:
21+ * - CV register changed
22+ * - CV overflowed
23+ * - RA captured
24+ * Channel 1:
25+ * - RB captured
26+ * Channel 2:
27+ * - RC compare triggered
28+ */
29+
30+/* Capture extensions */
31+#define COUNTER_MCHP_EXCAP_RA 0
32+#define COUNTER_MCHP_EXCAP_RB 1
33+
34+/* Event channels */
35+#define COUNTER_MCHP_EVCHN_CV 0
36+#define COUNTER_MCHP_EVCHN_RA 0
37+#define COUNTER_MCHP_EVCHN_RB 1
38+#define COUNTER_MCHP_EVCHN_RC 2
39+
40+#endif /* _UAPI_COUNTER_MCHP_TCB_H_ */
include/uapi/linux/elf.h+132−5
@@ -11,6 +11,7 @@ typedef __u16 Elf32_Half; · 10 unmodified lines
1111 typedef __u32 Elf32_Off;
1212 typedef __s32 Elf32_Sword;
1313 typedef __u32 Elf32_Word;
14+typedef __u16 Elf32_Versym;
1415
1516 /* 64-bit ELF base types. */
1617 typedef __u64 Elf64_Addr;
@@ -21,6 +22,7 @@ typedef __s32 Elf64_Sword; · 4 unmodified lines
2122 typedef __u32 Elf64_Word;
2223 typedef __u64 Elf64_Xword;
2324 typedef __s64 Elf64_Sxword;
25+typedef __u16 Elf64_Versym;
2426
2527 /* These constants are for the segment types stored in the image headers */
2628 #define PT_NULL 0
@@ -107,6 +109,7 @@ typedef __s64 Elf64_Sxword; · 80 unmodified lines
107109 #define DT_VALRNGLO 0x6ffffd00
108110 #define DT_VALRNGHI 0x6ffffdff
109111 #define DT_ADDRRNGLO 0x6ffffe00
112+#define DT_GNU_HASH 0x6ffffef5
110113 #define DT_ADDRRNGHI 0x6ffffeff
111114 #define DT_VERSYM 0x6ffffff0
112115 #define DT_RELACOUNT 0x6ffffff9
@@ -125,6 +128,8 @@ typedef __s64 Elf64_Sxword; · 12 unmodified lines
125128 #define STB_GLOBAL 1
126129 #define STB_WEAK 2
127130
131+#define STN_UNDEF 0
132+
128133 #define STT_NOTYPE 0
129134 #define STT_OBJECT 1
130135 #define STT_FUNC 2
@@ -133,6 +138,9 @@ typedef __s64 Elf64_Sxword; · 2 unmodified lines
133138 #define STT_COMMON 5
134139 #define STT_TLS 6
135140
141+#define VER_FLG_BASE 0x1
142+#define VER_FLG_WEAK 0x2
143+
136144 #define ELF_ST_BIND(x) ((x) >> 4)
137145 #define ELF_ST_TYPE(x) ((x) & 0xf)
138146 #define ELF32_ST_BIND(x) ELF_ST_BIND(x)
@@ -291,8 +299,18 @@ typedef struct elf64_phdr { · 152 unmodified lines
291299 #define SHF_WRITE 0x1
292300 #define SHF_ALLOC 0x2
293301 #define SHF_EXECINSTR 0x4
302+#define SHF_MERGE 0x10
303+#define SHF_STRINGS 0x20
304+#define SHF_INFO_LINK 0x40
305+#define SHF_LINK_ORDER 0x80
306+#define SHF_OS_NONCONFORMING 0x100
307+#define SHF_GROUP 0x200
308+#define SHF_TLS 0x400
294309 #define SHF_RELA_LIVEPATCH 0x00100000
295310 #define SHF_RO_AFTER_INIT 0x00200000
311+#define SHF_ORDERED 0x04000000
312+#define SHF_EXCLUDE 0x08000000
313+#define SHF_MASKOS 0x0ff00000
296314 #define SHF_MASKPROC 0xf0000000
297315
298316 /* special section indexes */
@@ -368,101 +386,180 @@ typedef struct elf64_shdr { · 69 unmodified lines
368386 #define ELF_OSABI ELFOSABI_NONE
369387 #endif
370388
389+/* Note definitions: NN_ defines names. NT_ defines types. */
390+
391+#define NN_GNU_PROPERTY_TYPE_0 "GNU"
392+#define NT_GNU_PROPERTY_TYPE_0 5
393+
371394 /*
372395 * Notes used in ET_CORE. Architectures export some of the arch register sets
373396 * using the corresponding note types via the PTRACE_GETREGSET and
374397 * PTRACE_SETREGSET requests.
375− * The note name for these types is "LINUX", except NT_PRFPREG that is named
376− * "CORE".
377398 */
399+#define NN_PRSTATUS "CORE"
378400 #define NT_PRSTATUS 1
401+#define NN_PRFPREG "CORE"
379402 #define NT_PRFPREG 2
403+#define NN_PRPSINFO "CORE"
380404 #define NT_PRPSINFO 3
405+#define NN_TASKSTRUCT "CORE"
381406 #define NT_TASKSTRUCT 4
407+#define NN_AUXV "CORE"
382408 #define NT_AUXV 6
383409 /*
384410 * Note to userspace developers: size of NT_SIGINFO note may increase
385411 * in the future to accomodate more fields, don't assume it is fixed!
386412 */
413+#define NN_SIGINFO "CORE"
387414 #define NT_SIGINFO 0x53494749
415+#define NN_FILE "CORE"
388416 #define NT_FILE 0x46494c45
417+#define NN_PRXFPREG "LINUX"
389418 #define NT_PRXFPREG 0x46e62b7f /* copied from gdb5.1/include/elf/common.h */
419+#define NN_PPC_VMX "LINUX"
390420 #define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
421+#define NN_PPC_SPE "LINUX"
391422 #define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */
423+#define NN_PPC_VSX "LINUX"
392424 #define NT_PPC_VSX 0x102 /* PowerPC VSX registers */
425+#define NN_PPC_TAR "LINUX"
393426 #define NT_PPC_TAR 0x103 /* Target Address Register */
427+#define NN_PPC_PPR "LINUX"
394428 #define NT_PPC_PPR 0x104 /* Program Priority Register */
429+#define NN_PPC_DSCR "LINUX"
395430 #define NT_PPC_DSCR 0x105 /* Data Stream Control Register */
431+#define NN_PPC_EBB "LINUX"
396432 #define NT_PPC_EBB 0x106 /* Event Based Branch Registers */
433+#define NN_PPC_PMU "LINUX"
397434 #define NT_PPC_PMU 0x107 /* Performance Monitor Registers */
435+#define NN_PPC_TM_CGPR "LINUX"
398436 #define NT_PPC_TM_CGPR 0x108 /* TM checkpointed GPR Registers */
437+#define NN_PPC_TM_CFPR "LINUX"
399438 #define NT_PPC_TM_CFPR 0x109 /* TM checkpointed FPR Registers */
439+#define NN_PPC_TM_CVMX "LINUX"
400440 #define NT_PPC_TM_CVMX 0x10a /* TM checkpointed VMX Registers */
441+#define NN_PPC_TM_CVSX "LINUX"
401442 #define NT_PPC_TM_CVSX 0x10b /* TM checkpointed VSX Registers */
443+#define NN_PPC_TM_SPR "LINUX"
402444 #define NT_PPC_TM_SPR 0x10c /* TM Special Purpose Registers */
445+#define NN_PPC_TM_CTAR "LINUX"
403446 #define NT_PPC_TM_CTAR 0x10d /* TM checkpointed Target Address Register */
447+#define NN_PPC_TM_CPPR "LINUX"
404448 #define NT_PPC_TM_CPPR 0x10e /* TM checkpointed Program Priority Register */
449+#define NN_PPC_TM_CDSCR "LINUX"
405450 #define NT_PPC_TM_CDSCR 0x10f /* TM checkpointed Data Stream Control Register */
451+#define NN_PPC_PKEY "LINUX"
406452 #define NT_PPC_PKEY 0x110 /* Memory Protection Keys registers */
453+#define NN_PPC_DEXCR "LINUX"
407454 #define NT_PPC_DEXCR 0x111 /* PowerPC DEXCR registers */
455+#define NN_PPC_HASHKEYR "LINUX"
408456 #define NT_PPC_HASHKEYR 0x112 /* PowerPC HASHKEYR register */
457+#define NN_386_TLS "LINUX"
409458 #define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */
459+#define NN_386_IOPERM "LINUX"
410460 #define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */
461+#define NN_X86_XSTATE "LINUX"
411462 #define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */
412463 /* Old binutils treats 0x203 as a CET state */
464+#define NN_X86_SHSTK "LINUX"
413465 #define NT_X86_SHSTK 0x204 /* x86 SHSTK state */
466+#define NN_X86_XSAVE_LAYOUT "LINUX"
414467 #define NT_X86_XSAVE_LAYOUT 0x205 /* XSAVE layout description */
468+#define NN_S390_HIGH_GPRS "LINUX"
415469 #define NT_S390_HIGH_GPRS 0x300 /* s390 upper register halves */
470+#define NN_S390_TIMER "LINUX"
416471 #define NT_S390_TIMER 0x301 /* s390 timer register */
472+#define NN_S390_TODCMP "LINUX"
417473 #define NT_S390_TODCMP 0x302 /* s390 TOD clock comparator register */
474+#define NN_S390_TODPREG "LINUX"
418475 #define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
476+#define NN_S390_CTRS "LINUX"
419477 #define NT_S390_CTRS 0x304 /* s390 control registers */
478+#define NN_S390_PREFIX "LINUX"
420479 #define NT_S390_PREFIX 0x305 /* s390 prefix register */
480+#define NN_S390_LAST_BREAK "LINUX"
421481 #define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
482+#define NN_S390_SYSTEM_CALL "LINUX"
422483 #define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
484+#define NN_S390_TDB "LINUX"
423485 #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */
486+#define NN_S390_VXRS_LOW "LINUX"
424487 #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */
488+#define NN_S390_VXRS_HIGH "LINUX"
425489 #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */
490+#define NN_S390_GS_CB "LINUX"
426491 #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */
492+#define NN_S390_GS_BC "LINUX"
427493 #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */
494+#define NN_S390_RI_CB "LINUX"
428495 #define NT_S390_RI_CB 0x30d /* s390 runtime instrumentation */
496+#define NN_S390_PV_CPU_DATA "LINUX"
429497 #define NT_S390_PV_CPU_DATA 0x30e /* s390 protvirt cpu dump data */
498+#define NN_ARM_VFP "LINUX"
430499 #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
500+#define NN_ARM_TLS "LINUX"
431501 #define NT_ARM_TLS 0x401 /* ARM TLS register */
502+#define NN_ARM_HW_BREAK "LINUX"
432503 #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
504+#define NN_ARM_HW_WATCH "LINUX"
433505 #define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
506+#define NN_ARM_SYSTEM_CALL "LINUX"
434507 #define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
508+#define NN_ARM_SVE "LINUX"
435509 #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
510+#define NN_ARM_PAC_MASK "LINUX"
436511 #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */
512+#define NN_ARM_PACA_KEYS "LINUX"
437513 #define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */
514+#define NN_ARM_PACG_KEYS "LINUX"
438515 #define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */
516+#define NN_ARM_TAGGED_ADDR_CTRL "LINUX"
439517 #define NT_ARM_TAGGED_ADDR_CTRL 0x409 /* arm64 tagged address control (prctl()) */
518+#define NN_ARM_PAC_ENABLED_KEYS "LINUX"
440519 #define NT_ARM_PAC_ENABLED_KEYS 0x40a /* arm64 ptr auth enabled keys (prctl()) */
520+#define NN_ARM_SSVE "LINUX"
441521 #define NT_ARM_SSVE 0x40b /* ARM Streaming SVE registers */
522+#define NN_ARM_ZA "LINUX"
442523 #define NT_ARM_ZA 0x40c /* ARM SME ZA registers */
524+#define NN_ARM_ZT "LINUX"
443525 #define NT_ARM_ZT 0x40d /* ARM SME ZT registers */
526+#define NN_ARM_FPMR "LINUX"
444527 #define NT_ARM_FPMR 0x40e /* ARM floating point mode register */
528+#define NN_ARM_POE "LINUX"
445529 #define NT_ARM_POE 0x40f /* ARM POE registers */
530+#define NN_ARM_GCS "LINUX"
446531 #define NT_ARM_GCS 0x410 /* ARM GCS state */
532+#define NN_ARC_V2 "LINUX"
447533 #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
534+#define NN_VMCOREDD "LINUX"
448535 #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
536+#define NN_MIPS_DSP "LINUX"
449537 #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
538+#define NN_MIPS_FP_MODE "LINUX"
450539 #define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */
540+#define NN_MIPS_MSA "LINUX"
451541 #define NT_MIPS_MSA 0x802 /* MIPS SIMD registers */
542+#define NN_RISCV_CSR "LINUX"
452543 #define NT_RISCV_CSR 0x900 /* RISC-V Control and Status Registers */
544+#define NN_RISCV_VECTOR "LINUX"
453545 #define NT_RISCV_VECTOR 0x901 /* RISC-V vector registers */
546+#define NN_RISCV_TAGGED_ADDR_CTRL "LINUX"
454547 #define NT_RISCV_TAGGED_ADDR_CTRL 0x902 /* RISC-V tagged address control (prctl()) */
548+#define NN_LOONGARCH_CPUCFG "LINUX"
455549 #define NT_LOONGARCH_CPUCFG 0xa00 /* LoongArch CPU config registers */
550+#define NN_LOONGARCH_CSR "LINUX"
456551 #define NT_LOONGARCH_CSR 0xa01 /* LoongArch control and status registers */
552+#define NN_LOONGARCH_LSX "LINUX"
457553 #define NT_LOONGARCH_LSX 0xa02 /* LoongArch Loongson SIMD Extension registers */
554+#define NN_LOONGARCH_LASX "LINUX"
458555 #define NT_LOONGARCH_LASX 0xa03 /* LoongArch Loongson Advanced SIMD Extension registers */
556+#define NN_LOONGARCH_LBT "LINUX"
459557 #define NT_LOONGARCH_LBT 0xa04 /* LoongArch Loongson Binary Translation registers */
558+#define NN_LOONGARCH_HW_BREAK "LINUX"
460559 #define NT_LOONGARCH_HW_BREAK 0xa05 /* LoongArch hardware breakpoint registers */
560+#define NN_LOONGARCH_HW_WATCH "LINUX"
461561 #define NT_LOONGARCH_HW_WATCH 0xa06 /* LoongArch hardware watchpoint registers */
462562
463−/* Note types with note name "GNU" */
464−#define NT_GNU_PROPERTY_TYPE_0 5
465−
466563 /* Note header in a PT_NOTE section */
467564 typedef struct elf32_note {
468565 Elf32_Word n_namesz; /* Name size */
@@ -483,4 +580,34 @@ typedef struct elf64_note { · 14 unmodified lines
483580 /* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */
484581 #define GNU_PROPERTY_AARCH64_FEATURE_1_BTI (1U << 0)
485582
583+typedef struct {
584+ Elf32_Half vd_version;
585+ Elf32_Half vd_flags;
586+ Elf32_Half vd_ndx;
587+ Elf32_Half vd_cnt;
588+ Elf32_Word vd_hash;
589+ Elf32_Word vd_aux;
590+ Elf32_Word vd_next;
591+} Elf32_Verdef;
592+
593+typedef struct {
594+ Elf64_Half vd_version;
595+ Elf64_Half vd_flags;
596+ Elf64_Half vd_ndx;
597+ Elf64_Half vd_cnt;
598+ Elf64_Word vd_hash;
599+ Elf64_Word vd_aux;
600+ Elf64_Word vd_next;
601+} Elf64_Verdef;
602+
603+typedef struct {
604+ Elf32_Word vda_name;
605+ Elf32_Word vda_next;
606+} Elf32_Verdaux;
607+
608+typedef struct {
609+ Elf64_Word vda_name;
610+ Elf64_Word vda_next;
611+} Elf64_Verdaux;
612+
486613 #endif /* _UAPI_LINUX_ELF_H */
include/uapi/linux/errqueue.h+1−0
@@ -73,6 +73,7 @@ enum { · 72 unmodified lines
7373 SCM_TSTAMP_SND, /* driver passed skb to NIC, or HW */
7474 SCM_TSTAMP_SCHED, /* data entered the packet scheduler */
7575 SCM_TSTAMP_ACK, /* data acknowledged by peer */
76+ SCM_TSTAMP_COMPLETION, /* packet tx completion */
7677 };
7778
7879 #endif /* _UAPI_LINUX_ERRQUEUE_H */
include/uapi/linux/ethtool.h+22−0
@@ -2059,6 +2059,24 @@ enum ethtool_link_mode_bit_indices { · 2058 unmodified lines
20592059 ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100,
20602060 ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101,
20612061 ETHTOOL_LINK_MODE_10baseT1BRR_Full_BIT = 102,
2062+ ETHTOOL_LINK_MODE_200000baseCR_Full_BIT = 103,
2063+ ETHTOOL_LINK_MODE_200000baseKR_Full_BIT = 104,
2064+ ETHTOOL_LINK_MODE_200000baseDR_Full_BIT = 105,
2065+ ETHTOOL_LINK_MODE_200000baseDR_2_Full_BIT = 106,
2066+ ETHTOOL_LINK_MODE_200000baseSR_Full_BIT = 107,
2067+ ETHTOOL_LINK_MODE_200000baseVR_Full_BIT = 108,
2068+ ETHTOOL_LINK_MODE_400000baseCR2_Full_BIT = 109,
2069+ ETHTOOL_LINK_MODE_400000baseKR2_Full_BIT = 110,
2070+ ETHTOOL_LINK_MODE_400000baseDR2_Full_BIT = 111,
2071+ ETHTOOL_LINK_MODE_400000baseDR2_2_Full_BIT = 112,
2072+ ETHTOOL_LINK_MODE_400000baseSR2_Full_BIT = 113,
2073+ ETHTOOL_LINK_MODE_400000baseVR2_Full_BIT = 114,
2074+ ETHTOOL_LINK_MODE_800000baseCR4_Full_BIT = 115,
2075+ ETHTOOL_LINK_MODE_800000baseKR4_Full_BIT = 116,
2076+ ETHTOOL_LINK_MODE_800000baseDR4_Full_BIT = 117,
2077+ ETHTOOL_LINK_MODE_800000baseDR4_2_Full_BIT = 118,
2078+ ETHTOOL_LINK_MODE_800000baseSR4_Full_BIT = 119,
2079+ ETHTOOL_LINK_MODE_800000baseVR4_Full_BIT = 120,
20622080
20632081 /* must be last entry */
20642082 __ETHTOOL_LINK_MODE_MASK_NBITS
@@ -2271,6 +2289,10 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 206 unmodified lines
22712289 * be exploited to reduce the RSS queue spread.
22722290 */
22732291 #define RXH_XFRM_SYM_XOR (1 << 0)
2292+/* Similar to SYM_XOR, except that one copy of the XOR'ed fields is replaced by
2293+ * an OR of the same fields
2294+ */
2295+#define RXH_XFRM_SYM_OR_XOR (1 << 1)
22742296 #define RXH_XFRM_NO_CHANGE 0xff
22752297
22762298 /* L2-L4 network traffic flow types */
include/uapi/linux/f2fs.h+7−0
@@ -44,6 +44,7 @@ · 43 unmodified lines
4444 #define F2FS_IOC_COMPRESS_FILE _IO(F2FS_IOCTL_MAGIC, 24)
4545 #define F2FS_IOC_START_ATOMIC_REPLACE _IO(F2FS_IOCTL_MAGIC, 25)
4646 #define F2FS_IOC_GET_DEV_ALIAS_FILE _IOR(F2FS_IOCTL_MAGIC, 26, __u32)
47+#define F2FS_IOC_IO_PRIO _IOW(F2FS_IOCTL_MAGIC, 27, __u32)
4748
4849 /*
4950 * should be same as XFS_IOC_GOINGDOWN.
@@ -63,6 +64,12 @@ · 13 unmodified lines
6364 #define F2FS_TRIM_FILE_ZEROOUT 0x2 /* zero out */
6465 #define F2FS_TRIM_FILE_MASK 0x3
6566
67+/* for F2FS_IOC_IO_PRIO */
68+enum {
69+ F2FS_IOPRIO_WRITE = 1, /* high write priority */
70+ F2FS_IOPRIO_MAX,
71+};
72+
6673 struct f2fs_gc_range {
6774 __u32 sync;
6875 __u64 start;
include/uapi/linux/fanotify.h+10−0
@@ -28,6 +28,8 @@ · 27 unmodified lines
2828 /* #define FAN_DIR_MODIFY 0x00080000 */ /* Deprecated (reserved) */
2929
3030 #define FAN_PRE_ACCESS 0x00100000 /* Pre-content access hook */
31+#define FAN_MNT_ATTACH 0x01000000 /* Mount was attached */
32+#define FAN_MNT_DETACH 0x02000000 /* Mount was detached */
3133
3234 #define FAN_EVENT_ON_CHILD 0x08000000 /* Interested in child events */
3335
@@ -64,6 +66,7 @@ · 30 unmodified lines
6466 #define FAN_REPORT_NAME 0x00000800 /* Report events with name */
6567 #define FAN_REPORT_TARGET_FID 0x00001000 /* Report dirent target id */
6668 #define FAN_REPORT_FD_ERROR 0x00002000 /* event->fd can report error */
69+#define FAN_REPORT_MNT 0x00004000 /* Report mount events */
6770
6871 /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */
6972 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
@@ -94,6 +97,7 @@ · 24 unmodified lines
9497 #define FAN_MARK_INODE 0x00000000
9598 #define FAN_MARK_MOUNT 0x00000010
9699 #define FAN_MARK_FILESYSTEM 0x00000100
100+#define FAN_MARK_MNTNS 0x00000110
97101
98102 /*
99103 * Convenience macro - FAN_MARK_IGNORE requires FAN_MARK_IGNORED_SURV_MODIFY
@@ -147,6 +151,7 @@ struct fanotify_event_metadata { · 47 unmodified lines
147151 #define FAN_EVENT_INFO_TYPE_PIDFD 4
148152 #define FAN_EVENT_INFO_TYPE_ERROR 5
149153 #define FAN_EVENT_INFO_TYPE_RANGE 6
154+#define FAN_EVENT_INFO_TYPE_MNT 7
150155
151156 /* Special info types for FAN_RENAME */
152157 #define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
@@ -200,6 +205,11 @@ struct fanotify_event_info_range { · 47 unmodified lines
200205 __u64 count;
201206 };
202207
208+struct fanotify_event_info_mnt {
209+ struct fanotify_event_info_header hdr;
210+ __u64 mnt_id;
211+};
212+
203213 /*
204214 * User space may need to record additional information about its decision.
205215 * The extra information type records what kind of information is included.
include/uapi/linux/fib_rules.h+3−0
@@ -70,6 +70,9 @@ enum { · 69 unmodified lines
7070 FRA_DSCP, /* dscp */
7171 FRA_FLOWLABEL, /* flowlabel */
7272 FRA_FLOWLABEL_MASK, /* flowlabel mask */
73+ FRA_SPORT_MASK, /* sport mask */
74+ FRA_DPORT_MASK, /* dport mask */
75+ FRA_DSCP_MASK, /* dscp mask */
7376 __FRA_MAX
7477 };
7578
include/uapi/linux/firewire-cdev.h+2−1
@@ -449,7 +449,8 @@ struct fw_cdev_event_phy_packet { · 448 unmodified lines
449449 * which the packet arrived. For %FW_CDEV_EVENT_PHY_PACKET_SENT2 and non-ping packet,
450450 * the time stamp of isochronous cycle at which the packet was sent. For ping packet,
451451 * the tick count for round-trip time measured by 1394 OHCI controller.
452− * The time stamp of isochronous cycle at which either the response was sent for
452+ *
453+ * The time stamp of isochronous cycle at which either the response was sent for
453454 * %FW_CDEV_EVENT_PHY_PACKET_SENT2 or the request arrived for
454455 * %FW_CDEV_EVENT_PHY_PACKET_RECEIVED2.
455456 * @data: Incoming data
include/uapi/linux/fs.h+2−4
@@ -212,10 +212,8 @@ struct fsxattr { · 211 unmodified lines
212212 #define BLKROTATIONAL _IO(0x12,126)
213213 #define BLKZEROOUT _IO(0x12,127)
214214 #define BLKGETDISKSEQ _IOR(0x12,128,__u64)
215−/*
216− * A jump here: 130-136 are reserved for zoned block devices
217− * (see uapi/linux/blkzoned.h)
218− */
215+/* 130-136 are used by zoned block device ioctls (uapi/linux/blkzoned.h) */
216+/* 137-141 are used by blk-crypto ioctls (uapi/linux/blk-crypto.h) */
219217
220218 #define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
221219 #define FIBMAP _IO(0x00,1) /* bmap access */
include/uapi/linux/fuse.h+9−3
@@ -229,6 +229,9 @@ · 228 unmodified lines
229229 * - FUSE_URING_IN_OUT_HEADER_SZ
230230 * - FUSE_URING_OP_IN_OUT_SZ
231231 * - enum fuse_uring_cmd
232+ *
233+ * 7.43
234+ * - add FUSE_REQUEST_TIMEOUT
232235 */
233236
234237 #ifndef _LINUX_FUSE_H
@@ -264,7 +267,7 @@ · 29 unmodified lines
264267 #define FUSE_KERNEL_VERSION 7
265268
266269 /** Minor version number of this interface */
267−#define FUSE_KERNEL_MINOR_VERSION 42
270+#define FUSE_KERNEL_MINOR_VERSION 43
268271
269272 /** The node ID of the root inode */
270273 #define FUSE_ROOT_ID 1
@@ -435,6 +438,8 @@ struct fuse_file_lock { · 164 unmodified lines
435438 * of the request ID indicates resend requests
436439 * FUSE_ALLOW_IDMAP: allow creation of idmapped mounts
437440 * FUSE_OVER_IO_URING: Indicate that client supports io-uring
441+ * FUSE_REQUEST_TIMEOUT: kernel supports timing out requests.
442+ * init_out.request_timeout contains the timeout (in secs)
438443 */
439444 #define FUSE_ASYNC_READ (1 << 0)
440445 #define FUSE_POSIX_LOCKS (1 << 1)
@@ -477,11 +482,11 @@ struct fuse_file_lock { · 36 unmodified lines
477482 #define FUSE_PASSTHROUGH (1ULL << 37)
478483 #define FUSE_NO_EXPORT_SUPPORT (1ULL << 38)
479484 #define FUSE_HAS_RESEND (1ULL << 39)
480−
481485 /* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */
482486 #define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP
483487 #define FUSE_ALLOW_IDMAP (1ULL << 40)
484488 #define FUSE_OVER_IO_URING (1ULL << 41)
489+#define FUSE_REQUEST_TIMEOUT (1ULL << 42)
485490
486491 /**
487492 * CUSE INIT request/reply flags
@@ -909,7 +914,8 @@ struct fuse_init_out { · 421 unmodified lines
909914 uint16_t map_alignment;
910915 uint32_t flags2;
911916 uint32_t max_stack_depth;
912− uint32_t unused[6];
917+ uint16_t request_timeout;
918+ uint16_t unused[11];
913919 };
914920
915921 #define CUSE_INIT_INFO_MAX 4096
include/uapi/linux/if_cablemodem.h+0−23
@@ -1,23 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2−#ifndef _LINUX_CABLEMODEM_H_
3−#define _LINUX_CABLEMODEM_H_
4−/*
5− * Author: Franco Venturi <fventuri@mediaone.net>
6− * Copyright 1998 Franco Venturi
7− *
8− * This program is free software; you can redistribute it
9− * and/or modify it under the terms of the GNU General
10− * Public License as published by the Free Software
11− * Foundation; either version 2 of the License, or (at
12− * your option) any later version.
13− */
14−
15−/* some useful defines for sb1000.c e cmconfig.c - fv */
16−#define SIOCGCMSTATS (SIOCDEVPRIVATE+0) /* get cable modem stats */
17−#define SIOCGCMFIRMWARE (SIOCDEVPRIVATE+1) /* get cm firmware version */
18−#define SIOCGCMFREQUENCY (SIOCDEVPRIVATE+2) /* get cable modem frequency */
19−#define SIOCSCMFREQUENCY (SIOCDEVPRIVATE+3) /* set cable modem frequency */
20−#define SIOCGCMPIDS (SIOCDEVPRIVATE+4) /* get cable modem PIDs */
21−#define SIOCSCMPIDS (SIOCDEVPRIVATE+5) /* set cable modem PIDs */
22−
23−#endif
include/uapi/linux/if_link.h+7−0
@@ -378,6 +378,7 @@ enum { · 377 unmodified lines
378378 IFLA_GRO_IPV4_MAX_SIZE,
379379 IFLA_DPLL_PIN,
380380 IFLA_MAX_PACING_OFFLOAD_HORIZON,
381+ IFLA_NETNS_IMMUTABLE,
381382 __IFLA_MAX
382383 };
383384
@@ -1438,6 +1439,7 @@ enum { · 1054 unmodified lines
14381439 IFLA_GENEVE_TTL_INHERIT,
14391440 IFLA_GENEVE_DF,
14401441 IFLA_GENEVE_INNER_PROTO_INHERIT,
1442+ IFLA_GENEVE_PORT_RANGE,
14411443 __IFLA_GENEVE_MAX
14421444 };
14431445 #define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
@@ -1450,6 +1452,11 @@ enum ifla_geneve_df { · 6 unmodified lines
14501452 GENEVE_DF_MAX = __GENEVE_DF_END - 1,
14511453 };
14521454
1455+struct ifla_geneve_port_range {
1456+ __be16 low;
1457+ __be16 high;
1458+};
1459+
14531460 /* Bareudp section */
14541461 enum {
14551462 IFLA_BAREUDP_UNSPEC,
include/uapi/linux/if_xdp.h+10−0
@@ -127,6 +127,12 @@ struct xdp_options { · 126 unmodified lines
127127 */
128128 #define XDP_TXMD_FLAGS_CHECKSUM (1 << 1)
129129
130+/* Request launch time hardware offload. The device will schedule the packet for
131+ * transmission at a pre-determined time called launch time. The value of
132+ * launch time is communicated via launch_time field of struct xsk_tx_metadata.
133+ */
134+#define XDP_TXMD_FLAGS_LAUNCH_TIME (1 << 2)
135+
130136 /* AF_XDP offloads request. 'request' union member is consumed by the driver
131137 * when the packet is being transmitted. 'completion' union member is
132138 * filled by the driver when the transmit completion arrives.
@@ -142,6 +148,10 @@ struct xsk_tx_metadata { · 9 unmodified lines
142148 __u16 csum_start;
143149 /* Offset from csum_start where checksum should be stored. */
144150 __u16 csum_offset;
151+
152+ /* XDP_TXMD_FLAGS_LAUNCH_TIME */
153+ /* Launch time in nanosecond against the PTP HW Clock */
154+ __u64 launch_time;
145155 } request;
146156
147157 struct {
include/uapi/linux/iio/types.h+2−0
@@ -119,6 +119,7 @@ enum iio_event_type { · 118 unmodified lines
119119 IIO_EV_TYPE_CHANGE,
120120 IIO_EV_TYPE_MAG_REFERENCED,
121121 IIO_EV_TYPE_GESTURE,
122+ IIO_EV_TYPE_FAULT,
122123 };
123124
124125 enum iio_event_direction {
@@ -128,6 +129,7 @@ enum iio_event_direction { · 3 unmodified lines
128129 IIO_EV_DIR_NONE,
129130 IIO_EV_DIR_SINGLETAP,
130131 IIO_EV_DIR_DOUBLETAP,
132+ IIO_EV_DIR_FAULT_OPENWIRE,
131133 };
132134
133135 #endif /* _UAPI_IIO_TYPES_H_ */
include/uapi/linux/io_uring.h+58−1
@@ -87,6 +87,7 @@ struct io_uring_sqe { · 86 unmodified lines
8787 union {
8888 __s32 splice_fd_in;
8989 __u32 file_index;
90+ __u32 zcrx_ifq_idx;
9091 __u32 optlen;
9192 struct {
9293 __u16 addr_len;
@@ -278,6 +279,10 @@ enum io_uring_op { · 185 unmodified lines
278279 IORING_OP_FTRUNCATE,
279280 IORING_OP_BIND,
280281 IORING_OP_LISTEN,
282+ IORING_OP_RECV_ZC,
283+ IORING_OP_EPOLL_WAIT,
284+ IORING_OP_READV_FIXED,
285+ IORING_OP_WRITEV_FIXED,
281286
282287 /* this goes last, obviously */
283288 IORING_OP_LAST,
@@ -541,6 +546,7 @@ struct io_cqring_offsets { · 257 unmodified lines
541546 #define IORING_ENTER_REGISTERED_RING (1U << 4)
542547 #define IORING_ENTER_ABS_TIMER (1U << 5)
543548 #define IORING_ENTER_EXT_ARG_REG (1U << 6)
549+#define IORING_ENTER_NO_IOWAIT (1U << 7)
544550
545551 /*
546552 * Passed in for io_uring_setup(2). Copied back with updated info on success
@@ -578,6 +584,7 @@ struct io_uring_params { · 31 unmodified lines
578584 #define IORING_FEAT_RECVSEND_BUNDLE (1U << 14)
579585 #define IORING_FEAT_MIN_TIMEOUT (1U << 15)
580586 #define IORING_FEAT_RW_ATTR (1U << 16)
587+#define IORING_FEAT_NO_IOWAIT (1U << 17)
581588
582589 /*
583590 * io_uring_register(2) opcodes and arguments
@@ -639,7 +646,8 @@ enum io_uring_register_op { · 55 unmodified lines
639646 /* send MSG_RING without having a ring */
640647 IORING_REGISTER_SEND_MSG_RING = 31,
641648
642− /* 32 reserved for zc rx */
649+ /* register a netdev hw rx queue for zerocopy */
650+ IORING_REGISTER_ZCRX_IFQ = 32,
643651
644652 /* resize CQ ring */
645653 IORING_REGISTER_RESIZE_RINGS = 33,
@@ -956,6 +964,55 @@ enum io_uring_socket_op { · 310 unmodified lines
956964 SOCKET_URING_OP_SETSOCKOPT,
957965 };
958966
967+/* Zero copy receive refill queue entry */
968+struct io_uring_zcrx_rqe {
969+ __u64 off;
970+ __u32 len;
971+ __u32 __pad;
972+};
973+
974+struct io_uring_zcrx_cqe {
975+ __u64 off;
976+ __u64 __pad;
977+};
978+
979+/* The bit from which area id is encoded into offsets */
980+#define IORING_ZCRX_AREA_SHIFT 48
981+#define IORING_ZCRX_AREA_MASK (~(((__u64)1 << IORING_ZCRX_AREA_SHIFT) - 1))
982+
983+struct io_uring_zcrx_offsets {
984+ __u32 head;
985+ __u32 tail;
986+ __u32 rqes;
987+ __u32 __resv2;
988+ __u64 __resv[2];
989+};
990+
991+struct io_uring_zcrx_area_reg {
992+ __u64 addr;
993+ __u64 len;
994+ __u64 rq_area_token;
995+ __u32 flags;
996+ __u32 __resv1;
997+ __u64 __resv2[2];
998+};
999+
1000+/*
1001+ * Argument for IORING_REGISTER_ZCRX_IFQ
1002+ */
1003+struct io_uring_zcrx_ifq_reg {
1004+ __u32 if_idx;
1005+ __u32 if_rxq;
1006+ __u32 rq_entries;
1007+ __u32 flags;
1008+
1009+ __u64 area_ptr; /* pointer to struct io_uring_zcrx_area_reg */
1010+ __u64 region_ptr; /* struct io_uring_region_desc * */
1011+
1012+ struct io_uring_zcrx_offsets offsets;
1013+ __u64 __resv[4];
1014+};
1015+
9591016 #ifdef __cplusplus
9601017 }
9611018 #endif
include/uapi/linux/iommufd.h+128−1
@@ -55,6 +55,7 @@ enum { · 54 unmodified lines
5555 IOMMUFD_CMD_VIOMMU_ALLOC = 0x90,
5656 IOMMUFD_CMD_VDEVICE_ALLOC = 0x91,
5757 IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92,
58+ IOMMUFD_CMD_VEVENTQ_ALLOC = 0x93,
5859 };
5960
6061 /**
@@ -392,6 +393,9 @@ struct iommu_vfio_ioas { · 331 unmodified lines
392393 * Any domain attached to the non-PASID part of the
393394 * device must also be flagged, otherwise attaching a
394395 * PASID will blocked.
396+ * For the user that wants to attach PASID, ioas is
397+ * not recommended for both the non-PASID part
398+ * and PASID part of the device.
395399 * If IOMMU does not support PASID it will return
396400 * error (-EOPNOTSUPP).
397401 */
@@ -608,9 +612,17 @@ enum iommu_hw_info_type { · 210 unmodified lines
608612 * IOMMU_HWPT_GET_DIRTY_BITMAP
609613 * IOMMU_HWPT_SET_DIRTY_TRACKING
610614 *
615+ * @IOMMU_HW_CAP_PCI_PASID_EXEC: Execute Permission Supported, user ignores it
616+ * when the struct
617+ * iommu_hw_info::out_max_pasid_log2 is zero.
618+ * @IOMMU_HW_CAP_PCI_PASID_PRIV: Privileged Mode Supported, user ignores it
619+ * when the struct
620+ * iommu_hw_info::out_max_pasid_log2 is zero.
611621 */
612622 enum iommufd_hw_capabilities {
613623 IOMMU_HW_CAP_DIRTY_TRACKING = 1 << 0,
624+ IOMMU_HW_CAP_PCI_PASID_EXEC = 1 << 1,
625+ IOMMU_HW_CAP_PCI_PASID_PRIV = 1 << 2,
614626 };
615627
616628 /**
@@ -626,6 +638,9 @@ enum iommufd_hw_capabilities { · 9 unmodified lines
626638 * iommu_hw_info_type.
627639 * @out_capabilities: Output the generic iommu capability info type as defined
628640 * in the enum iommu_hw_capabilities.
641+ * @out_max_pasid_log2: Output the width of PASIDs. 0 means no PASID support.
642+ * PCI devices turn to out_capabilities to check if the
643+ * specific capabilities is supported or not.
629644 * @__reserved: Must be 0
630645 *
631646 * Query an iommu type specific hardware information data from an iommu behind
@@ -649,7 +664,8 @@ struct iommu_hw_info { · 17 unmodified lines
649664 __u32 data_len;
650665 __aligned_u64 data_uptr;
651666 __u32 out_data_type;
652− __u32 __reserved;
667+ __u8 out_max_pasid_log2;
668+ __u8 __reserved[3];
653669 __aligned_u64 out_capabilities;
654670 };
655671 #define IOMMU_GET_HW_INFO _IO(IOMMUFD_TYPE, IOMMUFD_CMD_GET_HW_INFO)
@@ -1014,4 +1030,115 @@ struct iommu_ioas_change_process { · 358 unmodified lines
10141030 #define IOMMU_IOAS_CHANGE_PROCESS \
10151031 _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_CHANGE_PROCESS)
10161032
1033+/**
1034+ * enum iommu_veventq_flag - flag for struct iommufd_vevent_header
1035+ * @IOMMU_VEVENTQ_FLAG_LOST_EVENTS: vEVENTQ has lost vEVENTs
1036+ */
1037+enum iommu_veventq_flag {
1038+ IOMMU_VEVENTQ_FLAG_LOST_EVENTS = (1U << 0),
1039+};
1040+
1041+/**
1042+ * struct iommufd_vevent_header - Virtual Event Header for a vEVENTQ Status
1043+ * @flags: Combination of enum iommu_veventq_flag
1044+ * @sequence: The sequence index of a vEVENT in the vEVENTQ, with a range of
1045+ * [0, INT_MAX] where the following index of INT_MAX is 0
1046+ *
1047+ * Each iommufd_vevent_header reports a sequence index of the following vEVENT:
1048+ *
1049+ * +----------------------+-------+----------------------+-------+---+-------+
1050+ * | header0 {sequence=0} | data0 | header1 {sequence=1} | data1 |...| dataN |
1051+ * +----------------------+-------+----------------------+-------+---+-------+
1052+ *
1053+ * And this sequence index is expected to be monotonic to the sequence index of
1054+ * the previous vEVENT. If two adjacent sequence indexes has a delta larger than
1055+ * 1, it means that delta - 1 number of vEVENTs has lost, e.g. two lost vEVENTs:
1056+ *
1057+ * +-----+----------------------+-------+----------------------+-------+-----+
1058+ * | ... | header3 {sequence=3} | data3 | header6 {sequence=6} | data6 | ... |
1059+ * +-----+----------------------+-------+----------------------+-------+-----+
1060+ *
1061+ * If a vEVENT lost at the tail of the vEVENTQ and there is no following vEVENT
1062+ * providing the next sequence index, an IOMMU_VEVENTQ_FLAG_LOST_EVENTS header
1063+ * would be added to the tail, and no data would follow this header:
1064+ *
1065+ * +--+----------------------+-------+-----------------------------------------+
1066+ * |..| header3 {sequence=3} | data3 | header4 {flags=LOST_EVENTS, sequence=4} |
1067+ * +--+----------------------+-------+-----------------------------------------+
1068+ */
1069+struct iommufd_vevent_header {
1070+ __u32 flags;
1071+ __u32 sequence;
1072+};
1073+
1074+/**
1075+ * enum iommu_veventq_type - Virtual Event Queue Type
1076+ * @IOMMU_VEVENTQ_TYPE_DEFAULT: Reserved for future use
1077+ * @IOMMU_VEVENTQ_TYPE_ARM_SMMUV3: ARM SMMUv3 Virtual Event Queue
1078+ */
1079+enum iommu_veventq_type {
1080+ IOMMU_VEVENTQ_TYPE_DEFAULT = 0,
1081+ IOMMU_VEVENTQ_TYPE_ARM_SMMUV3 = 1,
1082+};
1083+
1084+/**
1085+ * struct iommu_vevent_arm_smmuv3 - ARM SMMUv3 Virtual Event
1086+ * (IOMMU_VEVENTQ_TYPE_ARM_SMMUV3)
1087+ * @evt: 256-bit ARM SMMUv3 Event record, little-endian.
1088+ * Reported event records: (Refer to "7.3 Event records" in SMMUv3 HW Spec)
1089+ * - 0x04 C_BAD_STE
1090+ * - 0x06 F_STREAM_DISABLED
1091+ * - 0x08 C_BAD_SUBSTREAMID
1092+ * - 0x0a C_BAD_CD
1093+ * - 0x10 F_TRANSLATION
1094+ * - 0x11 F_ADDR_SIZE
1095+ * - 0x12 F_ACCESS
1096+ * - 0x13 F_PERMISSION
1097+ *
1098+ * StreamID field reports a virtual device ID. To receive a virtual event for a
1099+ * device, a vDEVICE must be allocated via IOMMU_VDEVICE_ALLOC.
1100+ */
1101+struct iommu_vevent_arm_smmuv3 {
1102+ __aligned_le64 evt[4];
1103+};
1104+
1105+/**
1106+ * struct iommu_veventq_alloc - ioctl(IOMMU_VEVENTQ_ALLOC)
1107+ * @size: sizeof(struct iommu_veventq_alloc)
1108+ * @flags: Must be 0
1109+ * @viommu_id: virtual IOMMU ID to associate the vEVENTQ with
1110+ * @type: Type of the vEVENTQ. Must be defined in enum iommu_veventq_type
1111+ * @veventq_depth: Maximum number of events in the vEVENTQ
1112+ * @out_veventq_id: The ID of the new vEVENTQ
1113+ * @out_veventq_fd: The fd of the new vEVENTQ. User space must close the
1114+ * successfully returned fd after using it
1115+ * @__reserved: Must be 0
1116+ *
1117+ * Explicitly allocate a virtual event queue interface for a vIOMMU. A vIOMMU
1118+ * can have multiple FDs for different types, but is confined to one per @type.
1119+ * User space should open the @out_veventq_fd to read vEVENTs out of a vEVENTQ,
1120+ * if there are vEVENTs available. A vEVENTQ will lose events due to overflow,
1121+ * if the number of the vEVENTs hits @veventq_depth.
1122+ *
1123+ * Each vEVENT in a vEVENTQ encloses a struct iommufd_vevent_header followed by
1124+ * a type-specific data structure, in a normal case:
1125+ *
1126+ * +-+---------+-------+---------+-------+-----+---------+-------+-+
1127+ * | | header0 | data0 | header1 | data1 | ... | headerN | dataN | |
1128+ * +-+---------+-------+---------+-------+-----+---------+-------+-+
1129+ *
1130+ * unless a tailing IOMMU_VEVENTQ_FLAG_LOST_EVENTS header is logged (refer to
1131+ * struct iommufd_vevent_header).
1132+ */
1133+struct iommu_veventq_alloc {
1134+ __u32 size;
1135+ __u32 flags;
1136+ __u32 viommu_id;
1137+ __u32 type;
1138+ __u32 veventq_depth;
1139+ __u32 out_veventq_id;
1140+ __u32 out_veventq_fd;
1141+ __u32 __reserved;
1142+};
1143+#define IOMMU_VEVENTQ_ALLOC _IO(IOMMUFD_TYPE, IOMMUFD_CMD_VEVENTQ_ALLOC)
10171144 #endif
include/uapi/linux/kfd_ioctl.h+8−2
@@ -43,9 +43,10 @@ · 42 unmodified lines
4343 * - 1.15 - Enable managing mappings in compute VMs with GEM_VA ioctl
4444 * - 1.16 - Add contiguous VRAM allocation flag
4545 * - 1.17 - Add SDMA queue creation with target SDMA engine ID
46+ * - 1.18 - Rename pad in set_memory_policy_args to misc_process_flag
4647 */
4748 #define KFD_IOCTL_MAJOR_VERSION 1
48−#define KFD_IOCTL_MINOR_VERSION 17
49+#define KFD_IOCTL_MINOR_VERSION 18
4950
5051 struct kfd_ioctl_get_version_args {
5152 __u32 major_version; /* from KFD */
@@ -62,6 +63,8 @@ struct kfd_ioctl_get_version_args { · 10 unmodified lines
6263 #define KFD_MAX_QUEUE_PERCENTAGE 100
6364 #define KFD_MAX_QUEUE_PRIORITY 15
6465
66+#define KFD_MIN_QUEUE_RING_SIZE 1024
67+
6568 struct kfd_ioctl_create_queue_args {
6669 __u64 ring_base_address; /* to KFD */
6770 __u64 write_pointer_address; /* from KFD */
@@ -148,6 +151,9 @@ struct kfd_dbg_device_info_entry { · 80 unmodified lines
148151 #define KFD_IOC_CACHE_POLICY_COHERENT 0
149152 #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
150153
154+/* Misc. per process flags */
155+#define KFD_PROC_FLAG_MFMA_HIGH_PRECISION (1 << 0)
156+
151157 struct kfd_ioctl_set_memory_policy_args {
152158 __u64 alternate_aperture_base; /* to KFD */
153159 __u64 alternate_aperture_size; /* to KFD */
@@ -155,7 +161,7 @@ struct kfd_ioctl_set_memory_policy_args { · 1 unmodified line
155161 __u32 gpu_id; /* to KFD */
156162 __u32 default_policy; /* to KFD */
157163 __u32 alternate_policy; /* to KFD */
158− __u32 pad;
164+ __u32 misc_process_flag; /* to KFD */
159165 };
160166
161167 /*
include/uapi/linux/kfd_sysfs.h+3−0
@@ -63,6 +63,9 @@ · 62 unmodified lines
6363 #define HSA_CAP_PER_QUEUE_RESET_SUPPORTED 0x80000000
6464 #define HSA_CAP_RESERVED 0x000f8000
6565
66+#define HSA_CAP2_PER_SDMA_QUEUE_RESET_SUPPORTED 0x00000001
67+#define HSA_CAP2_RESERVED 0xfffffffe
68+
6669 /* debug_prop bits in node properties */
6770 #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_MASK 0x0000000f
6871 #define HSA_DBG_WATCH_ADDR_MASK_LO_BIT_SHIFT 0
include/uapi/linux/kvm.h+1−0
@@ -929,6 +929,7 @@ struct kvm_enable_cap { · 928 unmodified lines
929929 #define KVM_CAP_PRE_FAULT_MEMORY 236
930930 #define KVM_CAP_X86_APIC_BUS_CYCLES_NS 237
931931 #define KVM_CAP_X86_GUEST_MODE 238
932+#define KVM_CAP_ARM_WRITABLE_IMP_ID_REGS 239
932933
933934 struct kvm_irq_routing_irqchip {
934935 __u32 irqchip;
include/uapi/linux/landlock.h+41−2
@@ -4,6 +4,7 @@ · 3 unmodified lines
44 *
55 * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net>
66 * Copyright © 2018-2020 ANSSI
7+ * Copyright © 2021-2025 Microsoft Corporation
78 */
89
910 #ifndef _UAPI_LINUX_LANDLOCK_H
@@ -57,9 +58,43 @@ struct landlock_ruleset_attr { · 47 unmodified lines
5758 *
5859 * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI
5960 * version.
61+ * - %LANDLOCK_CREATE_RULESET_ERRATA: Get a bitmask of fixed issues.
6062 */
6163 /* clang-format off */
6264 #define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
65+#define LANDLOCK_CREATE_RULESET_ERRATA (1U << 1)
66+/* clang-format on */
67+
68+/*
69+ * sys_landlock_restrict_self() flags:
70+ *
71+ * - %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF: Do not create any log related to the
72+ * enforced restrictions. This should only be set by tools launching unknown
73+ * or untrusted programs (e.g. a sandbox tool, container runtime, system
74+ * service manager). Because programs sandboxing themselves should fix any
75+ * denied access, they should not set this flag to be aware of potential
76+ * issues reported by system's logs (i.e. audit).
77+ * - %LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON: Explicitly ask to continue
78+ * logging denied access requests even after an :manpage:`execve(2)` call.
79+ * This flag should only be set if all the programs than can legitimately be
80+ * executed will not try to request a denied access (which could spam audit
81+ * logs).
82+ * - %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF: Do not create any log related
83+ * to the enforced restrictions coming from future nested domains created by
84+ * the caller or its descendants. This should only be set according to a
85+ * runtime configuration (i.e. not hardcoded) by programs launching other
86+ * unknown or untrusted programs that may create their own Landlock domains
87+ * and spam logs. The main use case is for container runtimes to enable users
88+ * to mute buggy sandboxed programs for a specific container image. Other use
89+ * cases include sandboxer tools and init systems. Unlike
90+ * %LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF,
91+ * %LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF does not impact the requested
92+ * restriction (if any) but only the future nested domains.
93+ */
94+/* clang-format off */
95+#define LANDLOCK_RESTRICT_SELF_LOG_SAME_EXEC_OFF (1U << 0)
96+#define LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON (1U << 1)
97+#define LANDLOCK_RESTRICT_SELF_LOG_SUBDOMAINS_OFF (1U << 2)
6398 /* clang-format on */
6499
65100 /**
@@ -268,7 +303,9 @@ struct landlock_net_port_attr { · 202 unmodified lines
268303 * ~~~~~~~~~~~~~~~~
269304 *
270305 * These flags enable to restrict a sandboxed process to a set of network
271− * actions. This is supported since the Landlock ABI version 4.
306+ * actions.
307+ *
308+ * This is supported since Landlock ABI version 4.
272309 *
273310 * The following access rights apply to TCP port numbers:
274311 *
@@ -291,11 +328,13 @@ struct landlock_net_port_attr { · 16 unmodified lines
291328 * Setting a flag for a ruleset will isolate the Landlock domain to forbid
292329 * connections to resources outside the domain.
293330 *
331+ * This is supported since Landlock ABI version 6.
332+ *
294333 * Scopes:
295334 *
296335 * - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from
297336 * connecting to an abstract UNIX socket created by a process outside the
298− * related Landlock domain (e.g. a parent domain or a non-sandboxed process).
337+ * related Landlock domain (e.g., a parent domain or a non-sandboxed process).
299338 * - %LANDLOCK_SCOPE_SIGNAL: Restrict a sandboxed process from sending a signal
300339 * to another process outside the domain.
301340 */
include/uapi/linux/lockd_netlink.h+29−0
@@ -0,0 +1,29 @@
1+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2+/* Do not edit directly, auto-generated from: */
3+/* Documentation/netlink/specs/lockd.yaml */
4+/* YNL-GEN uapi header */
5+
6+#ifndef _UAPI_LINUX_LOCKD_NETLINK_H
7+#define _UAPI_LINUX_LOCKD_NETLINK_H
8+
9+#define LOCKD_FAMILY_NAME "lockd"
10+#define LOCKD_FAMILY_VERSION 1
11+
12+enum {
13+ LOCKD_A_SERVER_GRACETIME = 1,
14+ LOCKD_A_SERVER_TCP_PORT,
15+ LOCKD_A_SERVER_UDP_PORT,
16+
17+ __LOCKD_A_SERVER_MAX,
18+ LOCKD_A_SERVER_MAX = (__LOCKD_A_SERVER_MAX - 1)
19+};
20+
21+enum {
22+ LOCKD_CMD_SERVER_SET = 1,
23+ LOCKD_CMD_SERVER_GET,
24+
25+ __LOCKD_CMD_MAX,
26+ LOCKD_CMD_MAX = (__LOCKD_CMD_MAX - 1)
27+};
28+
29+#endif /* _UAPI_LINUX_LOCKD_NETLINK_H */
include/uapi/linux/mount.h+9−1
@@ -179,7 +179,12 @@ struct statmount { · 178 unmodified lines
179179 __u32 opt_array; /* [str] Array of nul terminated fs options */
180180 __u32 opt_sec_num; /* Number of security options */
181181 __u32 opt_sec_array; /* [str] Array of nul terminated security options */
182− __u64 __spare2[46];
182+ __u64 supported_mask; /* Mask flags that this kernel supports */
183+ __u32 mnt_uidmap_num; /* Number of uid mappings */
184+ __u32 mnt_uidmap; /* [str] Array of uid mappings (as seen from callers namespace) */
185+ __u32 mnt_gidmap_num; /* Number of gid mappings */
186+ __u32 mnt_gidmap; /* [str] Array of gid mappings (as seen from callers namespace) */
187+ __u64 __spare2[43];
183188 char str[]; /* Variable size part containing strings */
184189 };
185190
@@ -217,6 +222,9 @@ struct mnt_id_req { · 31 unmodified lines
217222 #define STATMOUNT_SB_SOURCE 0x00000200U /* Want/got sb_source */
218223 #define STATMOUNT_OPT_ARRAY 0x00000400U /* Want/got opt_... */
219224 #define STATMOUNT_OPT_SEC_ARRAY 0x00000800U /* Want/got opt_sec... */
225+#define STATMOUNT_SUPPORTED_MASK 0x00001000U /* Want/got supported mask flags */
226+#define STATMOUNT_MNT_UIDMAP 0x00002000U /* Want/got uidmap... */
227+#define STATMOUNT_MNT_GIDMAP 0x00004000U /* Want/got gidmap... */
220228
221229 /*
222230 * Special @mnt_id values that can be passed to listmount
include/uapi/linux/mshv.h+291−0
@@ -0,0 +1,291 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Userspace interfaces for /dev/mshv* devices and derived fds
4+ *
5+ * This file is divided into sections containing data structures and IOCTLs for
6+ * a particular set of related devices or derived file descriptors.
7+ *
8+ * The IOCTL definitions are at the end of each section. They are grouped by
9+ * device/fd, so that new IOCTLs can easily be added with a monotonically
10+ * increasing number.
11+ */
12+#ifndef _UAPI_LINUX_MSHV_H
13+#define _UAPI_LINUX_MSHV_H
14+
15+#include <linux/types.h>
16+
17+#define MSHV_IOCTL 0xB8
18+
19+/*
20+ *******************************************
21+ * Entry point to main VMM APIs: /dev/mshv *
22+ *******************************************
23+ */
24+
25+enum {
26+ MSHV_PT_BIT_LAPIC,
27+ MSHV_PT_BIT_X2APIC,
28+ MSHV_PT_BIT_GPA_SUPER_PAGES,
29+ MSHV_PT_BIT_COUNT,
30+};
31+
32+#define MSHV_PT_FLAGS_MASK ((1 << MSHV_PT_BIT_COUNT) - 1)
33+
34+enum {
35+ MSHV_PT_ISOLATION_NONE,
36+ MSHV_PT_ISOLATION_COUNT,
37+};
38+
39+/**
40+ * struct mshv_create_partition - arguments for MSHV_CREATE_PARTITION
41+ * @pt_flags: Bitmask of 1 << MSHV_PT_BIT_*
42+ * @pt_isolation: MSHV_PT_ISOLATION_*
43+ *
44+ * Returns a file descriptor to act as a handle to a guest partition.
45+ * At this point the partition is not yet initialized in the hypervisor.
46+ * Some operations must be done with the partition in this state, e.g. setting
47+ * so-called "early" partition properties. The partition can then be
48+ * initialized with MSHV_INITIALIZE_PARTITION.
49+ */
50+struct mshv_create_partition {
51+ __u64 pt_flags;
52+ __u64 pt_isolation;
53+};
54+
55+/* /dev/mshv */
56+#define MSHV_CREATE_PARTITION _IOW(MSHV_IOCTL, 0x00, struct mshv_create_partition)
57+
58+/*
59+ ************************
60+ * Child partition APIs *
61+ ************************
62+ */
63+
64+struct mshv_create_vp {
65+ __u32 vp_index;
66+};
67+
68+enum {
69+ MSHV_SET_MEM_BIT_WRITABLE,
70+ MSHV_SET_MEM_BIT_EXECUTABLE,
71+ MSHV_SET_MEM_BIT_UNMAP,
72+ MSHV_SET_MEM_BIT_COUNT
73+};
74+
75+#define MSHV_SET_MEM_FLAGS_MASK ((1 << MSHV_SET_MEM_BIT_COUNT) - 1)
76+
77+/* The hypervisor's "native" page size */
78+#define MSHV_HV_PAGE_SIZE 0x1000
79+
80+/**
81+ * struct mshv_user_mem_region - arguments for MSHV_SET_GUEST_MEMORY
82+ * @size: Size of the memory region (bytes). Must be aligned to
83+ * MSHV_HV_PAGE_SIZE
84+ * @guest_pfn: Base guest page number to map
85+ * @userspace_addr: Base address of userspace memory. Must be aligned to
86+ * MSHV_HV_PAGE_SIZE
87+ * @flags: Bitmask of 1 << MSHV_SET_MEM_BIT_*. If (1 << MSHV_SET_MEM_BIT_UNMAP)
88+ * is set, ignore other bits.
89+ * @rsvd: MBZ
90+ *
91+ * Map or unmap a region of userspace memory to Guest Physical Addresses (GPA).
92+ * Mappings can't overlap in GPA space or userspace.
93+ * To unmap, these fields must match an existing mapping.
94+ */
95+struct mshv_user_mem_region {
96+ __u64 size;
97+ __u64 guest_pfn;
98+ __u64 userspace_addr;
99+ __u8 flags;
100+ __u8 rsvd[7];
101+};
102+
103+enum {
104+ MSHV_IRQFD_BIT_DEASSIGN,
105+ MSHV_IRQFD_BIT_RESAMPLE,
106+ MSHV_IRQFD_BIT_COUNT,
107+};
108+
109+#define MSHV_IRQFD_FLAGS_MASK ((1 << MSHV_IRQFD_BIT_COUNT) - 1)
110+
111+struct mshv_user_irqfd {
112+ __s32 fd;
113+ __s32 resamplefd;
114+ __u32 gsi;
115+ __u32 flags;
116+};
117+
118+enum {
119+ MSHV_IOEVENTFD_BIT_DATAMATCH,
120+ MSHV_IOEVENTFD_BIT_PIO,
121+ MSHV_IOEVENTFD_BIT_DEASSIGN,
122+ MSHV_IOEVENTFD_BIT_COUNT,
123+};
124+
125+#define MSHV_IOEVENTFD_FLAGS_MASK ((1 << MSHV_IOEVENTFD_BIT_COUNT) - 1)
126+
127+struct mshv_user_ioeventfd {
128+ __u64 datamatch;
129+ __u64 addr; /* legal pio/mmio address */
130+ __u32 len; /* 1, 2, 4, or 8 bytes */
131+ __s32 fd;
132+ __u32 flags;
133+ __u8 rsvd[4];
134+};
135+
136+struct mshv_user_irq_entry {
137+ __u32 gsi;
138+ __u32 address_lo;
139+ __u32 address_hi;
140+ __u32 data;
141+};
142+
143+struct mshv_user_irq_table {
144+ __u32 nr;
145+ __u32 rsvd; /* MBZ */
146+ struct mshv_user_irq_entry entries[];
147+};
148+
149+enum {
150+ MSHV_GPAP_ACCESS_TYPE_ACCESSED,
151+ MSHV_GPAP_ACCESS_TYPE_DIRTY,
152+ MSHV_GPAP_ACCESS_TYPE_COUNT /* Count of enum members */
153+};
154+
155+enum {
156+ MSHV_GPAP_ACCESS_OP_NOOP,
157+ MSHV_GPAP_ACCESS_OP_CLEAR,
158+ MSHV_GPAP_ACCESS_OP_SET,
159+ MSHV_GPAP_ACCESS_OP_COUNT /* Count of enum members */
160+};
161+
162+/**
163+ * struct mshv_gpap_access_bitmap - arguments for MSHV_GET_GPAP_ACCESS_BITMAP
164+ * @access_type: MSHV_GPAP_ACCESS_TYPE_* - The type of access to record in the
165+ * bitmap
166+ * @access_op: MSHV_GPAP_ACCESS_OP_* - Allows an optional clear or set of all
167+ * the access states in the range, after retrieving the current
168+ * states.
169+ * @rsvd: MBZ
170+ * @page_count: Number of pages
171+ * @gpap_base: Base gpa page number
172+ * @bitmap_ptr: Output buffer for bitmap, at least (page_count + 7) / 8 bytes
173+ *
174+ * Retrieve a bitmap of either ACCESSED or DIRTY bits for a given range of guest
175+ * memory, and optionally clear or set the bits.
176+ */
177+struct mshv_gpap_access_bitmap {
178+ __u8 access_type;
179+ __u8 access_op;
180+ __u8 rsvd[6];
181+ __u64 page_count;
182+ __u64 gpap_base;
183+ __u64 bitmap_ptr;
184+};
185+
186+/**
187+ * struct mshv_root_hvcall - arguments for MSHV_ROOT_HVCALL
188+ * @code: Hypercall code (HVCALL_*)
189+ * @reps: in: Rep count ('repcount')
190+ * out: Reps completed ('repcomp'). MBZ unless rep hvcall
191+ * @in_sz: Size of input incl rep data. <= MSHV_HV_PAGE_SIZE
192+ * @out_sz: Size of output buffer. <= MSHV_HV_PAGE_SIZE. MBZ if out_ptr is 0
193+ * @status: in: MBZ
194+ * out: HV_STATUS_* from hypercall
195+ * @rsvd: MBZ
196+ * @in_ptr: Input data buffer (struct hv_input_*). If used with partition or
197+ * vp fd, partition id field is populated by kernel.
198+ * @out_ptr: Output data buffer (optional)
199+ */
200+struct mshv_root_hvcall {
201+ __u16 code;
202+ __u16 reps;
203+ __u16 in_sz;
204+ __u16 out_sz;
205+ __u16 status;
206+ __u8 rsvd[6];
207+ __u64 in_ptr;
208+ __u64 out_ptr;
209+};
210+
211+/* Partition fds created with MSHV_CREATE_PARTITION */
212+#define MSHV_INITIALIZE_PARTITION _IO(MSHV_IOCTL, 0x00)
213+#define MSHV_CREATE_VP _IOW(MSHV_IOCTL, 0x01, struct mshv_create_vp)
214+#define MSHV_SET_GUEST_MEMORY _IOW(MSHV_IOCTL, 0x02, struct mshv_user_mem_region)
215+#define MSHV_IRQFD _IOW(MSHV_IOCTL, 0x03, struct mshv_user_irqfd)
216+#define MSHV_IOEVENTFD _IOW(MSHV_IOCTL, 0x04, struct mshv_user_ioeventfd)
217+#define MSHV_SET_MSI_ROUTING _IOW(MSHV_IOCTL, 0x05, struct mshv_user_irq_table)
218+#define MSHV_GET_GPAP_ACCESS_BITMAP _IOWR(MSHV_IOCTL, 0x06, struct mshv_gpap_access_bitmap)
219+/* Generic hypercall */
220+#define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall)
221+
222+/*
223+ ********************************
224+ * VP APIs for child partitions *
225+ ********************************
226+ */
227+
228+#define MSHV_RUN_VP_BUF_SZ 256
229+
230+/*
231+ * VP state pages may be mapped to userspace via mmap().
232+ * To specify which state page, use MSHV_VP_MMAP_OFFSET_ values multiplied by
233+ * the system page size.
234+ * e.g.
235+ * long page_size = sysconf(_SC_PAGE_SIZE);
236+ * void *reg_page = mmap(NULL, MSHV_HV_PAGE_SIZE, PROT_READ|PROT_WRITE,
237+ * MAP_SHARED, vp_fd,
238+ * MSHV_VP_MMAP_OFFSET_REGISTERS * page_size);
239+ */
240+enum {
241+ MSHV_VP_MMAP_OFFSET_REGISTERS,
242+ MSHV_VP_MMAP_OFFSET_INTERCEPT_MESSAGE,
243+ MSHV_VP_MMAP_OFFSET_GHCB,
244+ MSHV_VP_MMAP_OFFSET_COUNT
245+};
246+
247+/**
248+ * struct mshv_run_vp - argument for MSHV_RUN_VP
249+ * @msg_buf: On success, the intercept message is copied here. It can be
250+ * interpreted using the relevant hypervisor definitions.
251+ */
252+struct mshv_run_vp {
253+ __u8 msg_buf[MSHV_RUN_VP_BUF_SZ];
254+};
255+
256+enum {
257+ MSHV_VP_STATE_LAPIC, /* Local interrupt controller state (either arch) */
258+ MSHV_VP_STATE_XSAVE, /* XSAVE data in compacted form (x86_64) */
259+ MSHV_VP_STATE_SIMP,
260+ MSHV_VP_STATE_SIEFP,
261+ MSHV_VP_STATE_SYNTHETIC_TIMERS,
262+ MSHV_VP_STATE_COUNT,
263+};
264+
265+/**
266+ * struct mshv_get_set_vp_state - arguments for MSHV_[GET,SET]_VP_STATE
267+ * @type: MSHV_VP_STATE_*
268+ * @rsvd: MBZ
269+ * @buf_sz: in: 4k page-aligned size of buffer
270+ * out: Actual size of data (on EINVAL, check this to see if buffer
271+ * was too small)
272+ * @buf_ptr: 4k page-aligned data buffer
273+ */
274+struct mshv_get_set_vp_state {
275+ __u8 type;
276+ __u8 rsvd[3];
277+ __u32 buf_sz;
278+ __u64 buf_ptr;
279+};
280+
281+/* VP fds created with MSHV_CREATE_VP */
282+#define MSHV_RUN_VP _IOR(MSHV_IOCTL, 0x00, struct mshv_run_vp)
283+#define MSHV_GET_VP_STATE _IOWR(MSHV_IOCTL, 0x01, struct mshv_get_set_vp_state)
284+#define MSHV_SET_VP_STATE _IOWR(MSHV_IOCTL, 0x02, struct mshv_get_set_vp_state)
285+/*
286+ * Generic hypercall
287+ * Defined above in partition IOCTLs, avoid redefining it here
288+ * #define MSHV_ROOT_HVCALL _IOWR(MSHV_IOCTL, 0x07, struct mshv_root_hvcall)
289+ */
290+
291+#endif
include/uapi/linux/net_tstamp.h+4−2
@@ -44,8 +44,9 @@ enum { · 43 unmodified lines
4444 SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
4545 SOF_TIMESTAMPING_OPT_ID_TCP = (1 << 16),
4646 SOF_TIMESTAMPING_OPT_RX_FILTER = (1 << 17),
47+ SOF_TIMESTAMPING_TX_COMPLETION = (1 << 18),
4748
48− SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_RX_FILTER,
49+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_TX_COMPLETION,
4950 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
5051 SOF_TIMESTAMPING_LAST
5152 };
@@ -58,7 +59,8 @@ enum { · 6 unmodified lines
5859 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | \
5960 SOF_TIMESTAMPING_TX_SOFTWARE | \
6061 SOF_TIMESTAMPING_TX_SCHED | \
61− SOF_TIMESTAMPING_TX_ACK)
62+ SOF_TIMESTAMPING_TX_ACK | \
63+ SOF_TIMESTAMPING_TX_COMPLETION)
6264
6365 /**
6466 * struct so_timestamping - SO_TIMESTAMPING parameter
include/uapi/linux/netdev.h+16−0
@@ -59,10 +59,13 @@ enum netdev_xdp_rx_metadata { · 58 unmodified lines
5959 * by the driver.
6060 * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
6161 * driver.
62+ * @NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO: Launch time HW offload is supported
63+ * by the driver.
6264 */
6365 enum netdev_xsk_flags {
6466 NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
6567 NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
68+ NETDEV_XSK_FLAGS_TX_LAUNCH_TIME_FIFO = 4,
6669 };
6770
6871 enum netdev_queue_type {
@@ -86,6 +89,11 @@ enum { · 17 unmodified lines
8689 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
8790 };
8891
92+enum {
93+ __NETDEV_A_IO_URING_PROVIDER_INFO_MAX,
94+ NETDEV_A_IO_URING_PROVIDER_INFO_MAX = (__NETDEV_A_IO_URING_PROVIDER_INFO_MAX - 1)
95+};
96+
8997 enum {
9098 NETDEV_A_PAGE_POOL_ID = 1,
9199 NETDEV_A_PAGE_POOL_IFINDEX,
@@ -94,6 +102,7 @@ enum { · 2 unmodified lines
94102 NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
95103 NETDEV_A_PAGE_POOL_DETACH_TIME,
96104 NETDEV_A_PAGE_POOL_DMABUF,
105+ NETDEV_A_PAGE_POOL_IO_URING,
97106
98107 __NETDEV_A_PAGE_POOL_MAX,
99108 NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
@@ -130,12 +139,19 @@ enum { · 30 unmodified lines
130139 NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
131140 };
132141
142+enum {
143+ __NETDEV_A_XSK_INFO_MAX,
144+ NETDEV_A_XSK_INFO_MAX = (__NETDEV_A_XSK_INFO_MAX - 1)
145+};
146+
133147 enum {
134148 NETDEV_A_QUEUE_ID = 1,
135149 NETDEV_A_QUEUE_IFINDEX,
136150 NETDEV_A_QUEUE_TYPE,
137151 NETDEV_A_QUEUE_NAPI_ID,
138152 NETDEV_A_QUEUE_DMABUF,
153+ NETDEV_A_QUEUE_IO_URING,
154+ NETDEV_A_QUEUE_XSK,
139155
140156 __NETDEV_A_QUEUE_MAX,
141157 NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
include/uapi/linux/nilfs2_ondisk.h+2−1
@@ -188,7 +188,8 @@ struct nilfs_super_block { · 187 unmodified lines
188188 __le16 s_segment_usage_size; /* Size of a segment usage */
189189
190190 /*98*/ __u8 s_uuid[16]; /* 128-bit uuid for volume */
191−/*A8*/ char s_volume_name[80]; /* volume name */
191+/*A8*/ char s_volume_name[80] /* volume name */
192+ __kernel_nonstring;
192193
193194 /*F8*/ __le32 s_c_interval; /* Commit interval of segment */
194195 __le32 s_c_block_max; /*
include/uapi/linux/nl80211.h+43−29
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
1212 * Copyright 2008 Colin McCabe <colin@cozybit.com>
1313 * Copyright 2015-2017 Intel Deutschland GmbH
14− * Copyright (C) 2018-2024 Intel Corporation
14+ * Copyright (C) 2018-2025 Intel Corporation
1515 *
1616 * Permission to use, copy, modify, and/or distribute this software for any
1717 * purpose with or without fee is hereby granted, provided that the above
@@ -2881,9 +2881,9 @@ enum nl80211_commands { · 2863 unmodified lines
28812881 * @NL80211_ATTR_VIF_RADIO_MASK: Bitmask of allowed radios (u32).
28822882 * A value of 0 means all radios.
28832883 *
2884− * @NL80211_ATTR_SUPPORTED_SELECTORS: supported selectors, array of
2885− * supported selectors as defined by IEEE 802.11 7.3.2.2 but without the
2886− * length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
2884+ * @NL80211_ATTR_SUPPORTED_SELECTORS: supported BSS Membership Selectors, array
2885+ * of supported selectors as defined by IEEE Std 802.11-2020 9.4.2.3 but
2886+ * without the length restriction (at most %NL80211_MAX_SUPP_SELECTORS).
28872887 * This can be used to provide a list of selectors that are implemented
28882888 * by the supplicant. If not given, support for SAE_H2E is assumed.
28892889 *
@@ -2893,6 +2893,12 @@ enum nl80211_commands { · 3 unmodified lines
28932893 * @NL80211_ATTR_EPCS: Flag attribute indicating that EPCS is enabled for a
28942894 * station interface.
28952895 *
2896+ * @NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS: Extended MLD capabilities and
2897+ * operations that userspace implements to use during association/ML
2898+ * link reconfig, currently only "BTM MLD Recommendation For Multiple
2899+ * APs Support". Drivers may set additional flags that they support
2900+ * in the kernel or device.
2901+ *
28962902 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
28972903 * @NL80211_ATTR_MAX: highest attribute number currently defined
28982904 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3448,6 +3454,8 @@ enum nl80211_attrs { · 549 unmodified lines
34483454 NL80211_ATTR_MLO_RECONF_REM_LINKS,
34493455 NL80211_ATTR_EPCS,
34503456
3457+ NL80211_ATTR_ASSOC_MLD_EXT_CAPA_OPS,
3458+
34513459 /* add attributes here, update the policy in nl80211.c */
34523460
34533461 __NL80211_ATTR_AFTER_LAST,
@@ -4327,6 +4335,8 @@ enum nl80211_wmm_rule { · 873 unmodified lines
43274335 * otherwise completely disabled.
43284336 * @NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP: This channel can be used for a
43294337 * very low power (VLP) AP, despite being NO_IR.
4338+ * @NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY: This channel can be active in
4339+ * 20 MHz bandwidth, despite being NO_IR.
43304340 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
43314341 * currently defined
43324342 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4371,6 +4381,7 @@ enum nl80211_frequency_attr { · 38 unmodified lines
43714381 NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT,
43724382 NL80211_FREQUENCY_ATTR_CAN_MONITOR,
43734383 NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP,
4384+ NL80211_FREQUENCY_ATTR_ALLOW_20MHZ_ACTIVITY,
43744385
43754386 /* keep last */
43764387 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4582,31 +4593,34 @@ enum nl80211_sched_scan_match_attr { · 205 unmodified lines
45824593 * @NL80211_RRF_NO_6GHZ_AFC_CLIENT: Client connection to AFC AP not allowed
45834594 * @NL80211_RRF_ALLOW_6GHZ_VLP_AP: Very low power (VLP) AP can be permitted
45844595 * despite NO_IR configuration.
4596+ * @NL80211_RRF_ALLOW_20MHZ_ACTIVITY: Allow activity in 20 MHz bandwidth,
4597+ * despite NO_IR configuration.
45854598 */
45864599 enum nl80211_reg_rule_flags {
4587− NL80211_RRF_NO_OFDM = 1<<0,
4588− NL80211_RRF_NO_CCK = 1<<1,
4589− NL80211_RRF_NO_INDOOR = 1<<2,
4590− NL80211_RRF_NO_OUTDOOR = 1<<3,
4591− NL80211_RRF_DFS = 1<<4,
4592− NL80211_RRF_PTP_ONLY = 1<<5,
4593− NL80211_RRF_PTMP_ONLY = 1<<6,
4594− NL80211_RRF_NO_IR = 1<<7,
4595− __NL80211_RRF_NO_IBSS = 1<<8,
4596− NL80211_RRF_AUTO_BW = 1<<11,
4597− NL80211_RRF_IR_CONCURRENT = 1<<12,
4598− NL80211_RRF_NO_HT40MINUS = 1<<13,
4599− NL80211_RRF_NO_HT40PLUS = 1<<14,
4600− NL80211_RRF_NO_80MHZ = 1<<15,
4601− NL80211_RRF_NO_160MHZ = 1<<16,
4602− NL80211_RRF_NO_HE = 1<<17,
4603− NL80211_RRF_NO_320MHZ = 1<<18,
4604− NL80211_RRF_NO_EHT = 1<<19,
4605− NL80211_RRF_PSD = 1<<20,
4606− NL80211_RRF_DFS_CONCURRENT = 1<<21,
4607− NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1<<22,
4608− NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1<<23,
4609− NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1<<24,
4600+ NL80211_RRF_NO_OFDM = 1 << 0,
4601+ NL80211_RRF_NO_CCK = 1 << 1,
4602+ NL80211_RRF_NO_INDOOR = 1 << 2,
4603+ NL80211_RRF_NO_OUTDOOR = 1 << 3,
4604+ NL80211_RRF_DFS = 1 << 4,
4605+ NL80211_RRF_PTP_ONLY = 1 << 5,
4606+ NL80211_RRF_PTMP_ONLY = 1 << 6,
4607+ NL80211_RRF_NO_IR = 1 << 7,
4608+ __NL80211_RRF_NO_IBSS = 1 << 8,
4609+ NL80211_RRF_AUTO_BW = 1 << 11,
4610+ NL80211_RRF_IR_CONCURRENT = 1 << 12,
4611+ NL80211_RRF_NO_HT40MINUS = 1 << 13,
4612+ NL80211_RRF_NO_HT40PLUS = 1 << 14,
4613+ NL80211_RRF_NO_80MHZ = 1 << 15,
4614+ NL80211_RRF_NO_160MHZ = 1 << 16,
4615+ NL80211_RRF_NO_HE = 1 << 17,
4616+ NL80211_RRF_NO_320MHZ = 1 << 18,
4617+ NL80211_RRF_NO_EHT = 1 << 19,
4618+ NL80211_RRF_PSD = 1 << 20,
4619+ NL80211_RRF_DFS_CONCURRENT = 1 << 21,
4620+ NL80211_RRF_NO_6GHZ_VLP_CLIENT = 1 << 22,
4621+ NL80211_RRF_NO_6GHZ_AFC_CLIENT = 1 << 23,
4622+ NL80211_RRF_ALLOW_6GHZ_VLP_AP = 1 << 24,
4623+ NL80211_RRF_ALLOW_20MHZ_ACTIVITY = 1 << 25,
46104624 };
46114625
46124626 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
@@ -4727,8 +4741,8 @@ enum nl80211_survey_info { · 114 unmodified lines
47274741 * @NL80211_MNTR_FLAG_PLCPFAIL: pass frames with bad PLCP
47284742 * @NL80211_MNTR_FLAG_CONTROL: pass control frames
47294743 * @NL80211_MNTR_FLAG_OTHER_BSS: disable BSSID filtering
4730− * @NL80211_MNTR_FLAG_COOK_FRAMES: report frames after processing.
4731− * overrides all other flags.
4744+ * @NL80211_MNTR_FLAG_COOK_FRAMES: deprecated
4745+ * will unconditionally be refused
47324746 * @NL80211_MNTR_FLAG_ACTIVE: use the configured MAC address
47334747 * and ACK incoming unicast packets.
47344748 * @NL80211_MNTR_FLAG_SKIP_TX: do not pass local tx packets
include/uapi/linux/pci_regs.h+10−3
@@ -486,6 +486,7 @@ · 485 unmodified lines
486486 #define PCI_EXP_TYPE_RC_EC 0xa /* Root Complex Event Collector */
487487 #define PCI_EXP_FLAGS_SLOT 0x0100 /* Slot implemented */
488488 #define PCI_EXP_FLAGS_IRQ 0x3e00 /* Interrupt message number */
489+#define PCI_EXP_FLAGS_FLIT 0x8000 /* Flit Mode Supported */
489490 #define PCI_EXP_DEVCAP 0x04 /* Device capabilities */
490491 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007 /* Max_Payload_Size */
491492 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018 /* Phantom functions */
@@ -795,6 +796,8 @@ · 303 unmodified lines
795796 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */
796797 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
797798 #define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Present */
799+#define PCI_ERR_CAP_TLP_LOG_FLIT 0x00040000 /* TLP was logged in Flit Mode */
800+#define PCI_ERR_CAP_TLP_LOG_SIZE 0x00f80000 /* Logged TLP Size (only in Flit mode) */
798801 #define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */
799802 #define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */
800803 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
@@ -1013,7 +1016,7 @@ · 212 unmodified lines
10131016
10141017 /* Resizable BARs */
10151018 #define PCI_REBAR_CAP 4 /* capability register */
1016−#define PCI_REBAR_CAP_SIZES 0x00FFFFF0 /* supported BAR sizes */
1019+#define PCI_REBAR_CAP_SIZES 0xFFFFFFF0 /* supported BAR sizes */
10171020 #define PCI_REBAR_CTRL 8 /* control register */
10181021 #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */
10191022 #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */
@@ -1061,8 +1064,9 @@ · 41 unmodified lines
10611064 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020 /* Root Port Extensions */
10621065 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040 /* Poisoned TLP Egress Blocking Supported */
10631066 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080 /* Software Triggering Supported */
1064−#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size */
1067+#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00 /* RP PIO Log Size [3:0] */
10651068 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
1069+#define PCI_EXP_DPC_RP_PIO_LOG_SIZE4 0x2000 /* RP PIO Log Size [4] */
10661070
10671071 #define PCI_EXP_DPC_CTL 0x06 /* DPC control */
10681072 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001 /* Enable trigger on ERR_FATAL message */
@@ -1205,9 +1209,12 @@ · 136 unmodified lines
12051209 #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff
12061210 #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00
12071211 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff
1208−#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff0000
1212+#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE 0x00ff0000
12091213 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000
12101214
1215+/* Deprecated old name, replaced with PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE */
1216+#define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL PCI_DOE_DATA_OBJECT_DISC_RSP_3_TYPE
1217+
12111218 /* Compute Express Link (CXL r3.1, sec 8.1.5) */
12121219 #define PCI_DVSEC_CXL_PORT 3
12131220 #define PCI_DVSEC_CXL_PORT_CTL 0x0c
include/uapi/linux/pcitest.h+6−0
@@ -23,6 +23,12 @@ · 22 unmodified lines
2323 #define PCITEST_BARS _IO('P', 0xa)
2424 #define PCITEST_CLEAR_IRQ _IO('P', 0x10)
2525
26+#define PCITEST_IRQ_TYPE_UNDEFINED -1
27+#define PCITEST_IRQ_TYPE_INTX 0
28+#define PCITEST_IRQ_TYPE_MSI 1
29+#define PCITEST_IRQ_TYPE_MSIX 2
30+#define PCITEST_IRQ_TYPE_AUTO 3
31+
2632 #define PCITEST_FLAGS_USE_DMA 0x00000001
2733
2834 struct pci_endpoint_test_xfer_param {
include/uapi/linux/perf_event.h+2−0
@@ -385,6 +385,8 @@ enum perf_event_read_format { · 384 unmodified lines
385385 *
386386 * @sample_max_stack: Max number of frame pointers in a callchain,
387387 * should be < /proc/sys/kernel/perf_event_max_stack
388+ * Max number of entries of branch stack
389+ * should be < hardware limit
388390 */
389391 struct perf_event_attr {
390392
include/uapi/linux/pidfd.h+30−1
@@ -10,6 +10,10 @@ · 9 unmodified lines
1010 /* Flags for pidfd_open(). */
1111 #define PIDFD_NONBLOCK O_NONBLOCK
1212 #define PIDFD_THREAD O_EXCL
13+#ifdef __KERNEL__
14+#include <linux/sched.h>
15+#define PIDFD_CLONE CLONE_PIDFD
16+#endif
1317
1418 /* Flags for pidfd_send_signal(). */
1519 #define PIDFD_SIGNAL_THREAD (1UL << 0)
@@ -20,9 +24,34 @@ · 4 unmodified lines
2024 #define PIDFD_INFO_PID (1UL << 0) /* Always returned, even if not requested */
2125 #define PIDFD_INFO_CREDS (1UL << 1) /* Always returned, even if not requested */
2226 #define PIDFD_INFO_CGROUPID (1UL << 2) /* Always returned if available, even if not requested */
27+#define PIDFD_INFO_EXIT (1UL << 3) /* Only returned if requested. */
2328
2429 #define PIDFD_INFO_SIZE_VER0 64 /* sizeof first published struct */
2530
31+/*
32+ * The concept of process and threads in userland and the kernel is a confusing
33+ * one - within the kernel every thread is a 'task' with its own individual PID,
34+ * however from userland's point of view threads are grouped by a single PID,
35+ * which is that of the 'thread group leader', typically the first thread
36+ * spawned.
37+ *
38+ * To cut the Gideon knot, for internal kernel usage, we refer to
39+ * PIDFD_SELF_THREAD to refer to the current thread (or task from a kernel
40+ * perspective), and PIDFD_SELF_THREAD_GROUP to refer to the current thread
41+ * group leader...
42+ */
43+#define PIDFD_SELF_THREAD -10000 /* Current thread. */
44+#define PIDFD_SELF_THREAD_GROUP -20000 /* Current thread group leader. */
45+
46+/*
47+ * ...and for userland we make life simpler - PIDFD_SELF refers to the current
48+ * thread, PIDFD_SELF_PROCESS refers to the process thread group leader.
49+ *
50+ * For nearly all practical uses, a user will want to use PIDFD_SELF.
51+ */
52+#define PIDFD_SELF PIDFD_SELF_THREAD
53+#define PIDFD_SELF_PROCESS PIDFD_SELF_THREAD_GROUP
54+
2655 struct pidfd_info {
2756 /*
2857 * This mask is similar to the request_mask in statx(2).
@@ -62,7 +91,7 @@ struct pidfd_info { · 33 unmodified lines
6291 __u32 sgid;
6392 __u32 fsuid;
6493 __u32 fsgid;
65− __u32 spare0[1];
94+ __s32 exit_code;
6695 };
6796
6897 #define PIDFS_IOCTL_MAGIC 0xFF
include/uapi/linux/prctl.h+11−0
@@ -353,4 +353,15 @@ struct prctl_mm_map { · 352 unmodified lines
353353 */
354354 #define PR_LOCK_SHADOW_STACK_STATUS 76
355355
356+/*
357+ * Controls the mode of timer_create() for CRIU restore operations.
358+ * Enabling this allows CRIU to restore timers with explicit IDs.
359+ *
360+ * Don't use for normal operations as the result might be undefined.
361+ */
362+#define PR_TIMER_CREATE_RESTORE_IDS 77
363+# define PR_TIMER_CREATE_RESTORE_IDS_OFF 0
364+# define PR_TIMER_CREATE_RESTORE_IDS_ON 1
365+# define PR_TIMER_CREATE_RESTORE_IDS_GET 2
366+
356367 #endif /* _LINUX_PRCTL_H */
include/uapi/linux/psp-sev.h+14−7
@@ -73,13 +73,20 @@ typedef enum { · 72 unmodified lines
7373 SEV_RET_INVALID_PARAM,
7474 SEV_RET_RESOURCE_LIMIT,
7575 SEV_RET_SECURE_DATA_INVALID,
76− SEV_RET_INVALID_KEY = 0x27,
77− SEV_RET_INVALID_PAGE_SIZE,
78− SEV_RET_INVALID_PAGE_STATE,
79− SEV_RET_INVALID_MDATA_ENTRY,
80− SEV_RET_INVALID_PAGE_OWNER,
81− SEV_RET_INVALID_PAGE_AEAD_OFLOW,
82− SEV_RET_RMP_INIT_REQUIRED,
76+ SEV_RET_INVALID_PAGE_SIZE = 0x0019,
77+ SEV_RET_INVALID_PAGE_STATE = 0x001A,
78+ SEV_RET_INVALID_MDATA_ENTRY = 0x001B,
79+ SEV_RET_INVALID_PAGE_OWNER = 0x001C,
80+ SEV_RET_AEAD_OFLOW = 0x001D,
81+ SEV_RET_EXIT_RING_BUFFER = 0x001F,
82+ SEV_RET_RMP_INIT_REQUIRED = 0x0020,
83+ SEV_RET_BAD_SVN = 0x0021,
84+ SEV_RET_BAD_VERSION = 0x0022,
85+ SEV_RET_SHUTDOWN_REQUIRED = 0x0023,
86+ SEV_RET_UPDATE_FAILED = 0x0024,
87+ SEV_RET_RESTORE_REQUIRED = 0x0025,
88+ SEV_RET_RMP_INITIALIZATION_FAILED = 0x0026,
89+ SEV_RET_INVALID_KEY = 0x0027,
8390 SEV_RET_MAX,
8491 } sev_ret_code;
8592
include/uapi/linux/rkisp1-config.h+1−1
@@ -1528,7 +1528,7 @@ enum rksip1_ext_param_buffer_version { · 1527 unmodified lines
15281528 * The expected memory layout of the parameters buffer is::
15291529 *
15301530 * +-------------------- struct rkisp1_ext_params_cfg -------------------+
1531− * | version = RKISP_EXT_PARAMS_BUFFER_V1; |
1531+ * | version = RKISP1_EXT_PARAM_BUFFER_V1; |
15321532 * | data_size = sizeof(struct rkisp1_ext_params_bls_config) |
15331533 * | + sizeof(struct rkisp1_ext_params_dpcc_config); |
15341534 * | +------------------------- data ---------------------------------+ |
include/uapi/linux/rtnetlink.h+1−0
@@ -307,6 +307,7 @@ enum { · 306 unmodified lines
307307 #define RTPROT_MROUTED 17 /* Multicast daemon */
308308 #define RTPROT_KEEPALIVED 18 /* Keepalived daemon */
309309 #define RTPROT_BABEL 42 /* Babel daemon */
310+#define RTPROT_OVN 84 /* OVN daemon */
310311 #define RTPROT_OPENR 99 /* Open Routing (Open/R) Routes */
311312 #define RTPROT_BGP 186 /* BGP Routes */
312313 #define RTPROT_ISIS 187 /* ISIS Routes */
include/uapi/linux/snmp.h+7−6
@@ -23,9 +23,14 @@ enum · 22 unmodified lines
2323 IPSTATS_MIB_INPKTS, /* InReceives */
2424 IPSTATS_MIB_INOCTETS, /* InOctets */
2525 IPSTATS_MIB_INDELIVERS, /* InDelivers */
26− IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
26+ IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
27+ IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
28+ IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
29+ IPSTATS_MIB_CEPKTS, /* InCEPkts */
2730 IPSTATS_MIB_OUTREQUESTS, /* OutRequests */
31+ IPSTATS_MIB_OUTPKTS, /* OutTransmits */
2832 IPSTATS_MIB_OUTOCTETS, /* OutOctets */
33+ IPSTATS_MIB_OUTFORWDATAGRAMS, /* OutForwDatagrams */
2934 /* other fields */
3035 IPSTATS_MIB_INHDRERRORS, /* InHdrErrors */
3136 IPSTATS_MIB_INTOOBIGERRORS, /* InTooBigErrors */
@@ -52,12 +57,7 @@ enum · 20 unmodified lines
5257 IPSTATS_MIB_INBCASTOCTETS, /* InBcastOctets */
5358 IPSTATS_MIB_OUTBCASTOCTETS, /* OutBcastOctets */
5459 IPSTATS_MIB_CSUMERRORS, /* InCsumErrors */
55− IPSTATS_MIB_NOECTPKTS, /* InNoECTPkts */
56− IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
57− IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
58− IPSTATS_MIB_CEPKTS, /* InCEPkts */
5960 IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
60− IPSTATS_MIB_OUTPKTS, /* OutTransmits */
6161 __IPSTATS_MIB_MAX
6262 };
6363
@@ -186,6 +186,7 @@ enum · 122 unmodified lines
186186 LINUX_MIB_TIMEWAITKILLED, /* TimeWaitKilled */
187187 LINUX_MIB_PAWSACTIVEREJECTED, /* PAWSActiveRejected */
188188 LINUX_MIB_PAWSESTABREJECTED, /* PAWSEstabRejected */
189+ LINUX_MIB_TSECRREJECTED, /* TSEcrRejected */
189190 LINUX_MIB_PAWS_OLD_ACK, /* PAWSOldAck */
190191 LINUX_MIB_DELAYEDACKS, /* DelayedACKs */
191192 LINUX_MIB_DELAYEDACKLOCKED, /* DelayedACKLocked */
include/uapi/linux/stddef.h+6−0
@@ -70,4 +70,10 @@ · 69 unmodified lines
7070 #define __counted_by_be(m)
7171 #endif
7272
73+#ifdef __KERNEL__
74+#define __kernel_nonstring __nonstring
75+#else
76+#define __kernel_nonstring
77+#endif
78+
7379 #endif /* _UAPI_LINUX_STDDEF_H */
include/uapi/linux/tcp.h+9−3
@@ -28,7 +28,8 @@ struct tcphdr { · 27 unmodified lines
2828 __be32 seq;
2929 __be32 ack_seq;
3030 #if defined(__LITTLE_ENDIAN_BITFIELD)
31− __u16 res1:4,
31+ __u16 ae:1,
32+ res1:3,
3233 doff:4,
3334 fin:1,
3435 syn:1,
@@ -40,7 +41,8 @@ struct tcphdr { · 5 unmodified lines
4041 cwr:1;
4142 #elif defined(__BIG_ENDIAN_BITFIELD)
4243 __u16 doff:4,
43− res1:4,
44+ res1:3,
45+ ae:1,
4446 cwr:1,
4547 ece:1,
4648 urg:1,
@@ -70,6 +72,7 @@ union tcp_word_hdr { · 23 unmodified lines
7072 #define tcp_flag_word(tp) (((union tcp_word_hdr *)(tp))->words[3])
7173
7274 enum {
75+ TCP_FLAG_AE = __constant_cpu_to_be32(0x01000000),
7376 TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
7477 TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
7578 TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
@@ -78,7 +81,7 @@ enum { · 2 unmodified lines
7881 TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
7982 TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
8083 TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
81− TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
84+ TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0E000000),
8285 TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
8386 };
8487
@@ -136,6 +139,9 @@ enum { · 51 unmodified lines
136139 #define TCP_AO_REPAIR 42 /* Get/Set SNEs and ISNs */
137140
138141 #define TCP_IS_MPTCP 43 /* Is MPTCP being used? */
142+#define TCP_RTO_MAX_MS 44 /* max rto time in ms */
143+#define TCP_RTO_MIN_US 45 /* min rto time in us */
144+#define TCP_DELACK_MAX_US 46 /* max delayed ack time in us */
139145
140146 #define TCP_REPAIR_ON 1
141147 #define TCP_REPAIR_OFF 0
include/uapi/linux/ublk_cmd.h+36−0
@@ -94,6 +94,10 @@ · 93 unmodified lines
9494 _IOWR('u', UBLK_IO_COMMIT_AND_FETCH_REQ, struct ublksrv_io_cmd)
9595 #define UBLK_U_IO_NEED_GET_DATA \
9696 _IOWR('u', UBLK_IO_NEED_GET_DATA, struct ublksrv_io_cmd)
97+#define UBLK_U_IO_REGISTER_IO_BUF \
98+ _IOWR('u', 0x23, struct ublksrv_io_cmd)
99+#define UBLK_U_IO_UNREGISTER_IO_BUF \
100+ _IOWR('u', 0x24, struct ublksrv_io_cmd)
97101
98102 /* only ABORT means that no re-fetch */
99103 #define UBLK_IO_RES_OK 0
@@ -401,6 +405,34 @@ struct ublk_param_zoned { · 301 unmodified lines
401405 __u8 reserved[20];
402406 };
403407
408+struct ublk_param_dma_align {
409+ __u32 alignment;
410+ __u8 pad[4];
411+};
412+
413+#define UBLK_MIN_SEGMENT_SIZE 4096
414+/*
415+ * If any one of the three segment parameter is set as 0, the behavior is
416+ * undefined.
417+ */
418+struct ublk_param_segment {
419+ /*
420+ * seg_boundary_mask + 1 needs to be power_of_2(), and the sum has
421+ * to be >= UBLK_MIN_SEGMENT_SIZE(4096)
422+ */
423+ __u64 seg_boundary_mask;
424+
425+ /*
426+ * max_segment_size could be override by virt_boundary_mask, so be
427+ * careful when setting both.
428+ *
429+ * max_segment_size has to be >= UBLK_MIN_SEGMENT_SIZE(4096)
430+ */
431+ __u32 max_segment_size;
432+ __u16 max_segments;
433+ __u8 pad[2];
434+};
435+
404436 struct ublk_params {
405437 /*
406438 * Total length of parameters, userspace has to set 'len' for both
@@ -413,12 +445,16 @@ struct ublk_params { · 6 unmodified lines
413445 #define UBLK_PARAM_TYPE_DISCARD (1 << 1)
414446 #define UBLK_PARAM_TYPE_DEVT (1 << 2)
415447 #define UBLK_PARAM_TYPE_ZONED (1 << 3)
448+#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4)
449+#define UBLK_PARAM_TYPE_SEGMENT (1 << 5)
416450 __u32 types; /* types of parameter included */
417451
418452 struct ublk_param_basic basic;
419453 struct ublk_param_discard discard;
420454 struct ublk_param_devt devt;
421455 struct ublk_param_zoned zoned;
456+ struct ublk_param_dma_align dma;
457+ struct ublk_param_segment seg;
422458 };
423459
424460 #endif
include/uapi/linux/usb/ch9.h+16−0
@@ -253,6 +253,9 @@ struct usb_ctrlrequest { · 252 unmodified lines
253253 #define USB_DT_BOS 0x0f
254254 #define USB_DT_DEVICE_CAPABILITY 0x10
255255 #define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
256+/* From the eUSB2 spec */
257+#define USB_DT_EUSB2_ISOC_ENDPOINT_COMP 0x12
258+/* From Wireless USB spec */
256259 #define USB_DT_WIRE_ADAPTER 0x21
257260 /* From USB Device Firmware Upgrade Specification, Revision 1.1 */
258261 #define USB_DT_DFU_FUNCTIONAL 0x21
@@ -330,6 +333,7 @@ struct usb_device_descriptor { · 71 unmodified lines
330333 #define USB_CLASS_AUDIO_VIDEO 0x10
331334 #define USB_CLASS_BILLBOARD 0x11
332335 #define USB_CLASS_USB_TYPE_C_BRIDGE 0x12
336+#define USB_CLASS_MCTP 0x14
333337 #define USB_CLASS_MISC 0xef
334338 #define USB_CLASS_APP_SPEC 0xfe
335339 #define USB_SUBCLASS_DFU 0x01
@@ -675,6 +679,18 @@ static inline int usb_endpoint_interrupt_type( · 339 unmodified lines
675679
676680 /*-------------------------------------------------------------------------*/
677681
682+/* USB_DT_EUSB2_ISOC_ENDPOINT_COMP: eUSB2 Isoch Endpoint Companion descriptor */
683+struct usb_eusb2_isoc_ep_comp_descriptor {
684+ __u8 bLength;
685+ __u8 bDescriptorType;
686+ __le16 wMaxPacketSize;
687+ __le32 dwBytesPerInterval;
688+} __attribute__ ((packed));
689+
690+#define USB_DT_EUSB2_ISOC_EP_COMP_SIZE 8
691+
692+/*-------------------------------------------------------------------------*/
693+
678694 /* USB_DT_SSP_ISOC_ENDPOINT_COMP: SuperSpeedPlus Isochronous Endpoint Companion
679695 * descriptor
680696 */
include/uapi/linux/usb/video.h+1−0
@@ -104,6 +104,7 @@ · 103 unmodified lines
104104 #define UVC_CT_ROLL_ABSOLUTE_CONTROL 0x0f
105105 #define UVC_CT_ROLL_RELATIVE_CONTROL 0x10
106106 #define UVC_CT_PRIVACY_CONTROL 0x11
107+#define UVC_CT_REGION_OF_INTEREST_CONTROL 0x14
107108
108109 /* A.9.5. Processing Unit Control Selectors */
109110 #define UVC_PU_CONTROL_UNDEFINED 0x00
include/uapi/linux/uvcvideo.h+13−0
@@ -16,6 +16,7 @@ · 15 unmodified lines
1616 #define UVC_CTRL_DATA_TYPE_BOOLEAN 3
1717 #define UVC_CTRL_DATA_TYPE_ENUM 4
1818 #define UVC_CTRL_DATA_TYPE_BITMASK 5
19+#define UVC_CTRL_DATA_TYPE_RECT 6
1920
2021 /* Control flags */
2122 #define UVC_CTRL_FLAG_SET_CUR (1 << 0)
@@ -38,6 +39,18 @@ · 16 unmodified lines
3839
3940 #define UVC_MENU_NAME_LEN 32
4041
42+/* V4L2 driver-specific controls */
43+#define V4L2_CID_UVC_REGION_OF_INTEREST_RECT (V4L2_CID_USER_UVC_BASE + 1)
44+#define V4L2_CID_UVC_REGION_OF_INTEREST_AUTO (V4L2_CID_USER_UVC_BASE + 2)
45+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_EXPOSURE (1 << 0)
46+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IRIS (1 << 1)
47+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_WHITE_BALANCE (1 << 2)
48+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FOCUS (1 << 3)
49+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_FACE_DETECT (1 << 4)
50+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_DETECT_AND_TRACK (1 << 5)
51+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_IMAGE_STABILIZATION (1 << 6)
52+#define V4L2_UVC_REGION_OF_INTEREST_AUTO_HIGHER_QUALITY (1 << 7)
53+
4154 struct uvc_menu_info {
4255 __u32 value;
4356 __u8 name[UVC_MENU_NAME_LEN];
include/uapi/linux/v4l2-controls.h+7−0
@@ -215,6 +215,13 @@ enum v4l2_colorfx { · 214 unmodified lines
215215 */
216216 #define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0)
217217
218+/*
219+ * The base for the uvc driver controls.
220+ * See linux/uvcvideo.h for the list of controls.
221+ * We reserve 64 controls for this driver.
222+ */
223+#define V4L2_CID_USER_UVC_BASE (V4L2_CID_USER_BASE + 0x11e0)
224+
218225 /* MPEG-class control IDs */
219226 /* The MPEG controls are applicable to all codec controls
220227 * and the 'MPEG' part of the define is historical */
include/uapi/linux/vfio.h+20−10
@@ -671,6 +671,7 @@ enum { · 670 unmodified lines
671671 */
672672 enum {
673673 VFIO_AP_REQ_IRQ_INDEX,
674+ VFIO_AP_CFG_CHG_IRQ_INDEX,
674675 VFIO_AP_NUM_IRQS
675676 };
676677
@@ -931,29 +932,34 @@ struct vfio_device_bind_iommufd { · 254 unmodified lines
931932 * VFIO_DEVICE_ATTACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 19,
932933 * struct vfio_device_attach_iommufd_pt)
933934 * @argsz: User filled size of this data.
934− * @flags: Must be 0.
935+ * @flags: Flags for attach.
935936 * @pt_id: Input the target id which can represent an ioas or a hwpt
936937 * allocated via iommufd subsystem.
937938 * Output the input ioas id or the attached hwpt id which could
938939 * be the specified hwpt itself or a hwpt automatically created
939940 * for the specified ioas by kernel during the attachment.
941+ * @pasid: The pasid to be attached, only meaningful when
942+ * VFIO_DEVICE_ATTACH_PASID is set in @flags
940943 *
941944 * Associate the device with an address space within the bound iommufd.
942945 * Undo by VFIO_DEVICE_DETACH_IOMMUFD_PT or device fd close. This is only
943946 * allowed on cdev fds.
944947 *
945− * If a vfio device is currently attached to a valid hw_pagetable, without doing
946− * a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl
947− * passing in another hw_pagetable (hwpt) id is allowed. This action, also known
948− * as a hw_pagetable replacement, will replace the device's currently attached
949− * hw_pagetable with a new hw_pagetable corresponding to the given pt_id.
948+ * If a vfio device or a pasid of this device is currently attached to a valid
949+ * hw_pagetable (hwpt), without doing a VFIO_DEVICE_DETACH_IOMMUFD_PT, a second
950+ * VFIO_DEVICE_ATTACH_IOMMUFD_PT ioctl passing in another hwpt id is allowed.
951+ * This action, also known as a hw_pagetable replacement, will replace the
952+ * currently attached hwpt of the device or the pasid of this device with a new
953+ * hwpt corresponding to the given pt_id.
950954 *
951955 * Return: 0 on success, -errno on failure.
952956 */
953957 struct vfio_device_attach_iommufd_pt {
954958 __u32 argsz;
955959 __u32 flags;
960+#define VFIO_DEVICE_ATTACH_PASID (1 << 0)
956961 __u32 pt_id;
962+ __u32 pasid;
957963 };
958964
959965 #define VFIO_DEVICE_ATTACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 19)
@@ -962,17 +968,21 @@ struct vfio_device_attach_iommufd_pt { · 2 unmodified lines
962968 * VFIO_DEVICE_DETACH_IOMMUFD_PT - _IOW(VFIO_TYPE, VFIO_BASE + 20,
963969 * struct vfio_device_detach_iommufd_pt)
964970 * @argsz: User filled size of this data.
965− * @flags: Must be 0.
971+ * @flags: Flags for detach.
972+ * @pasid: The pasid to be detached, only meaningful when
973+ * VFIO_DEVICE_DETACH_PASID is set in @flags
966974 *
967− * Remove the association of the device and its current associated address
968− * space. After it, the device should be in a blocking DMA state. This is only
969− * allowed on cdev fds.
975+ * Remove the association of the device or a pasid of the device and its current
976+ * associated address space. After it, the device or the pasid should be in a
977+ * blocking DMA state. This is only allowed on cdev fds.
970978 *
971979 * Return: 0 on success, -errno on failure.
972980 */
973981 struct vfio_device_detach_iommufd_pt {
974982 __u32 argsz;
975983 __u32 flags;
984+#define VFIO_DEVICE_DETACH_PASID (1 << 0)
985+ __u32 pasid;
976986 };
977987
978988 #define VFIO_DEVICE_DETACH_IOMMUFD_PT _IO(VFIO_TYPE, VFIO_BASE + 20)
include/uapi/linux/videodev2.h+5−0
@@ -1859,6 +1859,7 @@ struct v4l2_ext_control { · 1858 unmodified lines
18591859 __s32 __user *p_s32;
18601860 __s64 __user *p_s64;
18611861 struct v4l2_area __user *p_area;
1862+ struct v4l2_rect __user *p_rect;
18621863 struct v4l2_ctrl_h264_sps __user *p_h264_sps;
18631864 struct v4l2_ctrl_h264_pps __user *p_h264_pps;
18641865 struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix;
@@ -1911,6 +1912,8 @@ struct v4l2_ext_controls { · 46 unmodified lines
19111912 #define V4L2_CTRL_WHICH_CUR_VAL 0
19121913 #define V4L2_CTRL_WHICH_DEF_VAL 0x0f000000
19131914 #define V4L2_CTRL_WHICH_REQUEST_VAL 0x0f010000
1915+#define V4L2_CTRL_WHICH_MIN_VAL 0x0f020000
1916+#define V4L2_CTRL_WHICH_MAX_VAL 0x0f030000
19141917
19151918 enum v4l2_ctrl_type {
19161919 V4L2_CTRL_TYPE_INTEGER = 1,
@@ -1929,6 +1932,7 @@ enum v4l2_ctrl_type { · 12 unmodified lines
19291932 V4L2_CTRL_TYPE_U16 = 0x0101,
19301933 V4L2_CTRL_TYPE_U32 = 0x0102,
19311934 V4L2_CTRL_TYPE_AREA = 0x0106,
1935+ V4L2_CTRL_TYPE_RECT = 0x0107,
19321936
19331937 V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
19341938 V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
@@ -2017,6 +2021,7 @@ struct v4l2_querymenu { · 82 unmodified lines
20172021 #define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
20182022 #define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
20192023 #define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800
2024+#define V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX 0x1000
20202025
20212026 /* Query flags, to be ORed with the control ID */
20222027 #define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
include/uapi/linux/virtio_net.h+13−0
@@ -327,6 +327,19 @@ struct virtio_net_rss_config { · 326 unmodified lines
327327 __u8 hash_key_data[/* hash_key_length */];
328328 };
329329
330+struct virtio_net_rss_config_hdr {
331+ __le32 hash_types;
332+ __le16 indirection_table_mask;
333+ __le16 unclassified_queue;
334+ __le16 indirection_table[/* 1 + indirection_table_mask */];
335+};
336+
337+struct virtio_net_rss_config_trailer {
338+ __le16 max_tx_vq;
339+ __u8 hash_key_length;
340+ __u8 hash_key_data[/* hash_key_length */];
341+};
342+
330343 #define VIRTIO_NET_CTRL_MQ_RSS_CONFIG 1
331344
332345 /*
include/uapi/linux/xattr.h+4−0
@@ -83,6 +83,10 @@ struct xattr_args { · 82 unmodified lines
8383 #define XATTR_CAPS_SUFFIX "capability"
8484 #define XATTR_NAME_CAPS XATTR_SECURITY_PREFIX XATTR_CAPS_SUFFIX
8585
86+#define XATTR_BPF_LSM_SUFFIX "bpf."
87+#define XATTR_NAME_BPF_LSM (XATTR_SECURITY_PREFIX XATTR_BPF_LSM_SUFFIX)
88+#define XATTR_NAME_BPF_LSM_LEN (sizeof(XATTR_NAME_BPF_LSM) - 1)
89+
8690 #define XATTR_POSIX_ACL_ACCESS "posix_acl_access"
8791 #define XATTR_NAME_POSIX_ACL_ACCESS XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_ACCESS
8892 #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"