History

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

Let's kick-off this release cycle.

Maxime Ripard committed 4 years ago

Commit a140a6a2 parents 28743e2 9abf23111870 files · +521243 −187428Browse files

Showing the changes to include/uapi (83 of 11870 files). Show all

Unified · Split

83 files
  1. include/uapi/asm-generic/hugetlb_encode.h +13 −13
  2. include/uapi/asm-generic/mman-common.h +2 −0
  3. include/uapi/drm/amdgpu_drm.h +8 −0
  4. include/uapi/linux/bpf.h +159 −25
  5. include/uapi/linux/btrfs.h +6 −0
  6. include/uapi/linux/btrfs_tree.h +4 −0
  7. include/uapi/linux/can.h +53 −2
  8. include/uapi/linux/can/raw.h +1 −0
  9. include/uapi/linux/counter.h +8 −0
  10. include/uapi/linux/dlm.h +0 −1
  11. include/uapi/linux/dn.h +0 −149
  12. include/uapi/linux/dw100.h +14 −0
  13. include/uapi/linux/ethtool.h +61 −2
  14. include/uapi/linux/ethtool_netlink.h +17 −0
  15. include/uapi/linux/fuse.h +5 −1
  16. include/uapi/linux/hid.h +20 −6
  17. include/uapi/linux/if_ether.h +1 −0
  18. include/uapi/linux/if_link.h +12 −0
  19. include/uapi/linux/if_macsec.h +2 −0
  20. include/uapi/linux/if_tun.h +2 −0
  21. include/uapi/linux/iio/types.h +9 −1
  22. include/uapi/linux/in.h +8 −14
  23. include/uapi/linux/input-event-codes.h +1 −0
  24. include/uapi/linux/io_uring.h +31 −22
  25. include/uapi/linux/kvm.h +1 −0
  26. include/uapi/linux/l2tp.h +0 −2
  27. include/uapi/linux/landlock.h +5 −5
  28. include/uapi/linux/lwtunnel.h +10 −0
  29. include/uapi/linux/netfilter.h +2 −0
  30. include/uapi/linux/netfilter/ipset/ip_set.h +0 −4
  31. include/uapi/linux/netfilter/xt_AUDIT.h +0 −4
  32. include/uapi/linux/netfilter/xt_connmark.h +4 −9
  33. include/uapi/linux/netfilter/xt_osf.h +0 −14
  34. include/uapi/linux/netfilter_decnet.h +0 −72
  35. include/uapi/linux/netlink.h +24 −7
  36. include/uapi/linux/nl80211.h +22 −3
  37. include/uapi/linux/openvswitch.h +3 −0
  38. include/uapi/linux/perf_event.h +52 −5
  39. include/uapi/linux/pkt_cls.h +2 −0
  40. include/uapi/linux/pkt_sched.h +11 −0
  41. include/uapi/linux/psci.h +14 −0
  42. include/uapi/linux/sed-opal.h +13 −0
  43. include/uapi/linux/seg6_local.h +24 −0
  44. include/uapi/linux/stat.h +3 −1
  45. include/uapi/linux/tc_act/tc_bpf.h +0 −5
  46. include/uapi/linux/tc_act/tc_skbedit.h +0 −13
  47. include/uapi/linux/tc_act/tc_skbmod.h +1 −6
  48. include/uapi/linux/tc_act/tc_tunnel_key.h +0 −5
  49. include/uapi/linux/tc_act/tc_vlan.h +0 −5
  50. include/uapi/linux/tls.h +30 −0
  51. include/uapi/linux/ublk_cmd.h +7 −1
  52. include/uapi/linux/usbip.h +26 −0
  53. include/uapi/linux/userfaultfd.h +4 −0
  54. include/uapi/linux/v4l2-controls.h +7 −1
  55. include/uapi/linux/vdpa.h +6 −0
  56. include/uapi/linux/vfio.h +142 −0
  57. include/uapi/linux/videodev2.h +6 −1
  58. include/uapi/linux/virtio_blk.h +19 −0
  59. include/uapi/linux/virtio_net.h +7 −7
  60. include/uapi/linux/xfrm.h +1 −1
  61. include/uapi/misc/habanalabs.h +112 −25
  62. include/uapi/misc/uacce/hisi_qm.h +16 −1
  63. include/uapi/mtd/mtd-abi.h +59 −5
  64. include/uapi/mtd/ubi-user.h +7 −1
  65. include/uapi/rdma/efa-abi.h +3 −1
  66. include/uapi/rdma/mlx5-abi.h +1 −0
  67. include/uapi/rdma/mlx5_user_ioctl_cmds.h +1 −0
  68. include/uapi/rdma/rdma_user_rxe.h +2 −2
  69. include/uapi/scsi/scsi_netlink_fc.h +5 −2
  70. include/uapi/sound/asequencer.h +0 −16
  71. include/uapi/sound/asoc.h +0 −4
  72. include/uapi/sound/asound.h +0 −16
  73. include/uapi/sound/asound_fm.h +0 −15
  74. include/uapi/sound/compress_offload.h +0 −17
  75. include/uapi/sound/compress_params.h +2 −36
  76. include/uapi/sound/emu10k1.h +0 −16
  77. include/uapi/sound/hdsp.h +0 −14
  78. include/uapi/sound/hdspm.h +0 −15
  79. include/uapi/sound/sb16_csp.h +0 −15
  80. include/uapi/sound/sfnt_info.h +0 −15
  81. include/uapi/sound/snd_sst_tokens.h +0 −10
  82. include/uapi/sound/tlv.h +0 −11
  83. include/uapi/sound/usb_stream.h +0 −14
include/uapi/asm-generic/hugetlb_encode.h+13−13
@@ -20,18 +20,18 @@ · 19 unmodified lines
2020 #define HUGETLB_FLAG_ENCODE_SHIFT 26
2121 #define HUGETLB_FLAG_ENCODE_MASK 0x3f
2222
23−#define HUGETLB_FLAG_ENCODE_16KB (14 << HUGETLB_FLAG_ENCODE_SHIFT)
24−#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
25−#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
26−#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
27−#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT)
28−#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT)
29−#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT)
30−#define HUGETLB_FLAG_ENCODE_32MB (25 << HUGETLB_FLAG_ENCODE_SHIFT)
31−#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT)
32−#define HUGETLB_FLAG_ENCODE_512MB (29 << HUGETLB_FLAG_ENCODE_SHIFT)
33−#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT)
34−#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT)
35−#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT)
23+#define HUGETLB_FLAG_ENCODE_16KB (14U << HUGETLB_FLAG_ENCODE_SHIFT)
24+#define HUGETLB_FLAG_ENCODE_64KB (16U << HUGETLB_FLAG_ENCODE_SHIFT)
25+#define HUGETLB_FLAG_ENCODE_512KB (19U << HUGETLB_FLAG_ENCODE_SHIFT)
26+#define HUGETLB_FLAG_ENCODE_1MB (20U << HUGETLB_FLAG_ENCODE_SHIFT)
27+#define HUGETLB_FLAG_ENCODE_2MB (21U << HUGETLB_FLAG_ENCODE_SHIFT)
28+#define HUGETLB_FLAG_ENCODE_8MB (23U << HUGETLB_FLAG_ENCODE_SHIFT)
29+#define HUGETLB_FLAG_ENCODE_16MB (24U << HUGETLB_FLAG_ENCODE_SHIFT)
30+#define HUGETLB_FLAG_ENCODE_32MB (25U << HUGETLB_FLAG_ENCODE_SHIFT)
31+#define HUGETLB_FLAG_ENCODE_256MB (28U << HUGETLB_FLAG_ENCODE_SHIFT)
32+#define HUGETLB_FLAG_ENCODE_512MB (29U << HUGETLB_FLAG_ENCODE_SHIFT)
33+#define HUGETLB_FLAG_ENCODE_1GB (30U << HUGETLB_FLAG_ENCODE_SHIFT)
34+#define HUGETLB_FLAG_ENCODE_2GB (31U << HUGETLB_FLAG_ENCODE_SHIFT)
35+#define HUGETLB_FLAG_ENCODE_16GB (34U << HUGETLB_FLAG_ENCODE_SHIFT)
3636
3737 #endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */
include/uapi/asm-generic/mman-common.h+2−0
@@ -77,6 +77,8 @@ · 76 unmodified lines
7777
7878 #define MADV_DONTNEED_LOCKED 24 /* like DONTNEED, but drop locked pages too */
7979
80+#define MADV_COLLAPSE 25 /* Synchronous hugepage collapse */
81+
8082 /* compatibility flags */
8183 #define MAP_FILE 0
8284
include/uapi/drm/amdgpu_drm.h+8−0
@@ -755,6 +755,14 @@ struct drm_amdgpu_cs_chunk_data { · 754 unmodified lines
755755 #define AMDGPU_INFO_FW_TOC 0x15
756756 /* Subquery id: Query CAP firmware version */
757757 #define AMDGPU_INFO_FW_CAP 0x16
758+ /* Subquery id: Query GFX RLCP firmware version */
759+ #define AMDGPU_INFO_FW_GFX_RLCP 0x17
760+ /* Subquery id: Query GFX RLCV firmware version */
761+ #define AMDGPU_INFO_FW_GFX_RLCV 0x18
762+ /* Subquery id: Query MES_KIQ firmware version */
763+ #define AMDGPU_INFO_FW_MES_KIQ 0x19
764+ /* Subquery id: Query MES firmware version */
765+ #define AMDGPU_INFO_FW_MES 0x1a
758766
759767 /* number of bytes moved for TTM migration */
760768 #define AMDGPU_INFO_NUM_BYTES_MOVED 0x0f
include/uapi/linux/bpf.h+159−25
@@ -79,7 +79,7 @@ struct bpf_insn { · 78 unmodified lines
7979 /* Key of an a BPF_MAP_TYPE_LPM_TRIE entry */
8080 struct bpf_lpm_trie_key {
8181 __u32 prefixlen; /* up to 32 for AF_INET, 128 for AF_INET6 */
82− __u8 data[]; /* Arbitrary size */
82+ __u8 data[0]; /* Arbitrary size */
8383 };
8484
8585 struct bpf_cgroup_storage_key {
@@ -87,10 +87,35 @@ struct bpf_cgroup_storage_key { · 1 unmodified line
8787 __u32 attach_type; /* program attach type (enum bpf_attach_type) */
8888 };
8989
90+enum bpf_cgroup_iter_order {
91+ BPF_CGROUP_ITER_ORDER_UNSPEC = 0,
92+ BPF_CGROUP_ITER_SELF_ONLY, /* process only a single object. */
93+ BPF_CGROUP_ITER_DESCENDANTS_PRE, /* walk descendants in pre-order. */
94+ BPF_CGROUP_ITER_DESCENDANTS_POST, /* walk descendants in post-order. */
95+ BPF_CGROUP_ITER_ANCESTORS_UP, /* walk ancestors upward. */
96+};
97+
9098 union bpf_iter_link_info {
9199 struct {
92100 __u32 map_fd;
93101 } map;
102+ struct {
103+ enum bpf_cgroup_iter_order order;
104+
105+ /* At most one of cgroup_fd and cgroup_id can be non-zero. If
106+ * both are zero, the walk starts from the default cgroup v2
107+ * root. For walking v1 hierarchy, one should always explicitly
108+ * specify cgroup_fd.
109+ */
110+ __u32 cgroup_fd;
111+ __u64 cgroup_id;
112+ } cgroup;
113+ /* Parameters of task iterators. */
114+ struct {
115+ __u32 tid;
116+ __u32 pid;
117+ __u32 pid_fd;
118+ } task;
94119 };
95120
96121 /* BPF syscall commands, see bpf(2) man-page for more details. */
@@ -909,6 +934,7 @@ enum bpf_map_type { · 812 unmodified lines
909934 BPF_MAP_TYPE_INODE_STORAGE,
910935 BPF_MAP_TYPE_TASK_STORAGE,
911936 BPF_MAP_TYPE_BLOOM_FILTER,
937+ BPF_MAP_TYPE_USER_RINGBUF,
912938 };
913939
914940 /* Note that tracing related programs such as
@@ -1233,7 +1259,7 @@ enum { · 318 unmodified lines
12331259
12341260 /* Query effective (directly attached + inherited from ancestor cgroups)
12351261 * programs that will be executed for events within a cgroup.
1236− * attach_flags with this flag are returned only for directly attached programs.
1262+ * attach_flags with this flag are always returned 0.
12371263 */
12381264 #define BPF_F_QUERY_EFFECTIVE (1U << 0)
12391265
@@ -1432,7 +1458,10 @@ union bpf_attr { · 192 unmodified lines
14321458 __u32 attach_flags;
14331459 __aligned_u64 prog_ids;
14341460 __u32 prog_cnt;
1435− __aligned_u64 prog_attach_flags; /* output: per-program attach_flags */
1461+ /* output: per-program attach_flags.
1462+ * not allowed to be set during effective query.
1463+ */
1464+ __aligned_u64 prog_attach_flags;
14361465 } query;
14371466
14381467 struct { /* anonymous struct used by BPF_RAW_TRACEPOINT_OPEN command */
@@ -2573,10 +2602,12 @@ union bpf_attr { · 1134 unmodified lines
25732602 * There are two supported modes at this time:
25742603 *
25752604 * * **BPF_ADJ_ROOM_MAC**: Adjust room at the mac layer
2576− * (room space is added or removed below the layer 2 header).
2605+ * (room space is added or removed between the layer 2 and
2606+ * layer 3 headers).
25772607 *
25782608 * * **BPF_ADJ_ROOM_NET**: Adjust room at the network layer
2579− * (room space is added or removed below the layer 3 header).
2609+ * (room space is added or removed between the layer 3 and
2610+ * layer 4 headers).
25802611 *
25812612 * The following flags are supported at this time:
25822613 *
@@ -3008,8 +3039,18 @@ union bpf_attr { · 425 unmodified lines
30083039 * **BPF_F_USER_STACK**
30093040 * Collect a user space stack instead of a kernel stack.
30103041 * **BPF_F_USER_BUILD_ID**
3011− * Collect buildid+offset instead of ips for user stack,
3012− * only valid if **BPF_F_USER_STACK** is also specified.
3042+ * Collect (build_id, file_offset) instead of ips for user
3043+ * stack, only valid if **BPF_F_USER_STACK** is also
3044+ * specified.
3045+ *
3046+ * *file_offset* is an offset relative to the beginning
3047+ * of the executable or shared object file backing the vma
3048+ * which the *ip* falls in. It is *not* an offset relative
3049+ * to that object's base address. Accordingly, it must be
3050+ * adjusted by adding (sh_addr - sh_offset), where
3051+ * sh_{addr,offset} correspond to the executable section
3052+ * containing *file_offset* in the object, for comparisons
3053+ * to symbols' st_value to be valid.
30133054 *
30143055 * **bpf_get_stack**\ () can collect up to
30153056 * **PERF_MAX_STACK_DEPTH** both kernel and user frames, subject
@@ -4425,7 +4466,7 @@ union bpf_attr { · 1409 unmodified lines
44254466 *
44264467 * **-EEXIST** if the option already exists.
44274468 *
4428− * **-EFAULT** on failrue to parse the existing header options.
4469+ * **-EFAULT** on failure to parse the existing header options.
44294470 *
44304471 * **-EPERM** if the helper cannot be used under the current
44314472 * *skops*\ **->op**.
@@ -4634,7 +4675,7 @@ union bpf_attr { · 202 unmodified lines
46344675 * a *map* with *task* as the **key**. From this
46354676 * perspective, the usage is not much different from
46364677 * **bpf_map_lookup_elem**\ (*map*, **&**\ *task*) except this
4637− * helper enforces the key must be an task_struct and the map must also
4678+ * helper enforces the key must be a task_struct and the map must also
46384679 * be a **BPF_MAP_TYPE_TASK_STORAGE**.
46394680 *
46404681 * Underneath, the value is stored locally at *task* instead of
@@ -4692,7 +4733,7 @@ union bpf_attr { · 51 unmodified lines
46924733 *
46934734 * long bpf_ima_inode_hash(struct inode *inode, void *dst, u32 size)
46944735 * Description
4695− * Returns the stored IMA hash of the *inode* (if it's avaialable).
4736+ * Returns the stored IMA hash of the *inode* (if it's available).
46964737 * If the hash is larger than *size*, then only *size*
46974738 * bytes will be copied to *dst*
46984739 * Return
@@ -4716,12 +4757,12 @@ union bpf_attr { · 17 unmodified lines
47164757 *
47174758 * The argument *len_diff* can be used for querying with a planned
47184759 * size change. This allows to check MTU prior to changing packet
4719− * ctx. Providing an *len_diff* adjustment that is larger than the
4760+ * ctx. Providing a *len_diff* adjustment that is larger than the
47204761 * actual packet size (resulting in negative packet size) will in
4721− * principle not exceed the MTU, why it is not considered a
4722− * failure. Other BPF-helpers are needed for performing the
4723− * planned size change, why the responsability for catch a negative
4724− * packet size belong in those helpers.
4762+ * principle not exceed the MTU, which is why it is not considered
4763+ * a failure. Other BPF helpers are needed for performing the
4764+ * planned size change; therefore the responsibility for catching
4765+ * a negative packet size belongs in those helpers.
47254766 *
47264767 * Specifying *ifindex* zero means the MTU check is performed
47274768 * against the current net device. This is practical if this isn't
@@ -4919,6 +4960,7 @@ union bpf_attr { · 191 unmodified lines
49194960 * Get address of the traced function (for tracing and kprobe programs).
49204961 * Return
49214962 * Address of the traced function.
4963+ * 0 for kprobes placed within the function (not at the entry).
49224964 *
49234965 * u64 bpf_get_attach_cookie(void *ctx)
49244966 * Description
@@ -5048,12 +5090,12 @@ union bpf_attr { · 123 unmodified lines
50485090 *
50495091 * long bpf_get_func_arg(void *ctx, u32 n, u64 *value)
50505092 * Description
5051− * Get **n**-th argument (zero based) of the traced function (for tracing programs)
5093+ * Get **n**-th argument register (zero based) of the traced function (for tracing programs)
50525094 * returned in **value**.
50535095 *
50545096 * Return
50555097 * 0 on success.
5056− * **-EINVAL** if n >= arguments count of traced function.
5098+ * **-EINVAL** if n >= argument register count of traced function.
50575099 *
50585100 * long bpf_get_func_ret(void *ctx, u64 *value)
50595101 * Description
@@ -5066,24 +5108,37 @@ union bpf_attr { · 6 unmodified lines
50665108 *
50675109 * long bpf_get_func_arg_cnt(void *ctx)
50685110 * Description
5069− * Get number of arguments of the traced function (for tracing programs).
5111+ * Get number of registers of the traced function (for tracing programs) where
5112+ * function arguments are stored in these registers.
50705113 *
50715114 * Return
5072− * The number of arguments of the traced function.
5115+ * The number of argument registers of the traced function.
50735116 *
50745117 * int bpf_get_retval(void)
50755118 * Description
5076− * Get the syscall's return value that will be returned to userspace.
5119+ * Get the BPF program's return value that will be returned to the upper layers.
50775120 *
5078− * This helper is currently supported by cgroup programs only.
5121+ * This helper is currently supported by cgroup programs and only by the hooks
5122+ * where BPF program's return value is returned to the userspace via errno.
50795123 * Return
5080− * The syscall's return value.
5124+ * The BPF program's return value.
50815125 *
50825126 * int bpf_set_retval(int retval)
50835127 * Description
5084− * Set the syscall's return value that will be returned to userspace.
5128+ * Set the BPF program's return value that will be returned to the upper layers.
5129+ *
5130+ * This helper is currently supported by cgroup programs and only by the hooks
5131+ * where BPF program's return value is returned to the userspace via errno.
5132+ *
5133+ * Note that there is the following corner case where the program exports an error
5134+ * via bpf_set_retval but signals success via 'return 1':
5135+ *
5136+ * bpf_set_retval(-EPERM);
5137+ * return 1;
5138+ *
5139+ * In this case, the BPF program's return value will use helper's -EPERM. This
5140+ * still holds true for cgroup/bind{4,6} which supports extra 'return 3' success case.
50855141 *
5086− * This helper is currently supported by cgroup programs only.
50875142 * Return
50885143 * 0 on success, or a negative error in case of failure.
50895144 *
@@ -5331,6 +5386,55 @@ union bpf_attr { · 241 unmodified lines
53315386 * **-EACCES** if the SYN cookie is not valid.
53325387 *
53335388 * **-EPROTONOSUPPORT** if CONFIG_IPV6 is not builtin.
5389+ *
5390+ * u64 bpf_ktime_get_tai_ns(void)
5391+ * Description
5392+ * A nonsettable system-wide clock derived from wall-clock time but
5393+ * ignoring leap seconds. This clock does not experience
5394+ * discontinuities and backwards jumps caused by NTP inserting leap
5395+ * seconds as CLOCK_REALTIME does.
5396+ *
5397+ * See: **clock_gettime**\ (**CLOCK_TAI**)
5398+ * Return
5399+ * Current *ktime*.
5400+ *
5401+ * long bpf_user_ringbuf_drain(struct bpf_map *map, void *callback_fn, void *ctx, u64 flags)
5402+ * Description
5403+ * Drain samples from the specified user ring buffer, and invoke
5404+ * the provided callback for each such sample:
5405+ *
5406+ * long (\*callback_fn)(struct bpf_dynptr \*dynptr, void \*ctx);
5407+ *
5408+ * If **callback_fn** returns 0, the helper will continue to try
5409+ * and drain the next sample, up to a maximum of
5410+ * BPF_MAX_USER_RINGBUF_SAMPLES samples. If the return value is 1,
5411+ * the helper will skip the rest of the samples and return. Other
5412+ * return values are not used now, and will be rejected by the
5413+ * verifier.
5414+ * Return
5415+ * The number of drained samples if no error was encountered while
5416+ * draining samples, or 0 if no samples were present in the ring
5417+ * buffer. If a user-space producer was epoll-waiting on this map,
5418+ * and at least one sample was drained, they will receive an event
5419+ * notification notifying them of available space in the ring
5420+ * buffer. If the BPF_RB_NO_WAKEUP flag is passed to this
5421+ * function, no wakeup notification will be sent. If the
5422+ * BPF_RB_FORCE_WAKEUP flag is passed, a wakeup notification will
5423+ * be sent even if no sample was drained.
5424+ *
5425+ * On failure, the returned value is one of the following:
5426+ *
5427+ * **-EBUSY** if the ring buffer is contended, and another calling
5428+ * context was concurrently draining the ring buffer.
5429+ *
5430+ * **-EINVAL** if user-space is not properly tracking the ring
5431+ * buffer due to the producer position not being aligned to 8
5432+ * bytes, a sample not being aligned to 8 bytes, or the producer
5433+ * position not matching the advertised length of a sample.
5434+ *
5435+ * **-E2BIG** if user-space has tried to publish a sample which is
5436+ * larger than the size of the ring buffer, or which cannot fit
5437+ * within a struct bpf_dynptr.
53345438 */
53355439 #define __BPF_FUNC_MAPPER(FN) \
53365440 FN(unspec), \
@@ -5541,6 +5645,8 @@ union bpf_attr { · 204 unmodified lines
55415645 FN(tcp_raw_gen_syncookie_ipv6), \
55425646 FN(tcp_raw_check_syncookie_ipv4), \
55435647 FN(tcp_raw_check_syncookie_ipv6), \
5648+ FN(ktime_get_tai_ns), \
5649+ FN(user_ringbuf_drain), \
55445650 /* */
55455651
55465652 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5603,6 +5709,11 @@ enum { · 56 unmodified lines
56035709 BPF_F_SEQ_NUMBER = (1ULL << 3),
56045710 };
56055711
5712+/* BPF_FUNC_skb_get_tunnel_key flags. */
5713+enum {
5714+ BPF_F_TUNINFO_FLAGS = (1ULL << 4),
5715+};
5716+
56065717 /* BPF_FUNC_perf_event_output, BPF_FUNC_perf_event_read and
56075718 * BPF_FUNC_perf_event_read_value flags.
56085719 */
@@ -5792,7 +5903,10 @@ struct bpf_tunnel_key { · 183 unmodified lines
57925903 };
57935904 __u8 tunnel_tos;
57945905 __u8 tunnel_ttl;
5795− __u16 tunnel_ext; /* Padding, future use. */
5906+ union {
5907+ __u16 tunnel_ext; /* compat */
5908+ __be16 tunnel_flags;
5909+ };
57965910 __u32 tunnel_label;
57975911 union {
57985912 __u32 local_ipv4;
@@ -5836,6 +5950,11 @@ enum bpf_ret_code { · 37 unmodified lines
58365950 * represented by BPF_REDIRECT above).
58375951 */
58385952 BPF_LWT_REROUTE = 128,
5953+ /* BPF_FLOW_DISSECTOR_CONTINUE: used by BPF_PROG_TYPE_FLOW_DISSECTOR
5954+ * to indicate that no custom dissection was performed, and
5955+ * fallback to standard dissector is requested.
5956+ */
5957+ BPF_FLOW_DISSECTOR_CONTINUE = 129,
58395958 };
58405959
58415960 struct bpf_sock {
@@ -6134,11 +6253,26 @@ struct bpf_link_info { · 292 unmodified lines
61346253 struct {
61356254 __aligned_u64 target_name; /* in/out: target_name buffer ptr */
61366255 __u32 target_name_len; /* in/out: target_name buffer len */
6256+
6257+ /* If the iter specific field is 32 bits, it can be put
6258+ * in the first or second union. Otherwise it should be
6259+ * put in the second union.
6260+ */
61376261 union {
61386262 struct {
61396263 __u32 map_id;
61406264 } map;
61416265 };
6266+ union {
6267+ struct {
6268+ __u64 cgroup_id;
6269+ __u32 order;
6270+ } cgroup;
6271+ struct {
6272+ __u32 tid;
6273+ __u32 pid;
6274+ } task;
6275+ };
61426276 } iter;
61436277 struct {
61446278 __u32 netns_ino;
include/uapi/linux/btrfs.h+6−0
@@ -290,6 +290,12 @@ struct btrfs_ioctl_fs_info_args { · 289 unmodified lines
290290 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
291291 #define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
292292
293+/*
294+ * Put all block group items into a dedicated block group tree, greatly
295+ * reducing mount time for large filesystem due to better locality.
296+ */
297+#define BTRFS_FEATURE_COMPAT_RO_BLOCK_GROUP_TREE (1ULL << 3)
298+
293299 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
294300 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
295301 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
include/uapi/linux/btrfs_tree.h+4−0
@@ -965,6 +965,10 @@ static inline __u16 btrfs_qgroup_level(__u64 qgroupid) · 964 unmodified lines
965965 */
966966 #define BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT (1ULL << 2)
967967
968+#define BTRFS_QGROUP_STATUS_FLAGS_MASK (BTRFS_QGROUP_STATUS_FLAG_ON | \
969+ BTRFS_QGROUP_STATUS_FLAG_RESCAN | \
970+ BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT)
971+
968972 #define BTRFS_QGROUP_STATUS_VERSION 1
969973
970974 struct btrfs_qgroup_status_item {
include/uapi/linux/can.h+53−2
@@ -48,6 +48,7 @@ · 47 unmodified lines
4848
4949 #include <linux/types.h>
5050 #include <linux/socket.h>
51+#include <linux/stddef.h> /* for offsetof */
5152
5253 /* controller area network (CAN) kernel definitions */
5354
@@ -60,6 +61,7 @@ · 6 unmodified lines
6061 #define CAN_SFF_MASK 0x000007FFU /* standard frame format (SFF) */
6162 #define CAN_EFF_MASK 0x1FFFFFFFU /* extended frame format (EFF) */
6263 #define CAN_ERR_MASK 0x1FFFFFFFU /* omit EFF, RTR, ERR flags */
64+#define CANXL_PRIO_MASK CAN_SFF_MASK /* 11 bit priority mask */
6365
6466 /*
6567 * Controller Area Network Identifier structure
@@ -73,6 +75,7 @@ typedef __u32 canid_t; · 7 unmodified lines
7375
7476 #define CAN_SFF_ID_BITS 11
7577 #define CAN_EFF_ID_BITS 29
78+#define CANXL_PRIO_BITS CAN_SFF_ID_BITS
7679
7780 /*
7881 * Controller Area Network Error Message Frame Mask structure
@@ -91,6 +94,16 @@ typedef __u32 can_err_mask_t; · 12 unmodified lines
9194 #define CANFD_MAX_DLC 15
9295 #define CANFD_MAX_DLEN 64
9396
97+/*
98+ * CAN XL payload length and DLC definitions according to ISO 11898-1
99+ * CAN XL DLC ranges from 0 .. 2047 => data length from 1 .. 2048 byte
100+ */
101+#define CANXL_MIN_DLC 0
102+#define CANXL_MAX_DLC 2047
103+#define CANXL_MAX_DLC_MASK 0x07FF
104+#define CANXL_MIN_DLEN 1
105+#define CANXL_MAX_DLEN 2048
106+
94107 /**
95108 * struct can_frame - Classical CAN frame structure (aka CAN 2.0B)
96109 * @can_id: CAN ID of the frame and CAN_*_FLAG flags, see canid_t definition
@@ -141,8 +154,8 @@ struct can_frame { · 44 unmodified lines
141154 * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
142155 * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
143156 * using struct canfd_frame for mixed CAN / CAN FD content (dual use).
144− * N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of
145− * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.
157+ * Since the introduction of CAN XL the CANFD_FDF flag is set in all CAN FD
158+ * frame structures provided by the CAN subsystem of the Linux kernel.
146159 */
147160 #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
148161 #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
@@ -166,8 +179,46 @@ struct canfd_frame { · 17 unmodified lines
166179 __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
167180 };
168181
182+/*
183+ * defined bits for canxl_frame.flags
184+ *
185+ * The canxl_frame.flags element contains two bits CANXL_XLF and CANXL_SEC
186+ * and shares the relative position of the struct can[fd]_frame.len element.
187+ * The CANXL_XLF bit ALWAYS needs to be set to indicate a valid CAN XL frame.
188+ * As a side effect setting this bit intentionally breaks the length checks
189+ * for Classical CAN and CAN FD frames.
190+ *
191+ * Undefined bits in canxl_frame.flags are reserved and shall be set to zero.
192+ */
193+#define CANXL_XLF 0x80 /* mandatory CAN XL frame flag (must always be set!) */
194+#define CANXL_SEC 0x01 /* Simple Extended Content (security/segmentation) */
195+
196+/**
197+ * struct canxl_frame - CAN with e'X'tended frame 'L'ength frame structure
198+ * @prio: 11 bit arbitration priority with zero'ed CAN_*_FLAG flags
199+ * @flags: additional flags for CAN XL
200+ * @sdt: SDU (service data unit) type
201+ * @len: frame payload length in byte (CANXL_MIN_DLEN .. CANXL_MAX_DLEN)
202+ * @af: acceptance field
203+ * @data: CAN XL frame payload (CANXL_MIN_DLEN .. CANXL_MAX_DLEN byte)
204+ *
205+ * @prio shares the same position as @can_id from struct can[fd]_frame.
206+ */
207+struct canxl_frame {
208+ canid_t prio; /* 11 bit priority for arbitration (canid_t) */
209+ __u8 flags; /* additional flags for CAN XL */
210+ __u8 sdt; /* SDU (service data unit) type */
211+ __u16 len; /* frame payload length in byte */
212+ __u32 af; /* acceptance field */
213+ __u8 data[CANXL_MAX_DLEN];
214+};
215+
169216 #define CAN_MTU (sizeof(struct can_frame))
170217 #define CANFD_MTU (sizeof(struct canfd_frame))
218+#define CANXL_MTU (sizeof(struct canxl_frame))
219+#define CANXL_HDR_SIZE (offsetof(struct canxl_frame, data))
220+#define CANXL_MIN_MTU (CANXL_HDR_SIZE + 64)
221+#define CANXL_MAX_MTU CANXL_MTU
171222
172223 /* particular protocols of the protocol family PF_CAN */
173224 #define CAN_RAW 1 /* RAW sockets */
include/uapi/linux/can/raw.h+1−0
@@ -62,6 +62,7 @@ enum { · 61 unmodified lines
6262 CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */
6363 CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */
6464 CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */
65+ CAN_RAW_XL_FRAMES, /* allow CAN XL frames (default:off) */
6566 };
6667
6768 #endif /* !_UAPI_CAN_RAW_H */
include/uapi/linux/counter.h+8−0
@@ -63,6 +63,8 @@ enum counter_event_type { · 62 unmodified lines
6363 COUNTER_EVENT_INDEX,
6464 /* State of counter is changed */
6565 COUNTER_EVENT_CHANGE_OF_STATE,
66+ /* Count value captured */
67+ COUNTER_EVENT_CAPTURE,
6668 };
6769
6870 /**
@@ -153,4 +155,10 @@ enum counter_synapse_action { · 84 unmodified lines
153155 COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
154156 };
155157
158+/* Signal polarity values */
159+enum counter_signal_polarity {
160+ COUNTER_SIGNAL_POLARITY_POSITIVE,
161+ COUNTER_SIGNAL_POLARITY_NEGATIVE,
162+};
163+
156164 #endif /* _UAPI_COUNTER_H_ */
include/uapi/linux/dlm.h+0−1
@@ -69,7 +69,6 @@ struct dlm_lksb { · 68 unmodified lines
6969 /* dlm_new_lockspace() flags */
7070
7171 #define DLM_LSFL_TIMEWARN 0x00000002
72−#define DLM_LSFL_FS 0x00000004
7372 #define DLM_LSFL_NEWEXCL 0x00000008
7473
7574
include/uapi/linux/dn.h+0−149
@@ -1,149 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef _LINUX_DN_H
3−#define _LINUX_DN_H
4−
5−#include <linux/ioctl.h>
6−#include <linux/types.h>
7−#include <linux/if_ether.h>
8−
9−/*
10−
11− DECnet Data Structures and Constants
12−
13−*/
14−
15−/*
16− * DNPROTO_NSP can't be the same as SOL_SOCKET,
17− * so increment each by one (compared to ULTRIX)
18− */
19−#define DNPROTO_NSP 2 /* NSP protocol number */
20−#define DNPROTO_ROU 3 /* Routing protocol number */
21−#define DNPROTO_NML 4 /* Net mgt protocol number */
22−#define DNPROTO_EVL 5 /* Evl protocol number (usr) */
23−#define DNPROTO_EVR 6 /* Evl protocol number (evl) */
24−#define DNPROTO_NSPT 7 /* NSP trace protocol number */
25−
26−
27−#define DN_ADDL 2
28−#define DN_MAXADDL 2 /* ULTRIX headers have 20 here, but pathworks has 2 */
29−#define DN_MAXOPTL 16
30−#define DN_MAXOBJL 16
31−#define DN_MAXACCL 40
32−#define DN_MAXALIASL 128
33−#define DN_MAXNODEL 256
34−#define DNBUFSIZE 65023
35−
36−/*
37− * SET/GET Socket options - must match the DSO_ numbers below
38− */
39−#define SO_CONDATA 1
40−#define SO_CONACCESS 2
41−#define SO_PROXYUSR 3
42−#define SO_LINKINFO 7
43−
44−#define DSO_CONDATA 1 /* Set/Get connect data */
45−#define DSO_DISDATA 10 /* Set/Get disconnect data */
46−#define DSO_CONACCESS 2 /* Set/Get connect access data */
47−#define DSO_ACCEPTMODE 4 /* Set/Get accept mode */
48−#define DSO_CONACCEPT 5 /* Accept deferred connection */
49−#define DSO_CONREJECT 6 /* Reject deferred connection */
50−#define DSO_LINKINFO 7 /* Set/Get link information */
51−#define DSO_STREAM 8 /* Set socket type to stream */
52−#define DSO_SEQPACKET 9 /* Set socket type to sequenced packet */
53−#define DSO_MAXWINDOW 11 /* Maximum window size allowed */
54−#define DSO_NODELAY 12 /* Turn off nagle */
55−#define DSO_CORK 13 /* Wait for more data! */
56−#define DSO_SERVICES 14 /* NSP Services field */
57−#define DSO_INFO 15 /* NSP Info field */
58−#define DSO_MAX 15 /* Maximum option number */
59−
60−
61−/* LINK States */
62−#define LL_INACTIVE 0
63−#define LL_CONNECTING 1
64−#define LL_RUNNING 2
65−#define LL_DISCONNECTING 3
66−
67−#define ACC_IMMED 0
68−#define ACC_DEFER 1
69−
70−#define SDF_WILD 1 /* Wild card object */
71−#define SDF_PROXY 2 /* Addr eligible for proxy */
72−#define SDF_UICPROXY 4 /* Use uic-based proxy */
73−
74−/* Structures */
75−
76−
77−struct dn_naddr {
78− __le16 a_len;
79− __u8 a_addr[DN_MAXADDL]; /* Two bytes little endian */
80−};
81−
82−struct sockaddr_dn {
83− __u16 sdn_family;
84− __u8 sdn_flags;
85− __u8 sdn_objnum;
86− __le16 sdn_objnamel;
87− __u8 sdn_objname[DN_MAXOBJL];
88− struct dn_naddr sdn_add;
89−};
90−#define sdn_nodeaddrl sdn_add.a_len /* Node address length */
91−#define sdn_nodeaddr sdn_add.a_addr /* Node address */
92−
93−
94−
95−/*
96− * DECnet set/get DSO_CONDATA, DSO_DISDATA (optional data) structure
97− */
98−struct optdata_dn {
99− __le16 opt_status; /* Extended status return */
100−#define opt_sts opt_status
101− __le16 opt_optl; /* Length of user data */
102− __u8 opt_data[16]; /* User data */
103−};
104−
105−struct accessdata_dn {
106− __u8 acc_accl;
107− __u8 acc_acc[DN_MAXACCL];
108− __u8 acc_passl;
109− __u8 acc_pass[DN_MAXACCL];
110− __u8 acc_userl;
111− __u8 acc_user[DN_MAXACCL];
112−};
113−
114−/*
115− * DECnet logical link information structure
116− */
117−struct linkinfo_dn {
118− __u16 idn_segsize; /* Segment size for link */
119− __u8 idn_linkstate; /* Logical link state */
120−};
121−
122−/*
123− * Ethernet address format (for DECnet)
124− */
125−union etheraddress {
126− __u8 dne_addr[ETH_ALEN]; /* Full ethernet address */
127− struct {
128− __u8 dne_hiord[4]; /* DECnet HIORD prefix */
129− __u8 dne_nodeaddr[2]; /* DECnet node address */
130− } dne_remote;
131−};
132−
133−
134−/*
135− * DECnet physical socket address format
136− */
137−struct dn_addr {
138− __le16 dna_family; /* AF_DECnet */
139− union etheraddress dna_netaddr; /* DECnet ethernet address */
140−};
141−
142−#define DECNET_IOCTL_BASE 0x89 /* PROTOPRIVATE range */
143−
144−#define SIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, struct dn_naddr)
145−#define SIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, struct dn_naddr)
146−#define OSIOCSNETADDR _IOW(DECNET_IOCTL_BASE, 0xe0, int)
147−#define OSIOCGNETADDR _IOR(DECNET_IOCTL_BASE, 0xe1, int)
148−
149−#endif /* _LINUX_DN_H */
include/uapi/linux/dw100.h+14−0
@@ -0,0 +1,14 @@
1+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2+/* Copyright 2022 NXP */
3+
4+#ifndef __UAPI_DW100_H__
5+#define __UAPI_DW100_H__
6+
7+#include <linux/v4l2-controls.h>
8+
9+/*
10+ * Check Documentation/userspace-api/media/drivers/dw100.rst for control details.
11+ */
12+#define V4L2_CID_DW100_DEWARPING_16x16_VERTEX_MAP (V4L2_CID_USER_DW100_BASE + 1)
13+
14+#endif
include/uapi/linux/ethtool.h+61−2
@@ -736,6 +736,51 @@ enum ethtool_module_power_mode { · 735 unmodified lines
736736 ETHTOOL_MODULE_POWER_MODE_HIGH,
737737 };
738738
739+/**
740+ * enum ethtool_podl_pse_admin_state - operational state of the PoDL PSE
741+ * functions. IEEE 802.3-2018 30.15.1.1.2 aPoDLPSEAdminState
742+ * @ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN: state of PoDL PSE functions are
743+ * unknown
744+ * @ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED: PoDL PSE functions are disabled
745+ * @ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED: PoDL PSE functions are enabled
746+ */
747+enum ethtool_podl_pse_admin_state {
748+ ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
749+ ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED,
750+ ETHTOOL_PODL_PSE_ADMIN_STATE_ENABLED,
751+};
752+
753+/**
754+ * enum ethtool_podl_pse_pw_d_status - power detection status of the PoDL PSE.
755+ * IEEE 802.3-2018 30.15.1.1.3 aPoDLPSEPowerDetectionStatus:
756+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN: PoDL PSE
757+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED: "The enumeration “disabled” is
758+ * asserted true when the PoDL PSE state diagram variable mr_pse_enable is
759+ * false"
760+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING: "The enumeration “searching” is
761+ * asserted true when either of the PSE state diagram variables
762+ * pi_detecting or pi_classifying is true."
763+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING: "The enumeration “deliveringPower”
764+ * is asserted true when the PoDL PSE state diagram variable pi_powered is
765+ * true."
766+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP: "The enumeration “sleep” is asserted
767+ * true when the PoDL PSE state diagram variable pi_sleeping is true."
768+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE: "The enumeration “idle” is asserted true
769+ * when the logical combination of the PoDL PSE state diagram variables
770+ * pi_prebiased*!pi_sleeping is true."
771+ * @ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR: "The enumeration “error” is asserted
772+ * true when the PoDL PSE state diagram variable overload_held is true."
773+ */
774+enum ethtool_podl_pse_pw_d_status {
775+ ETHTOOL_PODL_PSE_PW_D_STATUS_UNKNOWN = 1,
776+ ETHTOOL_PODL_PSE_PW_D_STATUS_DISABLED,
777+ ETHTOOL_PODL_PSE_PW_D_STATUS_SEARCHING,
778+ ETHTOOL_PODL_PSE_PW_D_STATUS_DELIVERING,
779+ ETHTOOL_PODL_PSE_PW_D_STATUS_SLEEP,
780+ ETHTOOL_PODL_PSE_PW_D_STATUS_IDLE,
781+ ETHTOOL_PODL_PSE_PW_D_STATUS_ERROR,
782+};
783+
739784 /**
740785 * struct ethtool_gstrings - string set for data tagging
741786 * @cmd: Command number = %ETHTOOL_GSTRINGS
@@ -1840,6 +1885,20 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 1098 unmodified lines
18401885 #define MASTER_SLAVE_STATE_SLAVE 3
18411886 #define MASTER_SLAVE_STATE_ERR 4
18421887
1888+/* These are used to throttle the rate of data on the phy interface when the
1889+ * native speed of the interface is higher than the link speed. These should
1890+ * not be used for phy interfaces which natively support multiple speeds (e.g.
1891+ * MII or SGMII).
1892+ */
1893+/* No rate matching performed. */
1894+#define RATE_MATCH_NONE 0
1895+/* The phy sends pause frames to throttle the MAC. */
1896+#define RATE_MATCH_PAUSE 1
1897+/* The phy asserts CRS to prevent the MAC from transmitting. */
1898+#define RATE_MATCH_CRS 2
1899+/* The MAC is programmed with a sufficiently-large IPG. */
1900+#define RATE_MATCH_OPEN_LOOP 3
1901+
18431902 /* Which connector port. */
18441903 #define PORT_TP 0x00
18451904 #define PORT_AUI 0x01
@@ -2033,8 +2092,8 @@ enum ethtool_reset_flags { · 187 unmodified lines
20332092 * reported consistently by PHYLIB. Read-only.
20342093 * @master_slave_cfg: Master/slave port mode.
20352094 * @master_slave_state: Master/slave port state.
2095+ * @rate_matching: Rate adaptation performed by the PHY
20362096 * @reserved: Reserved for future use; see the note on reserved space.
2037− * @reserved1: Reserved for future use; see the note on reserved space.
20382097 * @link_mode_masks: Variable length bitmaps.
20392098 *
20402099 * If autonegotiation is disabled, the speed and @duplex represent the
@@ -2085,7 +2144,7 @@ struct ethtool_link_settings { · 44 unmodified lines
20852144 __u8 transceiver;
20862145 __u8 master_slave_cfg;
20872146 __u8 master_slave_state;
2088− __u8 reserved1[1];
2147+ __u8 rate_matching;
20892148 __u32 reserved[7];
20902149 __u32 link_mode_masks[];
20912150 /* layout of link_mode_masks fields:
include/uapi/linux/ethtool_netlink.h+17−0
@@ -49,6 +49,8 @@ enum { · 48 unmodified lines
4949 ETHTOOL_MSG_PHC_VCLOCKS_GET,
5050 ETHTOOL_MSG_MODULE_GET,
5151 ETHTOOL_MSG_MODULE_SET,
52+ ETHTOOL_MSG_PSE_GET,
53+ ETHTOOL_MSG_PSE_SET,
5254
5355 /* add new constants above here */
5456 __ETHTOOL_MSG_USER_CNT,
@@ -94,6 +96,7 @@ enum { · 39 unmodified lines
9496 ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
9597 ETHTOOL_MSG_MODULE_GET_REPLY,
9698 ETHTOOL_MSG_MODULE_NTF,
99+ ETHTOOL_MSG_PSE_GET_REPLY,
97100
98101 /* add new constants above here */
99102 __ETHTOOL_MSG_KERNEL_CNT,
@@ -242,6 +245,7 @@ enum { · 142 unmodified lines
242245 ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG, /* u8 */
243246 ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE, /* u8 */
244247 ETHTOOL_A_LINKMODES_LANES, /* u32 */
248+ ETHTOOL_A_LINKMODES_RATE_MATCHING, /* u8 */
245249
246250 /* add new constants above here */
247251 __ETHTOOL_A_LINKMODES_CNT,
@@ -862,6 +866,19 @@ enum { · 614 unmodified lines
862866 ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
863867 };
864868
869+/* Power Sourcing Equipment */
870+enum {
871+ ETHTOOL_A_PSE_UNSPEC,
872+ ETHTOOL_A_PSE_HEADER, /* nest - _A_HEADER_* */
873+ ETHTOOL_A_PODL_PSE_ADMIN_STATE, /* u32 */
874+ ETHTOOL_A_PODL_PSE_ADMIN_CONTROL, /* u32 */
875+ ETHTOOL_A_PODL_PSE_PW_D_STATUS, /* u32 */
876+
877+ /* add new constants above here */
878+ __ETHTOOL_A_PSE_CNT,
879+ ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
880+};
881+
865882 /* generic netlink info */
866883 #define ETHTOOL_GENL_NAME "ethtool"
867884 #define ETHTOOL_GENL_VERSION 1
include/uapi/linux/fuse.h+5−1
@@ -194,6 +194,9 @@ · 193 unmodified lines
194194 * - add FUSE_SECURITY_CTX init flag
195195 * - add security context to create, mkdir, symlink, and mknod requests
196196 * - add FUSE_HAS_INODE_DAX, FUSE_ATTR_DAX
197+ *
198+ * 7.37
199+ * - add FUSE_TMPFILE
197200 */
198201
199202 #ifndef _LINUX_FUSE_H
@@ -229,7 +232,7 @@ · 29 unmodified lines
229232 #define FUSE_KERNEL_VERSION 7
230233
231234 /** Minor version number of this interface */
232−#define FUSE_KERNEL_MINOR_VERSION 36
235+#define FUSE_KERNEL_MINOR_VERSION 37
233236
234237 /** The node ID of the root inode */
235238 #define FUSE_ROOT_ID 1
@@ -537,6 +540,7 @@ enum fuse_opcode { · 301 unmodified lines
537540 FUSE_SETUPMAPPING = 48,
538541 FUSE_REMOVEMAPPING = 49,
539542 FUSE_SYNCFS = 50,
543+ FUSE_TMPFILE = 51,
540544
541545 /* CUSE specific operations */
542546 CUSE_INIT = 4096,
include/uapi/linux/hid.h+20−6
@@ -42,16 +42,30 @@ · 41 unmodified lines
4242 #define USB_INTERFACE_PROTOCOL_KEYBOARD 1
4343 #define USB_INTERFACE_PROTOCOL_MOUSE 2
4444
45+/*
46+ * HID report types --- Ouch! HID spec says 1 2 3!
47+ */
48+
49+enum hid_report_type {
50+ HID_INPUT_REPORT = 0,
51+ HID_OUTPUT_REPORT = 1,
52+ HID_FEATURE_REPORT = 2,
53+
54+ HID_REPORT_TYPES,
55+};
56+
4557 /*
4658 * HID class requests
4759 */
4860
49−#define HID_REQ_GET_REPORT 0x01
50−#define HID_REQ_GET_IDLE 0x02
51−#define HID_REQ_GET_PROTOCOL 0x03
52−#define HID_REQ_SET_REPORT 0x09
53−#define HID_REQ_SET_IDLE 0x0A
54−#define HID_REQ_SET_PROTOCOL 0x0B
61+enum hid_class_request {
62+ HID_REQ_GET_REPORT = 0x01,
63+ HID_REQ_GET_IDLE = 0x02,
64+ HID_REQ_GET_PROTOCOL = 0x03,
65+ HID_REQ_SET_REPORT = 0x09,
66+ HID_REQ_SET_IDLE = 0x0A,
67+ HID_REQ_SET_PROTOCOL = 0x0B,
68+};
5569
5670 /*
5771 * HID class descriptor types
include/uapi/linux/if_ether.h+1−0
@@ -138,6 +138,7 @@ · 137 unmodified lines
138138 #define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
139139 #define ETH_P_CAN 0x000C /* CAN: Controller Area Network */
140140 #define ETH_P_CANFD 0x000D /* CANFD: CAN flexible data rate*/
141+#define ETH_P_CANXL 0x000E /* CANXL: eXtended frame Length */
141142 #define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
142143 #define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
143144 #define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */
include/uapi/linux/if_link.h+12−0
@@ -370,6 +370,7 @@ enum { · 369 unmodified lines
370370 IFLA_GRO_MAX_SIZE,
371371 IFLA_TSO_MAX_SIZE,
372372 IFLA_TSO_MAX_SEGS,
373+ IFLA_ALLMULTI, /* Allmulti count: > 0 means acts ALLMULTI */
373374
374375 __IFLA_MAX
375376 };
@@ -694,6 +695,7 @@ enum { · 318 unmodified lines
694695 IFLA_XFRM_UNSPEC,
695696 IFLA_XFRM_LINK,
696697 IFLA_XFRM_IF_ID,
698+ IFLA_XFRM_COLLECT_METADATA,
697699 __IFLA_XFRM_MAX
698700 };
699701
@@ -1374,4 +1376,14 @@ enum { · 674 unmodified lines
13741376
13751377 #define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
13761378
1379+/* DSA section */
1380+
1381+enum {
1382+ IFLA_DSA_UNSPEC,
1383+ IFLA_DSA_MASTER,
1384+ __IFLA_DSA_MAX,
1385+};
1386+
1387+#define IFLA_DSA_MAX (__IFLA_DSA_MAX - 1)
1388+
13771389 #endif /* _UAPI_LINUX_IF_LINK_H */
include/uapi/linux/if_macsec.h+2−0
@@ -22,6 +22,8 @@ · 21 unmodified lines
2222
2323 #define MACSEC_KEYID_LEN 16
2424
25+#define MACSEC_SALT_LEN 12
26+
2527 /* cipher IDs as per IEEE802.1AE-2018 (Table 14-1) */
2628 #define MACSEC_CIPHER_ID_GCM_AES_128 0x0080C20001000001ULL
2729 #define MACSEC_CIPHER_ID_GCM_AES_256 0x0080C20001000002ULL
include/uapi/linux/if_tun.h+2−0
@@ -67,6 +67,8 @@ · 66 unmodified lines
6767 #define IFF_TAP 0x0002
6868 #define IFF_NAPI 0x0010
6969 #define IFF_NAPI_FRAGS 0x0020
70+/* Used in TUNSETIFF to bring up tun/tap without carrier */
71+#define IFF_NO_CARRIER 0x0040
7072 #define IFF_NO_PI 0x1000
7173 /* This flag has no real effect */
7274 #define IFF_ONE_QUEUE 0x2000
include/uapi/linux/iio/types.h+9−1
@@ -95,6 +95,12 @@ enum iio_modifier { · 94 unmodified lines
9595 IIO_MOD_ETHANOL,
9696 IIO_MOD_H2,
9797 IIO_MOD_O2,
98+ IIO_MOD_LINEAR_X,
99+ IIO_MOD_LINEAR_Y,
100+ IIO_MOD_LINEAR_Z,
101+ IIO_MOD_PITCH,
102+ IIO_MOD_YAW,
103+ IIO_MOD_ROLL,
98104 };
99105
100106 enum iio_event_type {
@@ -105,6 +111,7 @@ enum iio_event_type { · 4 unmodified lines
105111 IIO_EV_TYPE_MAG_ADAPTIVE,
106112 IIO_EV_TYPE_CHANGE,
107113 IIO_EV_TYPE_MAG_REFERENCED,
114+ IIO_EV_TYPE_GESTURE,
108115 };
109116
110117 enum iio_event_direction {
@@ -112,7 +119,8 @@ enum iio_event_direction { · 1 unmodified line
112119 IIO_EV_DIR_RISING,
113120 IIO_EV_DIR_FALLING,
114121 IIO_EV_DIR_NONE,
122+ IIO_EV_DIR_SINGLETAP,
123+ IIO_EV_DIR_DOUBLETAP,
115124 };
116125
117126 #endif /* _UAPI_IIO_TYPES_H_ */
118−
include/uapi/linux/in.h+8−14
@@ -68,6 +68,8 @@ enum { · 67 unmodified lines
6868 #define IPPROTO_PIM IPPROTO_PIM
6969 IPPROTO_COMP = 108, /* Compression Header Protocol */
7070 #define IPPROTO_COMP IPPROTO_COMP
71+ IPPROTO_L2TP = 115, /* Layer 2 Tunnelling Protocol */
72+#define IPPROTO_L2TP IPPROTO_L2TP
7173 IPPROTO_SCTP = 132, /* Stream Control Transport Protocol */
7274 #define IPPROTO_SCTP IPPROTO_SCTP
7375 IPPROTO_UDPLITE = 136, /* UDP-Lite (RFC 3828) */
@@ -188,21 +190,13 @@ struct ip_mreq_source { · 114 unmodified lines
188190 };
189191
190192 struct ip_msfilter {
193+ __be32 imsf_multiaddr;
194+ __be32 imsf_interface;
195+ __u32 imsf_fmode;
196+ __u32 imsf_numsrc;
191197 union {
192− struct {
193− __be32 imsf_multiaddr_aux;
194− __be32 imsf_interface_aux;
195− __u32 imsf_fmode_aux;
196− __u32 imsf_numsrc_aux;
197− __be32 imsf_slist[1];
198− };
199− struct {
200− __be32 imsf_multiaddr;
201− __be32 imsf_interface;
202− __u32 imsf_fmode;
203− __u32 imsf_numsrc;
204− __be32 imsf_slist_flex[];
205− };
198+ __be32 imsf_slist[1];
199+ __DECLARE_FLEX_ARRAY(__be32, imsf_slist_flex);
206200 };
207201 };
208202
include/uapi/linux/input-event-codes.h+1−0
@@ -862,6 +862,7 @@ · 861 unmodified lines
862862 #define ABS_TOOL_WIDTH 0x1c
863863
864864 #define ABS_VOLUME 0x20
865+#define ABS_PROFILE 0x21
865866
866867 #define ABS_MISC 0x28
867868
include/uapi/linux/io_uring.h+31−22
@@ -12,6 +12,10 @@ · 11 unmodified lines
1212 #include <linux/types.h>
1313 #include <linux/time_types.h>
1414
15+#ifdef __cplusplus
16+extern "C" {
17+#endif
18+
1519 /*
1620 * IO submission data structure (Submission Queue Entry)
1721 */
@@ -52,6 +56,7 @@ struct io_uring_sqe { · 34 unmodified lines
5256 __u32 hardlink_flags;
5357 __u32 xattr_flags;
5458 __u32 msg_ring_flags;
59+ __u32 uring_cmd_flags;
5560 };
5661 __u64 user_data; /* data to be passed back at completion time */
5762 /* pack this to avoid bogus arm OABI complaints */
@@ -67,8 +72,8 @@ struct io_uring_sqe { · 9 unmodified lines
6772 __s32 splice_fd_in;
6873 __u32 file_index;
6974 struct {
70− __u16 notification_idx;
7175 __u16 addr_len;
76+ __u16 __pad3[1];
7277 };
7378 };
7479 union {
@@ -153,6 +158,13 @@ enum { · 78 unmodified lines
153158 */
154159 #define IORING_SETUP_SINGLE_ISSUER (1U << 12)
155160
161+/*
162+ * Defer running task work to get events.
163+ * Rather than running bits of task work whenever the task transitions
164+ * try to do it just before it is needed.
165+ */
166+#define IORING_SETUP_DEFER_TASKRUN (1U << 13)
167+
156168 enum io_uring_op {
157169 IORING_OP_NOP,
158170 IORING_OP_READV,
@@ -174,8 +186,7 @@ enum io_uring_op { · 15 unmodified lines
174186 IORING_OP_FALLOCATE,
175187 IORING_OP_OPENAT,
176188 IORING_OP_CLOSE,
177− IORING_OP_RSRC_UPDATE,
178− IORING_OP_FILES_UPDATE = IORING_OP_RSRC_UPDATE,
189+ IORING_OP_FILES_UPDATE,
179190 IORING_OP_STATX,
180191 IORING_OP_READ,
181192 IORING_OP_WRITE,
@@ -202,12 +213,21 @@ enum io_uring_op { · 20 unmodified lines
202213 IORING_OP_GETXATTR,
203214 IORING_OP_SOCKET,
204215 IORING_OP_URING_CMD,
205− IORING_OP_SENDZC_NOTIF,
216+ IORING_OP_SEND_ZC,
217+ IORING_OP_SENDMSG_ZC,
206218
207219 /* this goes last, obviously */
208220 IORING_OP_LAST,
209221 };
210222
223+/*
224+ * sqe->uring_cmd_flags
225+ * IORING_URING_CMD_FIXED use registered buffer; pass thig flag
226+ * along with setting sqe->buf_index.
227+ */
228+#define IORING_URING_CMD_FIXED (1U << 0)
229+
230+
211231 /*
212232 * sqe->fsync_flags
213233 */
@@ -224,7 +244,6 @@ enum io_uring_op { · 10 unmodified lines
224244 #define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
225245 #define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
226246 #define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
227−
228247 /*
229248 * sqe->splice_flags
230249 * extends splice(2) flags
@@ -277,29 +296,16 @@ enum io_uring_op { · 46 unmodified lines
277296 *
278297 * IORING_RECVSEND_FIXED_BUF Use registered buffers, the index is stored in
279298 * the buf_index field.
280− *
281− * IORING_RECVSEND_NOTIF_FLUSH Flush a notification after a successful
282− * successful. Only for zerocopy sends.
283299 */
284300 #define IORING_RECVSEND_POLL_FIRST (1U << 0)
285301 #define IORING_RECV_MULTISHOT (1U << 1)
286302 #define IORING_RECVSEND_FIXED_BUF (1U << 2)
287−#define IORING_RECVSEND_NOTIF_FLUSH (1U << 3)
288303
289304 /*
290305 * accept flags stored in sqe->ioprio
291306 */
292307 #define IORING_ACCEPT_MULTISHOT (1U << 0)
293308
294−
295−/*
296− * IORING_OP_RSRC_UPDATE flags
297− */
298−enum {
299− IORING_RSRC_UPDATE_FILES,
300− IORING_RSRC_UPDATE_NOTIF,
301−};
302−
303309 /*
304310 * IORING_OP_MSG_RING command types, stored in sqe->addr
305311 */
@@ -337,10 +343,13 @@ struct io_uring_cqe { · 31 unmodified lines
337343 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
338344 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries
339345 * IORING_CQE_F_SOCK_NONEMPTY If set, more data to read after socket recv
346+ * IORING_CQE_F_NOTIF Set for notification CQEs. Can be used to distinct
347+ * them from sends.
340348 */
341349 #define IORING_CQE_F_BUFFER (1U << 0)
342350 #define IORING_CQE_F_MORE (1U << 1)
343351 #define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
352+#define IORING_CQE_F_NOTIF (1U << 3)
344353
345354 enum {
346355 IORING_CQE_BUFFER_SHIFT = 16,
@@ -481,10 +490,6 @@ enum { · 134 unmodified lines
481490 /* register a range of fixed file slots for automatic slot allocation */
482491 IORING_REGISTER_FILE_ALLOC_RANGE = 25,
483492
484− /* zerocopy notification API */
485− IORING_REGISTER_NOTIFIERS = 26,
486− IORING_UNREGISTER_NOTIFIERS = 27,
487−
488493 /* this goes last */
489494 IORING_REGISTER_LAST
490495 };
@@ -661,4 +666,8 @@ struct io_uring_recvmsg_out { · 170 unmodified lines
661666 __u32 flags;
662667 };
663668
669+#ifdef __cplusplus
670+}
671+#endif
672+
664673 #endif
include/uapi/linux/kvm.h+1−0
@@ -1177,6 +1177,7 @@ struct kvm_ppc_resize_hpt { · 1176 unmodified lines
11771177 #define KVM_CAP_VM_DISABLE_NX_HUGE_PAGES 220
11781178 #define KVM_CAP_S390_ZPCI_OP 221
11791179 #define KVM_CAP_S390_CPU_TOPOLOGY 222
1180+#define KVM_CAP_DIRTY_LOG_RING_ACQ_REL 223
11801181
11811182 #ifdef KVM_CAP_IRQ_ROUTING
11821183
include/uapi/linux/l2tp.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313 #include <linux/in.h>
1414 #include <linux/in6.h>
1515
16−#define IPPROTO_L2TP 115
17−
1816 /**
1917 * struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
2018 * @l2tp_family: address family number AF_L2TPIP.
include/uapi/linux/landlock.h+5−5
@@ -26,7 +26,7 @@ struct landlock_ruleset_attr { · 25 unmodified lines
2626 * Landlock filesystem access rights that are not part of
2727 * handled_access_fs are allowed. This is needed for backward
2828 * compatibility reasons. One exception is the
29− * LANDLOCK_ACCESS_FS_REFER access right, which is always implicitly
29+ * %LANDLOCK_ACCESS_FS_REFER access right, which is always implicitly
3030 * handled, but must still be explicitly handled to add new rules with
3131 * this access right.
3232 */
@@ -128,11 +128,11 @@ struct landlock_path_beneath_attr { · 95 unmodified lines
128128 * hierarchy must also always have the same or a superset of restrictions of
129129 * the source hierarchy. If it is not the case, or if the domain doesn't
130130 * handle this access right, such actions are denied by default with errno
131− * set to EXDEV. Linking also requires a LANDLOCK_ACCESS_FS_MAKE_* access
132− * right on the destination directory, and renaming also requires a
133− * LANDLOCK_ACCESS_FS_REMOVE_* access right on the source's (file or
131+ * set to ``EXDEV``. Linking also requires a ``LANDLOCK_ACCESS_FS_MAKE_*``
132+ * access right on the destination directory, and renaming also requires a
133+ * ``LANDLOCK_ACCESS_FS_REMOVE_*`` access right on the source's (file or
134134 * directory) parent. Otherwise, such actions are denied with errno set to
135− * EACCES. The EACCES errno prevails over EXDEV to let user space
135+ * ``EACCES``. The ``EACCES`` errno prevails over ``EXDEV`` to let user space
136136 * efficiently deal with an unrecoverable error.
137137 *
138138 * .. warning::
include/uapi/linux/lwtunnel.h+10−0
@@ -15,6 +15,7 @@ enum lwtunnel_encap_types { · 14 unmodified lines
1515 LWTUNNEL_ENCAP_SEG6_LOCAL,
1616 LWTUNNEL_ENCAP_RPL,
1717 LWTUNNEL_ENCAP_IOAM6,
18+ LWTUNNEL_ENCAP_XFRM,
1819 __LWTUNNEL_ENCAP_MAX,
1920 };
2021
@@ -111,4 +112,13 @@ enum { · 90 unmodified lines
111112
112113 #define LWT_BPF_MAX_HEADROOM 256
113114
115+enum {
116+ LWT_XFRM_UNSPEC,
117+ LWT_XFRM_IF_ID,
118+ LWT_XFRM_LINK,
119+ __LWT_XFRM_MAX,
120+};
121+
122+#define LWT_XFRM_MAX (__LWT_XFRM_MAX - 1)
123+
114124 #endif /* _UAPI_LWTUNNEL_H_ */
include/uapi/linux/netfilter.h+2−0
@@ -63,7 +63,9 @@ enum { · 62 unmodified lines
6363 NFPROTO_NETDEV = 5,
6464 NFPROTO_BRIDGE = 7,
6565 NFPROTO_IPV6 = 10,
66+#ifndef __KERNEL__ /* no longer supported by kernel */
6667 NFPROTO_DECNET = 12,
68+#endif
6769 NFPROTO_NUMPROTO,
6870 };
6971
include/uapi/linux/netfilter/ipset/ip_set.h+0−4
@@ -3,10 +3,6 @@ · 2 unmodified lines
33 * Patrick Schaaf <bof@bof.de>
44 * Martin Josefsson <gandalf@wlug.westbo.se>
55 * Copyright (C) 2003-2011 Jozsef Kadlecsik <kadlec@netfilter.org>
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License version 2 as
9− * published by the Free Software Foundation.
106 */
117 #ifndef _UAPI_IP_SET_H
128 #define _UAPI_IP_SET_H
include/uapi/linux/netfilter/xt_AUDIT.h+0−4
@@ -4,10 +4,6 @@ · 3 unmodified lines
44 *
55 * (C) 2010-2011 Thomas Graf <tgraf@redhat.com>
66 * (C) 2010-2011 Red Hat, Inc.
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License version 2 as
10− * published by the Free Software Foundation.
117 */
128
139 #ifndef _XT_AUDIT_TARGET_H
include/uapi/linux/netfilter/xt_connmark.h+4−9
@@ -1,18 +1,13 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2+/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
3+ * by Henrik Nordstrom <hno@marasystems.com>
4+ */
5+
26 #ifndef _XT_CONNMARK_H
37 #define _XT_CONNMARK_H
48
59 #include <linux/types.h>
610
7−/* Copyright (C) 2002,2004 MARA Systems AB <https://www.marasystems.com>
8− * by Henrik Nordstrom <hno@marasystems.com>
9− *
10− * This program is free software; you can redistribute it and/or modify
11− * it under the terms of the GNU General Public License as published by
12− * the Free Software Foundation; either version 2 of the License, or
13− * (at your option) any later version.
14− */
15−
1611 enum {
1712 XT_CONNMARK_SET = 0,
1813 XT_CONNMARK_SAVE,
include/uapi/linux/netfilter/xt_osf.h+0−14
@@ -1,20 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * Copyright (c) 2003+ Evgeniy Polyakov <johnpol@2ka.mxt.ru>
4− *
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License as published by
8− * the Free Software Foundation; either version 2 of the License, or
9− * (at your option) any later version.
10− *
11− * This program is distributed in the hope that it will be useful,
12− * but WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14− * GNU General Public License for more details.
15− *
16− * You should have received a copy of the GNU General Public License
17− * along with this program; if not, see <http://www.gnu.org/licenses/>.
184 */
195
206 #ifndef _XT_OSF_H
include/uapi/linux/netfilter_decnet.h+0−72
@@ -1,72 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef __LINUX_DECNET_NETFILTER_H
3−#define __LINUX_DECNET_NETFILTER_H
4−
5−/* DECnet-specific defines for netfilter.
6− * This file (C) Steve Whitehouse 1999 derived from the
7− * ipv4 netfilter header file which is
8− * (C)1998 Rusty Russell -- This code is GPL.
9− */
10−
11−#include <linux/netfilter.h>
12−
13−/* only for userspace compatibility */
14−#ifndef __KERNEL__
15−
16−#include <limits.h> /* for INT_MIN, INT_MAX */
17−
18−/* kernel define is in netfilter_defs.h */
19−#define NF_DN_NUMHOOKS 7
20−#endif /* ! __KERNEL__ */
21−
22−/* DECnet Hooks */
23−/* After promisc drops, checksum checks. */
24−#define NF_DN_PRE_ROUTING 0
25−/* If the packet is destined for this box. */
26−#define NF_DN_LOCAL_IN 1
27−/* If the packet is destined for another interface. */
28−#define NF_DN_FORWARD 2
29−/* Packets coming from a local process. */
30−#define NF_DN_LOCAL_OUT 3
31−/* Packets about to hit the wire. */
32−#define NF_DN_POST_ROUTING 4
33−/* Input Hello Packets */
34−#define NF_DN_HELLO 5
35−/* Input Routing Packets */
36−#define NF_DN_ROUTE 6
37−
38−enum nf_dn_hook_priorities {
39− NF_DN_PRI_FIRST = INT_MIN,
40− NF_DN_PRI_CONNTRACK = -200,
41− NF_DN_PRI_MANGLE = -150,
42− NF_DN_PRI_NAT_DST = -100,
43− NF_DN_PRI_FILTER = 0,
44− NF_DN_PRI_NAT_SRC = 100,
45− NF_DN_PRI_DNRTMSG = 200,
46− NF_DN_PRI_LAST = INT_MAX,
47−};
48−
49−struct nf_dn_rtmsg {
50− int nfdn_ifindex;
51−};
52−
53−#define NFDN_RTMSG(r) ((unsigned char *)(r) + NLMSG_ALIGN(sizeof(struct nf_dn_rtmsg)))
54−
55−#ifndef __KERNEL__
56−/* backwards compatibility for userspace */
57−#define DNRMG_L1_GROUP 0x01
58−#define DNRMG_L2_GROUP 0x02
59−#endif
60−
61−enum {
62− DNRNG_NLGRP_NONE,
63−#define DNRNG_NLGRP_NONE DNRNG_NLGRP_NONE
64− DNRNG_NLGRP_L1,
65−#define DNRNG_NLGRP_L1 DNRNG_NLGRP_L1
66− DNRNG_NLGRP_L2,
67−#define DNRNG_NLGRP_L2 DNRNG_NLGRP_L2
68− __DNRNG_NLGRP_MAX
69−};
70−#define DNRNG_NLGRP_MAX (__DNRNG_NLGRP_MAX - 1)
71−
72−#endif /*__LINUX_DECNET_NETFILTER_H*/
include/uapi/linux/netlink.h+24−7
@@ -20,7 +20,7 @@ · 19 unmodified lines
2020 #define NETLINK_CONNECTOR 11
2121 #define NETLINK_NETFILTER 12 /* netfilter subsystem */
2222 #define NETLINK_IP6_FW 13
23−#define NETLINK_DNRTMSG 14 /* DECnet routing messages */
23+#define NETLINK_DNRTMSG 14 /* DECnet routing messages (obsolete) */
2424 #define NETLINK_KOBJECT_UEVENT 15 /* Kernel messages to userspace */
2525 #define NETLINK_GENERIC 16
2626 /* leave room for NETLINK_DM (DM Events) */
@@ -41,12 +41,20 @@ struct sockaddr_nl { · 14 unmodified lines
4141 __u32 nl_groups; /* multicast groups mask */
4242 };
4343
44+/**
45+ * struct nlmsghdr - fixed format metadata header of Netlink messages
46+ * @nlmsg_len: Length of message including header
47+ * @nlmsg_type: Message content type
48+ * @nlmsg_flags: Additional flags
49+ * @nlmsg_seq: Sequence number
50+ * @nlmsg_pid: Sending process port ID
51+ */
4452 struct nlmsghdr {
45− __u32 nlmsg_len; /* Length of message including header */
46− __u16 nlmsg_type; /* Message content */
47− __u16 nlmsg_flags; /* Additional flags */
48− __u32 nlmsg_seq; /* Sequence number */
49− __u32 nlmsg_pid; /* Sending process port ID */
53+ __u32 nlmsg_len;
54+ __u16 nlmsg_type;
55+ __u16 nlmsg_flags;
56+ __u32 nlmsg_seq;
57+ __u32 nlmsg_pid;
5058 };
5159
5260 /* Flags values */
@@ -54,7 +62,7 @@ struct nlmsghdr { · 1 unmodified line
5462 #define NLM_F_REQUEST 0x01 /* It is request message. */
5563 #define NLM_F_MULTI 0x02 /* Multipart message, terminated by NLMSG_DONE */
5664 #define NLM_F_ACK 0x04 /* Reply with ack, with zero or error code */
57−#define NLM_F_ECHO 0x08 /* Echo this request */
65+#define NLM_F_ECHO 0x08 /* Receive resulting notifications */
5866 #define NLM_F_DUMP_INTR 0x10 /* Dump was inconsistent due to sequence change */
5967 #define NLM_F_DUMP_FILTERED 0x20 /* Dump was filtered as requested */
6068
@@ -132,6 +140,10 @@ struct nlmsgerr { · 71 unmodified lines
132140 * be used - in the success case - to identify a created
133141 * object or operation or similar (binary)
134142 * @NLMSGERR_ATTR_POLICY: policy for a rejected attribute
143+ * @NLMSGERR_ATTR_MISS_TYPE: type of a missing required attribute,
144+ * %NLMSGERR_ATTR_MISS_NEST will not be present if the attribute was
145+ * missing at the message level
146+ * @NLMSGERR_ATTR_MISS_NEST: offset of the nest where attribute was missing
135147 * @__NLMSGERR_ATTR_MAX: number of attributes
136148 * @NLMSGERR_ATTR_MAX: highest attribute number
137149 */
@@ -141,6 +153,8 @@ enum nlmsgerr_attrs { · 3 unmodified lines
141153 NLMSGERR_ATTR_OFFS,
142154 NLMSGERR_ATTR_COOKIE,
143155 NLMSGERR_ATTR_POLICY,
156+ NLMSGERR_ATTR_MISS_TYPE,
157+ NLMSGERR_ATTR_MISS_NEST,
144158
145159 __NLMSGERR_ATTR_MAX,
146160 NLMSGERR_ATTR_MAX = __NLMSGERR_ATTR_MAX - 1
@@ -337,6 +351,9 @@ enum netlink_attribute_type { · 190 unmodified lines
337351 * bitfield32 type (U32)
338352 * @NL_POLICY_TYPE_ATTR_MASK: mask of valid bits for unsigned integers (U64)
339353 * @NL_POLICY_TYPE_ATTR_PAD: pad attribute for 64-bit alignment
354+ *
355+ * @__NL_POLICY_TYPE_ATTR_MAX: number of attributes
356+ * @NL_POLICY_TYPE_ATTR_MAX: highest attribute number
340357 */
341358 enum netlink_policy_type_attr {
342359 NL_POLICY_TYPE_ATTR_UNSPEC,
include/uapi/linux/nl80211.h+22−3
@@ -377,14 +377,22 @@ · 376 unmodified lines
377377 * the non-transmitting interfaces are deleted as well.
378378 *
379379 * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
380− * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
380+ * by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC
381+ * represents peer's MLD address for MLO pairwise key. For MLO group key,
382+ * the link is identified by %NL80211_ATTR_MLO_LINK_ID.
381383 * @NL80211_CMD_SET_KEY: Set key attributes %NL80211_ATTR_KEY_DEFAULT,
382384 * %NL80211_ATTR_KEY_DEFAULT_MGMT, or %NL80211_ATTR_KEY_THRESHOLD.
385+ * For MLO connection, the link to set default key is identified by
386+ * %NL80211_ATTR_MLO_LINK_ID.
383387 * @NL80211_CMD_NEW_KEY: add a key with given %NL80211_ATTR_KEY_DATA,
384388 * %NL80211_ATTR_KEY_IDX, %NL80211_ATTR_MAC, %NL80211_ATTR_KEY_CIPHER,
385− * and %NL80211_ATTR_KEY_SEQ attributes.
389+ * and %NL80211_ATTR_KEY_SEQ attributes. %NL80211_ATTR_MAC represents
390+ * peer's MLD address for MLO pairwise key. The link to add MLO
391+ * group key is identified by %NL80211_ATTR_MLO_LINK_ID.
386392 * @NL80211_CMD_DEL_KEY: delete a key identified by %NL80211_ATTR_KEY_IDX
387− * or %NL80211_ATTR_MAC.
393+ * or %NL80211_ATTR_MAC. %NL80211_ATTR_MAC represents peer's MLD address
394+ * for MLO pairwise key. The link to delete group key is identified by
395+ * %NL80211_ATTR_MLO_LINK_ID.
388396 *
389397 * @NL80211_CMD_GET_BEACON: (not used)
390398 * @NL80211_CMD_SET_BEACON: change the beacon on an access point interface
@@ -4951,6 +4959,7 @@ enum nl80211_bss_scan_width { · 4560 unmodified lines
49514959 * using the nesting index as the antenna number.
49524960 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
49534961 * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
4962+ * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
49544963 * @__NL80211_BSS_AFTER_LAST: internal
49554964 * @NL80211_BSS_MAX: highest BSS attribute
49564965 */
@@ -4977,6 +4986,7 @@ enum nl80211_bss { · 20 unmodified lines
49774986 NL80211_BSS_CHAIN_SIGNAL,
49784987 NL80211_BSS_FREQUENCY_OFFSET,
49794988 NL80211_BSS_MLO_LINK_ID,
4989+ NL80211_BSS_MLD_ADDR,
49804990
49814991 /* keep last */
49824992 __NL80211_BSS_AFTER_LAST,
@@ -6273,6 +6283,14 @@ enum nl80211_feature_flags { · 1290 unmodified lines
62736283 * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
62746284 * detection.
62756285 *
6286+ * @NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE: Device can perform a MAC address
6287+ * change without having to bring the underlying network device down
6288+ * first. For example, in station mode this can be used to vary the
6289+ * origin MAC address prior to a connection to a new AP for privacy
6290+ * or other reasons. Note that certain driver specific restrictions
6291+ * might apply, e.g. no scans in progress, no offchannel operations
6292+ * in progress, and no active connections.
6293+ *
62766294 * @NUM_NL80211_EXT_FEATURES: number of extended features.
62776295 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
62786296 */
@@ -6340,6 +6358,7 @@ enum nl80211_ext_feature_index { · 61 unmodified lines
63406358 NL80211_EXT_FEATURE_BSS_COLOR,
63416359 NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
63426360 NL80211_EXT_FEATURE_RADAR_BACKGROUND,
6361+ NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE,
63436362
63446363 /* add new features before the definition below */
63456364 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/openvswitch.h+3−0
@@ -76,6 +76,8 @@ enum ovs_datapath_cmd { · 75 unmodified lines
7676 * datapath. Always present in notifications.
7777 * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
7878 * datapath. Always present in notifications.
79+ * @OVS_DP_ATTR_IFINDEX: Interface index for a new datapath netdev. Only
80+ * valid for %OVS_DP_CMD_NEW requests.
7981 *
8082 * These attributes follow the &struct ovs_header within the Generic Netlink
8183 * payload for %OVS_DP_* commands.
@@ -92,6 +94,7 @@ enum ovs_datapath_attr { · 10 unmodified lines
9294 OVS_DP_ATTR_PER_CPU_PIDS, /* Netlink PIDS to receive upcalls in
9395 * per-cpu dispatch mode
9496 */
97+ OVS_DP_ATTR_IFINDEX,
9598 __OVS_DP_ATTR_MAX
9699 };
97100
include/uapi/linux/perf_event.h+52−5
@@ -164,8 +164,6 @@ enum perf_event_sample_format { · 163 unmodified lines
164164 PERF_SAMPLE_WEIGHT_STRUCT = 1U << 24,
165165
166166 PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */
167−
168− __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
169167 };
170168
171169 #define PERF_SAMPLE_WEIGHT_TYPE (PERF_SAMPLE_WEIGHT | PERF_SAMPLE_WEIGHT_STRUCT)
@@ -204,6 +202,8 @@ enum perf_branch_sample_type_shift { · 32 unmodified lines
204202
205203 PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 17, /* save low level index of raw branch records */
206204
205+ PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, /* save privilege mode */
206+
207207 PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
208208 };
209209
@@ -233,6 +233,8 @@ enum perf_branch_sample_type { · 23 unmodified lines
233233
234234 PERF_SAMPLE_BRANCH_HW_INDEX = 1U << PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT,
235235
236+ PERF_SAMPLE_BRANCH_PRIV_SAVE = 1U << PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT,
237+
236238 PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
237239 };
238240
@@ -253,9 +255,48 @@ enum { · 14 unmodified lines
253255 PERF_BR_COND_RET = 10, /* conditional function return */
254256 PERF_BR_ERET = 11, /* exception return */
255257 PERF_BR_IRQ = 12, /* irq */
258+ PERF_BR_SERROR = 13, /* system error */
259+ PERF_BR_NO_TX = 14, /* not in transaction */
260+ PERF_BR_EXTEND_ABI = 15, /* extend ABI */
256261 PERF_BR_MAX,
257262 };
258263
264+/*
265+ * Common branch speculation outcome classification
266+ */
267+enum {
268+ PERF_BR_SPEC_NA = 0, /* Not available */
269+ PERF_BR_SPEC_WRONG_PATH = 1, /* Speculative but on wrong path */
270+ PERF_BR_NON_SPEC_CORRECT_PATH = 2, /* Non-speculative but on correct path */
271+ PERF_BR_SPEC_CORRECT_PATH = 3, /* Speculative and on correct path */
272+ PERF_BR_SPEC_MAX,
273+};
274+
275+enum {
276+ PERF_BR_NEW_FAULT_ALGN = 0, /* Alignment fault */
277+ PERF_BR_NEW_FAULT_DATA = 1, /* Data fault */
278+ PERF_BR_NEW_FAULT_INST = 2, /* Inst fault */
279+ PERF_BR_NEW_ARCH_1 = 3, /* Architecture specific */
280+ PERF_BR_NEW_ARCH_2 = 4, /* Architecture specific */
281+ PERF_BR_NEW_ARCH_3 = 5, /* Architecture specific */
282+ PERF_BR_NEW_ARCH_4 = 6, /* Architecture specific */
283+ PERF_BR_NEW_ARCH_5 = 7, /* Architecture specific */
284+ PERF_BR_NEW_MAX,
285+};
286+
287+enum {
288+ PERF_BR_PRIV_UNKNOWN = 0,
289+ PERF_BR_PRIV_USER = 1,
290+ PERF_BR_PRIV_KERNEL = 2,
291+ PERF_BR_PRIV_HV = 3,
292+};
293+
294+#define PERF_BR_ARM64_FIQ PERF_BR_NEW_ARCH_1
295+#define PERF_BR_ARM64_DEBUG_HALT PERF_BR_NEW_ARCH_2
296+#define PERF_BR_ARM64_DEBUG_EXIT PERF_BR_NEW_ARCH_3
297+#define PERF_BR_ARM64_DEBUG_INST PERF_BR_NEW_ARCH_4
298+#define PERF_BR_ARM64_DEBUG_DATA PERF_BR_NEW_ARCH_5
299+
259300 #define PERF_SAMPLE_BRANCH_PLM_ALL \
260301 (PERF_SAMPLE_BRANCH_USER|\
261302 PERF_SAMPLE_BRANCH_KERNEL|\
@@ -1295,7 +1336,9 @@ union perf_mem_data_src { · 1033 unmodified lines
12951336 #define PERF_MEM_LVLNUM_L2 0x02 /* L2 */
12961337 #define PERF_MEM_LVLNUM_L3 0x03 /* L3 */
12971338 #define PERF_MEM_LVLNUM_L4 0x04 /* L4 */
1298−/* 5-0xa available */
1339+/* 5-0x8 available */
1340+#define PERF_MEM_LVLNUM_EXTN_MEM 0x09 /* Extension memory */
1341+#define PERF_MEM_LVLNUM_IO 0x0a /* I/O */
12991342 #define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */
13001343 #define PERF_MEM_LVLNUM_LFB 0x0c /* LFB */
13011344 #define PERF_MEM_LVLNUM_RAM 0x0d /* RAM */
@@ -1313,7 +1356,7 @@ union perf_mem_data_src { · 11 unmodified lines
13131356 #define PERF_MEM_SNOOP_SHIFT 19
13141357
13151358 #define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
1316−/* 1 free */
1359+#define PERF_MEM_SNOOPX_PEER 0x02 /* xfer from peer */
13171360 #define PERF_MEM_SNOOPX_SHIFT 38
13181361
13191362 /* locked instruction */
@@ -1363,6 +1406,7 @@ union perf_mem_data_src { · 43 unmodified lines
13631406 * abort: aborting a hardware transaction
13641407 * cycles: cycles from last branch (or 0 if not supported)
13651408 * type: branch type
1409+ * spec: branch speculation info (or 0 if not supported)
13661410 */
13671411 struct perf_branch_entry {
13681412 __u64 from;
@@ -1373,7 +1417,10 @@ struct perf_branch_entry { · 4 unmodified lines
13731417 abort:1, /* transaction abort */
13741418 cycles:16, /* cycle count to last branch */
13751419 type:4, /* branch type */
1376− reserved:40;
1420+ spec:2, /* branch speculation info */
1421+ new_type:4, /* additional branch type */
1422+ priv:3, /* privilege level */
1423+ reserved:31;
13771424 };
13781425
13791426 union perf_sample_weight {
include/uapi/linux/pkt_cls.h+2−0
@@ -592,6 +592,8 @@ enum { · 591 unmodified lines
592592 TCA_FLOWER_KEY_PPPOE_SID, /* be16 */
593593 TCA_FLOWER_KEY_PPP_PROTO, /* be16 */
594594
595+ TCA_FLOWER_KEY_L2TPV3_SID, /* be32 */
596+
595597 __TCA_FLOWER_MAX,
596598 };
597599
include/uapi/linux/pkt_sched.h+11−0
@@ -1232,6 +1232,16 @@ enum { · 1231 unmodified lines
12321232 #define TCA_TAPRIO_ATTR_FLAG_TXTIME_ASSIST _BITUL(0)
12331233 #define TCA_TAPRIO_ATTR_FLAG_FULL_OFFLOAD _BITUL(1)
12341234
1235+enum {
1236+ TCA_TAPRIO_TC_ENTRY_UNSPEC,
1237+ TCA_TAPRIO_TC_ENTRY_INDEX, /* u32 */
1238+ TCA_TAPRIO_TC_ENTRY_MAX_SDU, /* u32 */
1239+
1240+ /* add new constants above here */
1241+ __TCA_TAPRIO_TC_ENTRY_CNT,
1242+ TCA_TAPRIO_TC_ENTRY_MAX = (__TCA_TAPRIO_TC_ENTRY_CNT - 1)
1243+};
1244+
12351245 enum {
12361246 TCA_TAPRIO_ATTR_UNSPEC,
12371247 TCA_TAPRIO_ATTR_PRIOMAP, /* struct tc_mqprio_qopt */
@@ -1245,6 +1255,7 @@ enum { · 7 unmodified lines
12451255 TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME_EXTENSION, /* s64 */
12461256 TCA_TAPRIO_ATTR_FLAGS, /* u32 */
12471257 TCA_TAPRIO_ATTR_TXTIME_DELAY, /* u32 */
1258+ TCA_TAPRIO_ATTR_TC_ENTRY, /* nest */
12481259 __TCA_TAPRIO_ATTR_MAX,
12491260 };
12501261
include/uapi/linux/psci.h+14−0
@@ -48,12 +48,26 @@ · 47 unmodified lines
4848 #define PSCI_0_2_FN64_MIGRATE_INFO_UP_CPU PSCI_0_2_FN64(7)
4949
5050 #define PSCI_1_0_FN_PSCI_FEATURES PSCI_0_2_FN(10)
51+#define PSCI_1_0_FN_CPU_FREEZE PSCI_0_2_FN(11)
52+#define PSCI_1_0_FN_CPU_DEFAULT_SUSPEND PSCI_0_2_FN(12)
53+#define PSCI_1_0_FN_NODE_HW_STATE PSCI_0_2_FN(13)
5154 #define PSCI_1_0_FN_SYSTEM_SUSPEND PSCI_0_2_FN(14)
5255 #define PSCI_1_0_FN_SET_SUSPEND_MODE PSCI_0_2_FN(15)
56+#define PSCI_1_0_FN_STAT_RESIDENCY PSCI_0_2_FN(16)
57+#define PSCI_1_0_FN_STAT_COUNT PSCI_0_2_FN(17)
58+
5359 #define PSCI_1_1_FN_SYSTEM_RESET2 PSCI_0_2_FN(18)
60+#define PSCI_1_1_FN_MEM_PROTECT PSCI_0_2_FN(19)
61+#define PSCI_1_1_FN_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN(19)
5462
63+#define PSCI_1_0_FN64_CPU_DEFAULT_SUSPEND PSCI_0_2_FN64(12)
64+#define PSCI_1_0_FN64_NODE_HW_STATE PSCI_0_2_FN64(13)
5565 #define PSCI_1_0_FN64_SYSTEM_SUSPEND PSCI_0_2_FN64(14)
66+#define PSCI_1_0_FN64_STAT_RESIDENCY PSCI_0_2_FN64(16)
67+#define PSCI_1_0_FN64_STAT_COUNT PSCI_0_2_FN64(17)
68+
5669 #define PSCI_1_1_FN64_SYSTEM_RESET2 PSCI_0_2_FN64(18)
70+#define PSCI_1_1_FN64_MEM_PROTECT_CHECK_RANGE PSCI_0_2_FN64(19)
5771
5872 /* PSCI v0.2 power state encoding for CPU_SUSPEND function */
5973 #define PSCI_0_2_POWER_STATE_ID_MASK 0xffff
include/uapi/linux/sed-opal.h+13−0
@@ -132,6 +132,18 @@ struct opal_read_write_table { · 131 unmodified lines
132132 __u64 priv;
133133 };
134134
135+#define OPAL_FL_SUPPORTED 0x00000001
136+#define OPAL_FL_LOCKING_SUPPORTED 0x00000002
137+#define OPAL_FL_LOCKING_ENABLED 0x00000004
138+#define OPAL_FL_LOCKED 0x00000008
139+#define OPAL_FL_MBR_ENABLED 0x00000010
140+#define OPAL_FL_MBR_DONE 0x00000020
141+
142+struct opal_status {
143+ __u32 flags;
144+ __u32 reserved;
145+};
146+
135147 #define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
136148 #define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
137149 #define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
@@ -148,5 +160,6 @@ struct opal_read_write_table { · 10 unmodified lines
148160 #define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
149161 #define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
150162 #define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
163+#define IOC_OPAL_GET_STATUS _IOR('p', 236, struct opal_status)
151164
152165 #endif /* _UAPI_SED_OPAL_H */
include/uapi/linux/seg6_local.h+24−0
@@ -28,6 +28,7 @@ enum { · 27 unmodified lines
2828 SEG6_LOCAL_BPF,
2929 SEG6_LOCAL_VRFTABLE,
3030 SEG6_LOCAL_COUNTERS,
31+ SEG6_LOCAL_FLAVORS,
3132 __SEG6_LOCAL_MAX,
3233 };
3334 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -110,4 +111,27 @@ enum { · 76 unmodified lines
110111
111112 #define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
112113
114+/* SRv6 End* Flavor attributes */
115+enum {
116+ SEG6_LOCAL_FLV_UNSPEC,
117+ SEG6_LOCAL_FLV_OPERATION,
118+ SEG6_LOCAL_FLV_LCBLOCK_BITS,
119+ SEG6_LOCAL_FLV_LCNODE_FN_BITS,
120+ __SEG6_LOCAL_FLV_MAX,
121+};
122+
123+#define SEG6_LOCAL_FLV_MAX (__SEG6_LOCAL_FLV_MAX - 1)
124+
125+/* Designed flavor operations for SRv6 End* Behavior */
126+enum {
127+ SEG6_LOCAL_FLV_OP_UNSPEC,
128+ SEG6_LOCAL_FLV_OP_PSP,
129+ SEG6_LOCAL_FLV_OP_USP,
130+ SEG6_LOCAL_FLV_OP_USD,
131+ SEG6_LOCAL_FLV_OP_NEXT_CSID,
132+ __SEG6_LOCAL_FLV_OP_MAX
133+};
134+
135+#define SEG6_LOCAL_FLV_OP_MAX (__SEG6_LOCAL_FLV_OP_MAX - 1)
136+
113137 #endif
include/uapi/linux/stat.h+3−1
@@ -124,7 +124,8 @@ struct statx { · 123 unmodified lines
124124 __u32 stx_dev_minor;
125125 /* 0x90 */
126126 __u64 stx_mnt_id;
127− __u64 __spare2;
127+ __u32 stx_dio_mem_align; /* Memory buffer alignment for direct I/O */
128+ __u32 stx_dio_offset_align; /* File offset alignment for direct I/O */
128129 /* 0xa0 */
129130 __u64 __spare3[12]; /* Spare space for future expansion */
130131 /* 0x100 */
@@ -152,6 +153,7 @@ struct statx { · 21 unmodified lines
152153 #define STATX_BASIC_STATS 0x000007ffU /* The stuff in the normal stat struct */
153154 #define STATX_BTIME 0x00000800U /* Want/got stx_btime */
154155 #define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */
156+#define STATX_DIOALIGN 0x00002000U /* Want/got direct I/O alignment info */
155157
156158 #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */
157159
include/uapi/linux/tc_act/tc_bpf.h+0−5
@@ -1,11 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
4− *
5− * This program is free software; you can redistribute it and/or modify
6− * it under the terms of the GNU General Public License as published by
7− * the Free Software Foundation; either version 2 of the License, or
8− * (at your option) any later version.
94 */
105
116 #ifndef __LINUX_TC_BPF_H
include/uapi/linux/tc_act/tc_skbedit.h+0−13
@@ -2,19 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright (c) 2008, Intel Corporation.
44 *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms and conditions of the GNU General Public License,
7− * version 2, as published by the Free Software Foundation.
8− *
9− * This program is distributed in the hope it will be useful, but WITHOUT
10− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12− * more details.
13− *
14− * You should have received a copy of the GNU General Public License along with
15− * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
16− * Place - Suite 330, Boston, MA 02111-1307 USA.
17− *
185 * Author: Alexander Duyck <alexander.h.duyck@intel.com>
196 */
207
include/uapi/linux/tc_act/tc_skbmod.h+1−6
@@ -1,12 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * Copyright (c) 2016, Jamal Hadi Salim
4− *
5− * This program is free software; you can redistribute it and/or modify
6− * it under the terms of the GNU General Public License as published by
7− * the Free Software Foundation; either version 2 of the License, or
8− * (at your option) any later version.
9−*/
4+ */
105
116 #ifndef __LINUX_TC_SKBMOD_H
127 #define __LINUX_TC_SKBMOD_H
include/uapi/linux/tc_act/tc_tunnel_key.h+0−5
@@ -2,11 +2,6 @@ · 1 unmodified line
22 /*
33 * Copyright (c) 2016, Amir Vadai <amir@vadai.me>
44 * Copyright (c) 2016, Mellanox Technologies. All rights reserved.
5− *
6− * This program is free software; you can redistribute it and/or modify
7− * it under the terms of the GNU General Public License as published by
8− * the Free Software Foundation; either version 2 of the License, or
9− * (at your option) any later version.
105 */
116
127 #ifndef __LINUX_TC_TUNNEL_KEY_H
include/uapi/linux/tc_act/tc_vlan.h+0−5
@@ -1,11 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * Copyright (c) 2014 Jiri Pirko <jiri@resnulli.us>
4− *
5− * This program is free software; you can redistribute it and/or modify
6− * it under the terms of the GNU General Public License as published by
7− * the Free Software Foundation; either version 2 of the License, or
8− * (at your option) any later version.
94 */
105
116 #ifndef __LINUX_TC_VLAN_H
include/uapi/linux/tls.h+30−0
@@ -100,6 +100,20 @@ · 99 unmodified lines
100100 #define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
101101 #define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
102102
103+#define TLS_CIPHER_ARIA_GCM_128 57
104+#define TLS_CIPHER_ARIA_GCM_128_IV_SIZE 8
105+#define TLS_CIPHER_ARIA_GCM_128_KEY_SIZE 16
106+#define TLS_CIPHER_ARIA_GCM_128_SALT_SIZE 4
107+#define TLS_CIPHER_ARIA_GCM_128_TAG_SIZE 16
108+#define TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE 8
109+
110+#define TLS_CIPHER_ARIA_GCM_256 58
111+#define TLS_CIPHER_ARIA_GCM_256_IV_SIZE 8
112+#define TLS_CIPHER_ARIA_GCM_256_KEY_SIZE 32
113+#define TLS_CIPHER_ARIA_GCM_256_SALT_SIZE 4
114+#define TLS_CIPHER_ARIA_GCM_256_TAG_SIZE 16
115+#define TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE 8
116+
103117 #define TLS_SET_RECORD_TYPE 1
104118 #define TLS_GET_RECORD_TYPE 2
105119
@@ -156,6 +170,22 @@ struct tls12_crypto_info_sm4_ccm { · 50 unmodified lines
156170 unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
157171 };
158172
173+struct tls12_crypto_info_aria_gcm_128 {
174+ struct tls_crypto_info info;
175+ unsigned char iv[TLS_CIPHER_ARIA_GCM_128_IV_SIZE];
176+ unsigned char key[TLS_CIPHER_ARIA_GCM_128_KEY_SIZE];
177+ unsigned char salt[TLS_CIPHER_ARIA_GCM_128_SALT_SIZE];
178+ unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_128_REC_SEQ_SIZE];
179+};
180+
181+struct tls12_crypto_info_aria_gcm_256 {
182+ struct tls_crypto_info info;
183+ unsigned char iv[TLS_CIPHER_ARIA_GCM_256_IV_SIZE];
184+ unsigned char key[TLS_CIPHER_ARIA_GCM_256_KEY_SIZE];
185+ unsigned char salt[TLS_CIPHER_ARIA_GCM_256_SALT_SIZE];
186+ unsigned char rec_seq[TLS_CIPHER_ARIA_GCM_256_REC_SEQ_SIZE];
187+};
188+
159189 enum {
160190 TLS_INFO_UNSPEC,
161191 TLS_INFO_VERSION,
include/uapi/linux/ublk_cmd.h+7−1
@@ -17,7 +17,8 @@ · 16 unmodified lines
1717 #define UBLK_CMD_STOP_DEV 0x07
1818 #define UBLK_CMD_SET_PARAMS 0x08
1919 #define UBLK_CMD_GET_PARAMS 0x09
20−
20+#define UBLK_CMD_START_USER_RECOVERY 0x10
21+#define UBLK_CMD_END_USER_RECOVERY 0x11
2122 /*
2223 * IO commands, issued by ublk server, and handled by ublk driver.
2324 *
@@ -74,9 +75,14 @@ · 50 unmodified lines
7475 */
7576 #define UBLK_F_NEED_GET_DATA (1UL << 2)
7677
78+#define UBLK_F_USER_RECOVERY (1UL << 3)
79+
80+#define UBLK_F_USER_RECOVERY_REISSUE (1UL << 4)
81+
7782 /* device state */
7883 #define UBLK_S_DEV_DEAD 0
7984 #define UBLK_S_DEV_LIVE 1
85+#define UBLK_S_DEV_QUIESCED 2
8086
8187 /* shipped via sqe->cmd of io_uring command */
8288 struct ublksrv_ctrl_cmd {
include/uapi/linux/usbip.h+26−0
@@ -24,4 +24,30 @@ enum usbip_device_status { · 23 unmodified lines
2424 VDEV_ST_USED,
2525 VDEV_ST_ERROR
2626 };
27+
28+/* USB URB Transfer flags:
29+ *
30+ * USBIP server and client (vchi) pack URBs in TCP packets. The following
31+ * are the transfer type defines used in USBIP protocol.
32+ */
33+
34+#define USBIP_URB_SHORT_NOT_OK 0x0001
35+#define USBIP_URB_ISO_ASAP 0x0002
36+#define USBIP_URB_NO_TRANSFER_DMA_MAP 0x0004
37+#define USBIP_URB_ZERO_PACKET 0x0040
38+#define USBIP_URB_NO_INTERRUPT 0x0080
39+#define USBIP_URB_FREE_BUFFER 0x0100
40+#define USBIP_URB_DIR_IN 0x0200
41+#define USBIP_URB_DIR_OUT 0
42+#define USBIP_URB_DIR_MASK USBIP_URB_DIR_IN
43+
44+#define USBIP_URB_DMA_MAP_SINGLE 0x00010000
45+#define USBIP_URB_DMA_MAP_PAGE 0x00020000
46+#define USBIP_URB_DMA_MAP_SG 0x00040000
47+#define USBIP_URB_MAP_LOCAL 0x00080000
48+#define USBIP_URB_SETUP_MAP_SINGLE 0x00100000
49+#define USBIP_URB_SETUP_MAP_LOCAL 0x00200000
50+#define USBIP_URB_DMA_SG_COMBINED 0x00400000
51+#define USBIP_URB_ALIGNED_TEMP_BUFFER 0x00800000
52+
2753 #endif /* _UAPI_LINUX_USBIP_H */
include/uapi/linux/userfaultfd.h+4−0
@@ -12,6 +12,10 @@ · 11 unmodified lines
1212
1313 #include <linux/types.h>
1414
15+/* ioctls for /dev/userfaultfd */
16+#define USERFAULTFD_IOC 0xAA
17+#define USERFAULTFD_IOC_NEW _IO(USERFAULTFD_IOC, 0x00)
18+
1519 /*
1620 * If the UFFDIO_API is upgraded someday, the UFFDIO_UNREGISTER and
1721 * UFFDIO_WAKE ioctls should be defined as _IOW and not as _IOR. In
include/uapi/linux/v4l2-controls.h+7−1
@@ -225,6 +225,12 @@ enum v4l2_colorfx { · 224 unmodified lines
225225 */
226226 #define V4L2_CID_USER_ISL7998X_BASE (V4L2_CID_USER_BASE + 0x1180)
227227
228+/*
229+ * The base for DW100 driver controls.
230+ * We reserve 16 controls for this driver.
231+ */
232+#define V4L2_CID_USER_DW100_BASE (V4L2_CID_USER_BASE + 0x1190)
233+
228234 /* MPEG-class control IDs */
229235 /* The MPEG controls are applicable to all codec controls
230236 * and the 'MPEG' part of the define is historical */
@@ -1730,7 +1736,7 @@ struct v4l2_vp8_segment { · 1499 unmodified lines
17301736 * @sharpness_level: matches sharpness_level syntax element.
17311737 * @level: matches loop_filter_level syntax element.
17321738 * @padding: padding field. Should be zeroed by applications.
1733− * @flags: see V4L2_VP8_LF_FLAG_{}.
1739+ * @flags: see V4L2_VP8_LF_{}.
17341740 *
17351741 * This structure contains loop filter related parameters.
17361742 * See the 'mb_lf_adjustments()' part of the frame header syntax,
include/uapi/linux/vdpa.h+6−0
@@ -46,12 +46,18 @@ enum vdpa_attr { · 45 unmodified lines
4646
4747 VDPA_ATTR_DEV_NEGOTIATED_FEATURES, /* u64 */
4848 VDPA_ATTR_DEV_MGMTDEV_MAX_VQS, /* u32 */
49+ /* virtio features that are supported by the vDPA management device */
4950 VDPA_ATTR_DEV_SUPPORTED_FEATURES, /* u64 */
5051
5152 VDPA_ATTR_DEV_QUEUE_INDEX, /* u32 */
5253 VDPA_ATTR_DEV_VENDOR_ATTR_NAME, /* string */
5354 VDPA_ATTR_DEV_VENDOR_ATTR_VALUE, /* u64 */
5455
56+ VDPA_ATTR_DEV_FEATURES, /* u64 */
57+
58+ /* virtio features that are supported by the vDPA device */
59+ VDPA_ATTR_VDPA_DEV_SUPPORTED_FEATURES, /* u64 */
60+
5561 /* new attributes must be added above here */
5662 VDPA_ATTR_MAX,
5763 };
include/uapi/linux/vfio.h+142−0
@@ -986,6 +986,148 @@ enum vfio_device_mig_state { · 985 unmodified lines
986986 VFIO_DEVICE_STATE_RUNNING_P2P = 5,
987987 };
988988
989+/*
990+ * Upon VFIO_DEVICE_FEATURE_SET, allow the device to be moved into a low power
991+ * state with the platform-based power management. Device use of lower power
992+ * states depends on factors managed by the runtime power management core,
993+ * including system level support and coordinating support among dependent
994+ * devices. Enabling device low power entry does not guarantee lower power
995+ * usage by the device, nor is a mechanism provided through this feature to
996+ * know the current power state of the device. If any device access happens
997+ * (either from the host or through the vfio uAPI) when the device is in the
998+ * low power state, then the host will move the device out of the low power
999+ * state as necessary prior to the access. Once the access is completed, the
1000+ * device may re-enter the low power state. For single shot low power support
1001+ * with wake-up notification, see
1002+ * VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP below. Access to mmap'd
1003+ * device regions is disabled on LOW_POWER_ENTRY and may only be resumed after
1004+ * calling LOW_POWER_EXIT.
1005+ */
1006+#define VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY 3
1007+
1008+/*
1009+ * This device feature has the same behavior as
1010+ * VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY with the exception that the user
1011+ * provides an eventfd for wake-up notification. When the device moves out of
1012+ * the low power state for the wake-up, the host will not allow the device to
1013+ * re-enter a low power state without a subsequent user call to one of the low
1014+ * power entry device feature IOCTLs. Access to mmap'd device regions is
1015+ * disabled on LOW_POWER_ENTRY_WITH_WAKEUP and may only be resumed after the
1016+ * low power exit. The low power exit can happen either through LOW_POWER_EXIT
1017+ * or through any other access (where the wake-up notification has been
1018+ * generated). The access to mmap'd device regions will not trigger low power
1019+ * exit.
1020+ *
1021+ * The notification through the provided eventfd will be generated only when
1022+ * the device has entered and is resumed from a low power state after
1023+ * calling this device feature IOCTL. A device that has not entered low power
1024+ * state, as managed through the runtime power management core, will not
1025+ * generate a notification through the provided eventfd on access. Calling the
1026+ * LOW_POWER_EXIT feature is optional in the case where notification has been
1027+ * signaled on the provided eventfd that a resume from low power has occurred.
1028+ */
1029+struct vfio_device_low_power_entry_with_wakeup {
1030+ __s32 wakeup_eventfd;
1031+ __u32 reserved;
1032+};
1033+
1034+#define VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP 4
1035+
1036+/*
1037+ * Upon VFIO_DEVICE_FEATURE_SET, disallow use of device low power states as
1038+ * previously enabled via VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY or
1039+ * VFIO_DEVICE_FEATURE_LOW_POWER_ENTRY_WITH_WAKEUP device features.
1040+ * This device feature IOCTL may itself generate a wakeup eventfd notification
1041+ * in the latter case if the device had previously entered a low power state.
1042+ */
1043+#define VFIO_DEVICE_FEATURE_LOW_POWER_EXIT 5
1044+
1045+/*
1046+ * Upon VFIO_DEVICE_FEATURE_SET start/stop device DMA logging.
1047+ * VFIO_DEVICE_FEATURE_PROBE can be used to detect if the device supports
1048+ * DMA logging.
1049+ *
1050+ * DMA logging allows a device to internally record what DMAs the device is
1051+ * initiating and report them back to userspace. It is part of the VFIO
1052+ * migration infrastructure that allows implementing dirty page tracking
1053+ * during the pre copy phase of live migration. Only DMA WRITEs are logged,
1054+ * and this API is not connected to VFIO_DEVICE_FEATURE_MIG_DEVICE_STATE.
1055+ *
1056+ * When DMA logging is started a range of IOVAs to monitor is provided and the
1057+ * device can optimize its logging to cover only the IOVA range given. Each
1058+ * DMA that the device initiates inside the range will be logged by the device
1059+ * for later retrieval.
1060+ *
1061+ * page_size is an input that hints what tracking granularity the device
1062+ * should try to achieve. If the device cannot do the hinted page size then
1063+ * it's the driver choice which page size to pick based on its support.
1064+ * On output the device will return the page size it selected.
1065+ *
1066+ * ranges is a pointer to an array of
1067+ * struct vfio_device_feature_dma_logging_range.
1068+ *
1069+ * The core kernel code guarantees to support by minimum num_ranges that fit
1070+ * into a single kernel page. User space can try higher values but should give
1071+ * up if the above can't be achieved as of some driver limitations.
1072+ *
1073+ * A single call to start device DMA logging can be issued and a matching stop
1074+ * should follow at the end. Another start is not allowed in the meantime.
1075+ */
1076+struct vfio_device_feature_dma_logging_control {
1077+ __aligned_u64 page_size;
1078+ __u32 num_ranges;
1079+ __u32 __reserved;
1080+ __aligned_u64 ranges;
1081+};
1082+
1083+struct vfio_device_feature_dma_logging_range {
1084+ __aligned_u64 iova;
1085+ __aligned_u64 length;
1086+};
1087+
1088+#define VFIO_DEVICE_FEATURE_DMA_LOGGING_START 6
1089+
1090+/*
1091+ * Upon VFIO_DEVICE_FEATURE_SET stop device DMA logging that was started
1092+ * by VFIO_DEVICE_FEATURE_DMA_LOGGING_START
1093+ */
1094+#define VFIO_DEVICE_FEATURE_DMA_LOGGING_STOP 7
1095+
1096+/*
1097+ * Upon VFIO_DEVICE_FEATURE_GET read back and clear the device DMA log
1098+ *
1099+ * Query the device's DMA log for written pages within the given IOVA range.
1100+ * During querying the log is cleared for the IOVA range.
1101+ *
1102+ * bitmap is a pointer to an array of u64s that will hold the output bitmap
1103+ * with 1 bit reporting a page_size unit of IOVA. The mapping of IOVA to bits
1104+ * is given by:
1105+ * bitmap[(addr - iova)/page_size] & (1ULL << (addr % 64))
1106+ *
1107+ * The input page_size can be any power of two value and does not have to
1108+ * match the value given to VFIO_DEVICE_FEATURE_DMA_LOGGING_START. The driver
1109+ * will format its internal logging to match the reporting page size, possibly
1110+ * by replicating bits if the internal page size is lower than requested.
1111+ *
1112+ * The LOGGING_REPORT will only set bits in the bitmap and never clear or
1113+ * perform any initialization of the user provided bitmap.
1114+ *
1115+ * If any error is returned userspace should assume that the dirty log is
1116+ * corrupted. Error recovery is to consider all memory dirty and try to
1117+ * restart the dirty tracking, or to abort/restart the whole migration.
1118+ *
1119+ * If DMA logging is not enabled, an error will be returned.
1120+ *
1121+ */
1122+struct vfio_device_feature_dma_logging_report {
1123+ __aligned_u64 iova;
1124+ __aligned_u64 length;
1125+ __aligned_u64 page_size;
1126+ __aligned_u64 bitmap;
1127+};
1128+
1129+#define VFIO_DEVICE_FEATURE_DMA_LOGGING_REPORT 8
1130+
9891131 /* -------- API for Type1 VFIO IOMMU -------- */
9901132
9911133 /**
include/uapi/linux/videodev2.h+6−1
@@ -502,7 +502,6 @@ struct v4l2_capability { · 501 unmodified lines
502502 #define V4L2_CAP_META_CAPTURE 0x00800000 /* Is a metadata capture device */
503503
504504 #define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */
505−#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */
506505 #define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */
507506 #define V4L2_CAP_META_OUTPUT 0x08000000 /* Is a metadata output device */
508507
@@ -2435,6 +2434,7 @@ struct v4l2_event_vsync { · 1926 unmodified lines
24352434 #define V4L2_EVENT_CTRL_CH_VALUE (1 << 0)
24362435 #define V4L2_EVENT_CTRL_CH_FLAGS (1 << 1)
24372436 #define V4L2_EVENT_CTRL_CH_RANGE (1 << 2)
2437+#define V4L2_EVENT_CTRL_CH_DIMENSIONS (1 << 3)
24382438
24392439 struct v4l2_event_ctrl {
24402440 __u32 changes;
@@ -2682,6 +2682,11 @@ struct v4l2_create_buffers { · 241 unmodified lines
26822682 #ifndef __KERNEL__
26832683 #define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
26842684 #define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
2685+/*
2686+ * This capability was never implemented, anyone using this cap should drop it
2687+ * from their code.
2688+ */
2689+#define V4L2_CAP_ASYNCIO 0x02000000
26852690 #endif
26862691
26872692 #endif /* _UAPI__LINUX_VIDEODEV2_H */
include/uapi/linux/virtio_blk.h+19−0
@@ -40,6 +40,7 @@ · 39 unmodified lines
4040 #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */
4141 #define VIRTIO_BLK_F_DISCARD 13 /* DISCARD is supported */
4242 #define VIRTIO_BLK_F_WRITE_ZEROES 14 /* WRITE ZEROES is supported */
43+#define VIRTIO_BLK_F_SECURE_ERASE 16 /* Secure Erase is supported */
4344
4445 /* Legacy feature bits */
4546 #ifndef VIRTIO_BLK_NO_LEGACY
@@ -121,6 +122,21 @@ struct virtio_blk_config { · 75 unmodified lines
121122 __u8 write_zeroes_may_unmap;
122123
123124 __u8 unused1[3];
125+
126+ /* the next 3 entries are guarded by VIRTIO_BLK_F_SECURE_ERASE */
127+ /*
128+ * The maximum secure erase sectors (in 512-byte sectors) for
129+ * one segment.
130+ */
131+ __virtio32 max_secure_erase_sectors;
132+ /*
133+ * The maximum number of secure erase segments in a
134+ * secure erase command.
135+ */
136+ __virtio32 max_secure_erase_seg;
137+ /* Secure erase commands must be aligned to this number of sectors. */
138+ __virtio32 secure_erase_sector_alignment;
139+
124140 } __attribute__((packed));
125141
126142 /*
@@ -155,6 +171,9 @@ struct virtio_blk_config { · 28 unmodified lines
155171 /* Write zeroes command */
156172 #define VIRTIO_BLK_T_WRITE_ZEROES 13
157173
174+/* Secure erase command */
175+#define VIRTIO_BLK_T_SECURE_ERASE 14
176+
158177 #ifndef VIRTIO_BLK_NO_LEGACY
159178 /* Barrier before this op. */
160179 #define VIRTIO_BLK_T_BARRIER 0x80000000
include/uapi/linux/virtio_net.h+7−7
@@ -56,7 +56,7 @@ · 55 unmodified lines
5656 #define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow
5757 * Steering */
5858 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
59−#define VIRTIO_NET_F_NOTF_COAL 53 /* Guest can handle notifications coalescing */
59+#define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */
6060 #define VIRTIO_NET_F_HASH_REPORT 57 /* Supports hash report */
6161 #define VIRTIO_NET_F_RSS 60 /* Supports RSS RX steering */
6262 #define VIRTIO_NET_F_RSC_EXT 61 /* extended coalescing info */
@@ -364,24 +364,24 @@ struct virtio_net_hash_config { · 301 unmodified lines
364364 */
365365 #define VIRTIO_NET_CTRL_NOTF_COAL 6
366366 /*
367− * Set the tx-usecs/tx-max-packets patameters.
368− * tx-usecs - Maximum number of usecs to delay a TX notification.
369− * tx-max-packets - Maximum number of packets to send before a TX notification.
367+ * Set the tx-usecs/tx-max-packets parameters.
370368 */
371369 struct virtio_net_ctrl_coal_tx {
370+ /* Maximum number of packets to send before a TX notification */
372371 __le32 tx_max_packets;
372+ /* Maximum number of usecs to delay a TX notification */
373373 __le32 tx_usecs;
374374 };
375375
376376 #define VIRTIO_NET_CTRL_NOTF_COAL_TX_SET 0
377377
378378 /*
379− * Set the rx-usecs/rx-max-packets patameters.
380− * rx-usecs - Maximum number of usecs to delay a RX notification.
381− * rx-max-frames - Maximum number of packets to receive before a RX notification.
379+ * Set the rx-usecs/rx-max-packets parameters.
382380 */
383381 struct virtio_net_ctrl_coal_rx {
382+ /* Maximum number of packets to receive before a RX notification */
384383 __le32 rx_max_packets;
384+ /* Maximum number of usecs to delay a RX notification */
385385 __le32 rx_usecs;
386386 };
387387
include/uapi/linux/xfrm.h+1−1
@@ -296,7 +296,7 @@ enum xfrm_attr_type_t { · 295 unmodified lines
296296 XFRMA_ETIMER_THRESH,
297297 XFRMA_SRCADDR, /* xfrm_address_t */
298298 XFRMA_COADDR, /* xfrm_address_t */
299− XFRMA_LASTUSED, /* unsigned long */
299+ XFRMA_LASTUSED, /* __u64 */
300300 XFRMA_POLICY_TYPE, /* struct xfrm_userpolicy_type */
301301 XFRMA_MIGRATE,
302302 XFRMA_ALG_AEAD, /* struct xfrm_algo_aead */
include/uapi/misc/habanalabs.h+112−25
@@ -707,6 +707,25 @@ enum hl_server_type { · 706 unmodified lines
707707 HL_SERVER_GAUDI2_HLS2 = 5
708708 };
709709
710+/*
711+ * Notifier event values - for the notification mechanism and the HL_INFO_GET_EVENTS command
712+ *
713+ * HL_NOTIFIER_EVENT_TPC_ASSERT - Indicates TPC assert event
714+ * HL_NOTIFIER_EVENT_UNDEFINED_OPCODE - Indicates undefined operation code
715+ * HL_NOTIFIER_EVENT_DEVICE_RESET - Indicates device requires a reset
716+ * HL_NOTIFIER_EVENT_CS_TIMEOUT - Indicates CS timeout error
717+ * HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE - Indicates device is unavailable
718+ * HL_NOTIFIER_EVENT_USER_ENGINE_ERR - Indicates device engine in error state
719+ * HL_NOTIFIER_EVENT_GENERAL_HW_ERR - Indicates device HW error
720+ */
721+#define HL_NOTIFIER_EVENT_TPC_ASSERT (1ULL << 0)
722+#define HL_NOTIFIER_EVENT_UNDEFINED_OPCODE (1ULL << 1)
723+#define HL_NOTIFIER_EVENT_DEVICE_RESET (1ULL << 2)
724+#define HL_NOTIFIER_EVENT_CS_TIMEOUT (1ULL << 3)
725+#define HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE (1ULL << 4)
726+#define HL_NOTIFIER_EVENT_USER_ENGINE_ERR (1ULL << 5)
727+#define HL_NOTIFIER_EVENT_GENERAL_HW_ERR (1ULL << 6)
728+
710729 /* Opcode for management ioctl
711730 *
712731 * HW_IP_INFO - Receive information about different IP blocks in the
@@ -754,6 +773,7 @@ enum hl_server_type { · 41 unmodified lines
754773 * Razwi initiator.
755774 * Razwi cause, was it a page fault or MMU access error.
756775 * HL_INFO_DEV_MEM_ALLOC_PAGE_SIZES - Retrieve valid page sizes for device memory allocation
776+ * HL_INFO_SECURED_ATTESTATION - Retrieve attestation report of the boot.
757777 * HL_INFO_REGISTER_EVENTFD - Register eventfd for event notifications.
758778 * HL_INFO_UNREGISTER_EVENTFD - Unregister eventfd
759779 * HL_INFO_GET_EVENTS - Retrieve the last occurred events
@@ -783,14 +803,19 @@ enum hl_server_type { · 23 unmodified lines
783803 #define HL_INFO_CS_TIMEOUT_EVENT 24
784804 #define HL_INFO_RAZWI_EVENT 25
785805 #define HL_INFO_DEV_MEM_ALLOC_PAGE_SIZES 26
806+#define HL_INFO_SECURED_ATTESTATION 27
786807 #define HL_INFO_REGISTER_EVENTFD 28
787808 #define HL_INFO_UNREGISTER_EVENTFD 29
788809 #define HL_INFO_GET_EVENTS 30
789810 #define HL_INFO_UNDEFINED_OPCODE_EVENT 31
811+#define HL_INFO_ENGINE_STATUS 32
790812
791813 #define HL_INFO_VERSION_MAX_LEN 128
792814 #define HL_INFO_CARD_NAME_MAX_LEN 16
793815
816+/* Maximum buffer size for retrieving engines status */
817+#define HL_ENGINES_DATA_MAX_SIZE SZ_1M
818+
794819 /**
795820 * struct hl_info_hw_ip_info - hardware information on various IPs in the ASIC
796821 * @sram_base_address: The first SRAM physical base address that is free to be
@@ -821,6 +846,7 @@ enum hl_server_type { · 24 unmodified lines
821846 * @tpc_enabled_mask: Bit-mask that represents which TPCs are enabled. Relevant
822847 * for Goya/Gaudi only.
823848 * @dram_enabled: Whether the DRAM is enabled.
849+ * @security_enabled: Whether security is enabled on device.
824850 * @mme_master_slave_mode: Indicate whether the MME is working in master/slave
825851 * configuration. Relevant for Greco and later.
826852 * @cpucp_version: The CPUCP f/w version.
@@ -852,7 +878,7 @@ struct hl_info_hw_ip_info { · 25 unmodified lines
852878 __u32 psoc_pci_pll_div_factor;
853879 __u8 tpc_enabled_mask;
854880 __u8 dram_enabled;
855− __u8 reserved;
881+ __u8 security_enabled;
856882 __u8 mme_master_slave_mode;
857883 __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
858884 __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
@@ -876,13 +902,13 @@ struct hl_info_hw_idle { · 17 unmodified lines
876902 __u32 is_idle;
877903 /*
878904 * Bitmask of busy engines.
879− * Bits definition is according to `enum <chip>_enging_id'.
905+ * Bits definition is according to `enum <chip>_engine_id'.
880906 */
881907 __u32 busy_engines_mask;
882908
883909 /*
884910 * Extended Bitmask of busy engines.
885− * Bits definition is according to `enum <chip>_enging_id'.
911+ * Bits definition is according to `enum <chip>_engine_id'.
886912 */
887913 __u64 busy_engines_mask_ext[HL_BUSY_ENGINES_MASK_EXT_SIZE];
888914 };
@@ -1078,12 +1104,12 @@ struct hl_info_razwi_event { · 189 unmodified lines
10781104 * struct hl_info_undefined_opcode_event - info about last undefined opcode error
10791105 * @timestamp: timestamp of the undefined opcode error
10801106 * @cb_addr_streams: CB addresses (per stream) that are currently exists in the PQ
1081− * entiers. In case all streams array entries are
1107+ * entries. In case all streams array entries are
10821108 * filled with values, it means the execution was in Lower-CP.
10831109 * @cq_addr: the address of the current handled command buffer
10841110 * @cq_size: the size of the current handled command buffer
10851111 * @cb_addr_streams_len: num of streams - actual len of cb_addr_streams array.
1086− * should be equal to 1 incase of undefined opcode
1112+ * should be equal to 1 in case of undefined opcode
10871113 * in Upper-CP (specific stream) and equal to 4 incase
10881114 * of undefined opcode in Lower-CP.
10891115 * @engine_id: engine-id that the error occurred on
@@ -1109,6 +1135,45 @@ struct hl_info_dev_memalloc_page_sizes { · 19 unmodified lines
11091135 __u64 page_order_bitmask;
11101136 };
11111137
1138+#define SEC_PCR_DATA_BUF_SZ 256
1139+#define SEC_PCR_QUOTE_BUF_SZ 510 /* (512 - 2) 2 bytes used for size */
1140+#define SEC_SIGNATURE_BUF_SZ 255 /* (256 - 1) 1 byte used for size */
1141+#define SEC_PUB_DATA_BUF_SZ 510 /* (512 - 2) 2 bytes used for size */
1142+#define SEC_CERTIFICATE_BUF_SZ 2046 /* (2048 - 2) 2 bytes used for size */
1143+
1144+/*
1145+ * struct hl_info_sec_attest - attestation report of the boot
1146+ * @nonce: number only used once. random number provided by host. this also passed to the quote
1147+ * command as a qualifying data.
1148+ * @pcr_quote_len: length of the attestation quote data (bytes)
1149+ * @pub_data_len: length of the public data (bytes)
1150+ * @certificate_len: length of the certificate (bytes)
1151+ * @pcr_num_reg: number of PCR registers in the pcr_data array
1152+ * @pcr_reg_len: length of each PCR register in the pcr_data array (bytes)
1153+ * @quote_sig_len: length of the attestation report signature (bytes)
1154+ * @pcr_data: raw values of the PCR registers
1155+ * @pcr_quote: attestation report data structure
1156+ * @quote_sig: signature structure of the attestation report
1157+ * @public_data: public key for the signed attestation
1158+ * (outPublic + name + qualifiedName)
1159+ * @certificate: certificate for the attestation signing key
1160+ */
1161+struct hl_info_sec_attest {
1162+ __u32 nonce;
1163+ __u16 pcr_quote_len;
1164+ __u16 pub_data_len;
1165+ __u16 certificate_len;
1166+ __u8 pcr_num_reg;
1167+ __u8 pcr_reg_len;
1168+ __u8 quote_sig_len;
1169+ __u8 pcr_data[SEC_PCR_DATA_BUF_SZ];
1170+ __u8 pcr_quote[SEC_PCR_QUOTE_BUF_SZ];
1171+ __u8 quote_sig[SEC_SIGNATURE_BUF_SZ];
1172+ __u8 public_data[SEC_PUB_DATA_BUF_SZ];
1173+ __u8 certificate[SEC_CERTIFICATE_BUF_SZ];
1174+ __u8 pad0[2];
1175+};
1176+
11121177 enum gaudi_dcores {
11131178 HL_GAUDI_WS_DCORE,
11141179 HL_GAUDI_WN_DCORE,
@@ -1130,6 +1195,11 @@ enum gaudi_dcores { · 15 unmodified lines
11301195 * resolution. Currently not in use.
11311196 * @pll_index: Index as defined in hl_<asic type>_pll_index enumeration.
11321197 * @eventfd: event file descriptor for event notifications.
1198+ * @user_buffer_actual_size: Actual data size which was copied to user allocated buffer by the
1199+ * driver. It is possible for the user to allocate buffer larger than
1200+ * needed, hence updating this variable so user will know the exact amount
1201+ * of bytes copied by the kernel to the buffer.
1202+ * @sec_attest_nonce: Nonce number used for attestation report.
11331203 * @pad: Padding to 64 bit.
11341204 */
11351205 struct hl_info_args {
@@ -1143,6 +1213,8 @@ struct hl_info_args { · 7 unmodified lines
11431213 __u32 period_ms;
11441214 __u32 pll_index;
11451215 __u32 eventfd;
1216+ __u32 user_buffer_actual_size;
1217+ __u32 sec_attest_nonce;
11461218 };
11471219
11481220 __u32 pad;
@@ -1337,17 +1409,47 @@ struct hl_cs_chunk { · 188 unmodified lines
13371409 #define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
13381410 #define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
13391411
1412+/*
1413+ * The engine cores CS is merged into the existing CS ioctls.
1414+ * Use it to control the engine cores mode.
1415+ */
1416+#define HL_CS_FLAGS_ENGINE_CORE_COMMAND 0x4000
1417+
13401418 #define HL_CS_STATUS_SUCCESS 0
13411419
13421420 #define HL_MAX_JOBS_PER_CS 512
13431421
1422+/* HL_ENGINE_CORE_ values
1423+ *
1424+ * HL_ENGINE_CORE_HALT: engine core halt
1425+ * HL_ENGINE_CORE_RUN: engine core run
1426+ */
1427+#define HL_ENGINE_CORE_HALT (1 << 0)
1428+#define HL_ENGINE_CORE_RUN (1 << 1)
1429+
13441430 struct hl_cs_in {
13451431
1346− /* this holds address of array of hl_cs_chunk for restore phase */
1347− __u64 chunks_restore;
1432+ union {
1433+ struct {
1434+ /* this holds address of array of hl_cs_chunk for restore phase */
1435+ __u64 chunks_restore;
1436+
1437+ /* holds address of array of hl_cs_chunk for execution phase */
1438+ __u64 chunks_execute;
1439+ };
1440+
1441+ /* Valid only when HL_CS_FLAGS_ENGINE_CORE_COMMAND is set */
1442+ struct {
1443+ /* this holds address of array of uint32 for engine_cores */
1444+ __u64 engine_cores;
13481445
1349− /* holds address of array of hl_cs_chunk for execution phase */
1350− __u64 chunks_execute;
1446+ /* number of engine cores in engine_cores array */
1447+ __u32 num_engine_cores;
1448+
1449+ /* the core command to be sent towards engine cores */
1450+ __u32 core_command;
1451+ };
1452+ };
13511453
13521454 union {
13531455 /*
@@ -1412,7 +1514,7 @@ struct hl_cs_out { · 58 unmodified lines
14121514
14131515 /* Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY is set */
14141516 struct {
1415− /* This is the resereved signal handle id */
1517+ /* This is the reserved signal handle id */
14161518 __u32 handle_id;
14171519
14181520 /* This is the signals count */
@@ -1874,21 +1976,6 @@ struct hl_debug_args { · 455 unmodified lines
18741976 __u32 ctx_id;
18751977 };
18761978
1877−/*
1878− * Notifier event values - for the notification mechanism and the HL_INFO_GET_EVENTS command
1879− *
1880− * HL_NOTIFIER_EVENT_TPC_ASSERT - Indicates TPC assert event
1881− * HL_NOTIFIER_EVENT_UNDEFINED_OPCODE - Indicates undefined operation code
1882− * HL_NOTIFIER_EVENT_DEVICE_RESET - Indicates device requires a reset
1883− * HL_NOTIFIER_EVENT_CS_TIMEOUT - Indicates CS timeout error
1884− * HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE - Indicates device is unavailable
1885− */
1886−#define HL_NOTIFIER_EVENT_TPC_ASSERT (1ULL << 0)
1887−#define HL_NOTIFIER_EVENT_UNDEFINED_OPCODE (1ULL << 1)
1888−#define HL_NOTIFIER_EVENT_DEVICE_RESET (1ULL << 2)
1889−#define HL_NOTIFIER_EVENT_CS_TIMEOUT (1ULL << 3)
1890−#define HL_NOTIFIER_EVENT_DEVICE_UNAVAILABLE (1ULL << 4)
1891−
18921979 /*
18931980 * Various information operations such as:
18941981 * - H/W IP information
include/uapi/misc/uacce/hisi_qm.h+16−1
@@ -14,11 +14,26 @@ struct hisi_qp_ctx { · 13 unmodified lines
1414 __u16 qc_type;
1515 };
1616
17+/**
18+ * struct hisi_qp_info - User data for hisi qp.
19+ * @sqe_size: Submission queue element size
20+ * @sq_depth: The number of sqe
21+ * @cq_depth: The number of cqe
22+ * @reserved: Reserved data
23+ */
24+struct hisi_qp_info {
25+ __u32 sqe_size;
26+ __u16 sq_depth;
27+ __u16 cq_depth;
28+ __u64 reserved;
29+};
30+
1731 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
1832 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
1933 #define HISI_QM_API_VER3_BASE "hisi_qm_v3"
2034
2135 /* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
2236 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
23−
37+/* UACCE_CMD_QM_SET_QP_INFO: Set qp depth and BD size */
38+#define UACCE_CMD_QM_SET_QP_INFO _IOWR('H', 11, struct hisi_qp_info)
2439 #endif
include/uapi/mtd/mtd-abi.h+59−5
@@ -55,9 +55,9 @@ struct mtd_oob_buf64 { · 54 unmodified lines
5555 * @MTD_OPS_RAW: data are transferred as-is, with no error correction;
5656 * this mode implies %MTD_OPS_PLACE_OOB
5757 *
58− * These modes can be passed to ioctl(MEMWRITE) and are also used internally.
59− * See notes on "MTD file modes" for discussion on %MTD_OPS_RAW vs.
60− * %MTD_FILE_MODE_RAW.
58+ * These modes can be passed to ioctl(MEMWRITE) and ioctl(MEMREAD); they are
59+ * also used internally. See notes on "MTD file modes" for discussion on
60+ * %MTD_OPS_RAW vs. %MTD_FILE_MODE_RAW.
6161 */
6262 enum {
6363 MTD_OPS_PLACE_OOB = 0,
@@ -91,6 +91,53 @@ struct mtd_write_req { · 27 unmodified lines
9191 __u8 padding[7];
9292 };
9393
94+/**
95+ * struct mtd_read_req_ecc_stats - ECC statistics for a read operation
96+ *
97+ * @uncorrectable_errors: the number of uncorrectable errors that happened
98+ * during the read operation
99+ * @corrected_bitflips: the number of bitflips corrected during the read
100+ * operation
101+ * @max_bitflips: the maximum number of bitflips detected in any single ECC
102+ * step for the data read during the operation; this information
103+ * can be used to decide whether the data stored in a specific
104+ * region of the MTD device should be moved somewhere else to
105+ * avoid data loss.
106+ */
107+struct mtd_read_req_ecc_stats {
108+ __u32 uncorrectable_errors;
109+ __u32 corrected_bitflips;
110+ __u32 max_bitflips;
111+};
112+
113+/**
114+ * struct mtd_read_req - data structure for requesting a read operation
115+ *
116+ * @start: start address
117+ * @len: length of data buffer (only lower 32 bits are used)
118+ * @ooblen: length of OOB buffer (only lower 32 bits are used)
119+ * @usr_data: user-provided data buffer
120+ * @usr_oob: user-provided OOB buffer
121+ * @mode: MTD mode (see "MTD operation modes")
122+ * @padding: reserved, must be set to 0
123+ * @ecc_stats: ECC statistics for the read operation
124+ *
125+ * This structure supports ioctl(MEMREAD) operations, allowing data and/or OOB
126+ * reads in various modes. To read from OOB-only, set @usr_data == NULL, and to
127+ * read data-only, set @usr_oob == NULL. However, setting both @usr_data and
128+ * @usr_oob to NULL is not allowed.
129+ */
130+struct mtd_read_req {
131+ __u64 start;
132+ __u64 len;
133+ __u64 ooblen;
134+ __u64 usr_data;
135+ __u64 usr_oob;
136+ __u8 mode;
137+ __u8 padding[7];
138+ struct mtd_read_req_ecc_stats ecc_stats;
139+};
140+
94141 #define MTD_ABSENT 0
95142 #define MTD_RAM 1
96143 #define MTD_ROM 2
@@ -207,6 +254,12 @@ struct otp_info { · 110 unmodified lines
207254 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
208255 /* Erase a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */
209256 #define OTPERASE _IOW('M', 25, struct otp_info)
257+/*
258+ * Most generic read interface; can read in-band and/or out-of-band in various
259+ * modes (see "struct mtd_read_req"). This ioctl is not supported for flashes
260+ * without OOB, e.g., NOR flash.
261+ */
262+#define MEMREAD _IOWR('M', 26, struct mtd_read_req)
210263
211264 /*
212265 * Obsolete legacy interface. Keep it in order not to break userspace
@@ -270,8 +323,9 @@ struct mtd_ecc_stats { · 57 unmodified lines
270323 * Note: %MTD_FILE_MODE_RAW provides the same functionality as %MTD_OPS_RAW -
271324 * raw access to the flash, without error correction or autoplacement schemes.
272325 * Wherever possible, the MTD_OPS_* mode will override the MTD_FILE_MODE_* mode
273− * (e.g., when using ioctl(MEMWRITE)), but in some cases, the MTD_FILE_MODE is
274− * used out of necessity (e.g., `write()', ioctl(MEMWRITEOOB64)).
326+ * (e.g., when using ioctl(MEMWRITE) or ioctl(MEMREAD)), but in some cases, the
327+ * MTD_FILE_MODE is used out of necessity (e.g., `write()',
328+ * ioctl(MEMWRITEOOB64)).
275329 */
276330 enum mtd_file_modes {
277331 MTD_FILE_MODE_NORMAL = MTD_OTP_OFF,
include/uapi/mtd/ubi-user.h+7−1
@@ -247,6 +247,7 @@ enum { · 246 unmodified lines
247247 * @vid_hdr_offset: VID header offset (use defaults if %0)
248248 * @max_beb_per1024: maximum expected number of bad PEB per 1024 PEBs
249249 * @padding: reserved for future, not used, has to be zeroed
250+ * @disable_fm: whether disable fastmap
250251 *
251252 * This data structure is used to specify MTD device UBI has to attach and the
252253 * parameters it has to use. The number which should be assigned to the new UBI
@@ -281,13 +282,18 @@ enum { · 28 unmodified lines
281282 * eraseblocks for new bad eraseblocks, but attempts to use available
282283 * eraseblocks (if any). The accepted range is 0-768. If 0 is given, the
283284 * default kernel value of %CONFIG_MTD_UBI_BEB_LIMIT will be used.
285+ *
286+ * If @disable_fm is not zero, ubi doesn't create new fastmap even the module
287+ * param 'fm_autoconvert' is set, and existed old fastmap will be destroyed
288+ * after doing full scanning.
284289 */
285290 struct ubi_attach_req {
286291 __s32 ubi_num;
287292 __s32 mtd_num;
288293 __s32 vid_hdr_offset;
289294 __s16 max_beb_per1024;
290− __s8 padding[10];
295+ __s8 disable_fm;
296+ __s8 padding[9];
291297 };
292298
293299 /*
include/uapi/rdma/efa-abi.h+3−1
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
22 /*
3− * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved.
3+ * Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All rights reserved.
44 */
55
66 #ifndef EFA_ABI_USER_H
@@ -54,6 +54,7 @@ struct efa_ibv_alloc_pd_resp { · 47 unmodified lines
5454
5555 enum {
5656 EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
57+ EFA_CREATE_CQ_WITH_SGID = 1 << 1,
5758 };
5859
5960 struct efa_ibv_create_cq {
@@ -118,6 +119,7 @@ enum { · 58 unmodified lines
118119 EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
119120 EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
120121 EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
122+ EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3,
121123 };
122124
123125 struct efa_ibv_ex_query_device_resp {
include/uapi/rdma/mlx5-abi.h+1−0
@@ -104,6 +104,7 @@ enum mlx5_ib_alloc_ucontext_resp_mask { · 103 unmodified lines
104104 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
105105 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
106106 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
107+ MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG = 1UL << 5,
107108 };
108109
109110 enum mlx5_user_cmds_supp_uhw {
include/uapi/rdma/mlx5_user_ioctl_cmds.h+1−0
@@ -174,6 +174,7 @@ enum mlx5_ib_devx_umem_reg_attrs { · 173 unmodified lines
174174 MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
175175 MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
176176 MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
177+ MLX5_IB_ATTR_DEVX_UMEM_REG_DMABUF_FD,
177178 };
178179
179180 enum mlx5_ib_devx_umem_dereg_attrs {
include/uapi/rdma/rdma_user_rxe.h+2−2
@@ -74,7 +74,7 @@ struct rxe_av { · 73 unmodified lines
7474
7575 struct rxe_send_wr {
7676 __aligned_u64 wr_id;
77− __u32 num_sge;
77+ __u32 reserved;
7878 __u32 opcode;
7979 __u32 send_flags;
8080 union {
@@ -166,7 +166,7 @@ struct rxe_send_wqe { · 85 unmodified lines
166166
167167 struct rxe_recv_wqe {
168168 __aligned_u64 wr_id;
169− __u32 num_sge;
169+ __u32 reserved;
170170 __u32 padding;
171171 struct rxe_dma_info dma;
172172 };
include/uapi/scsi/scsi_netlink_fc.h+5−2
@@ -35,7 +35,7 @@ · 34 unmodified lines
3535 * FC Transport Broadcast Event Message :
3636 * FC_NL_ASYNC_EVENT
3737 *
38− * Note: if Vendor Unique message, &event_data will be start of
38+ * Note: if Vendor Unique message, event_data_flex will be start of
3939 * vendor unique payload, and the length of the payload is
4040 * per event_datalen
4141 *
@@ -50,7 +50,10 @@ struct fc_nl_event { · 8 unmodified lines
5050 __u16 event_datalen;
5151 __u32 event_num;
5252 __u32 event_code;
53− __u32 event_data;
53+ union {
54+ __u32 event_data;
55+ __DECLARE_FLEX_ARRAY(__u8, event_data_flex);
56+ };
5457 } __attribute__((aligned(sizeof(__u64))));
5558
5659
include/uapi/sound/asequencer.h+0−16
@@ -3,22 +3,6 @@ · 2 unmodified lines
33 * Main header file for the ALSA sequencer
44 * Copyright (c) 1998-1999 by Frank van de Pol <fvdpol@coil.demon.nl>
55 * (c) 1998-1999 by Jaroslav Kysela <perex@perex.cz>
6− *
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
226 */
237 #ifndef _UAPI__SOUND_ASEQUENCER_H
248 #define _UAPI__SOUND_ASEQUENCER_H
include/uapi/sound/asoc.h+0−4
@@ -5,10 +5,6 @@ · 4 unmodified lines
55 * Copyright (C) 2012 Texas Instruments Inc.
66 * Copyright (C) 2015 Intel Corporation.
77 *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License version 2 as
10− * published by the Free Software Foundation.
11− *
128 * Simple file API to load FW that includes mixers, coefficients, DAPM graphs,
139 * algorithms, equalisers, DAIs, widgets etc.
1410 */
include/uapi/sound/asound.h+0−16
@@ -3,22 +3,6 @@ · 2 unmodified lines
33 * Advanced Linux Sound Architecture - ALSA - Driver
44 * Copyright (c) 1994-2003 by Jaroslav Kysela <perex@perex.cz>,
55 * Abramo Bagnara <abramo@alsa-project.org>
6− *
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
226 */
237
248 #ifndef _UAPI__SOUND_ASOUND_H
include/uapi/sound/asound_fm.h+0−15
@@ -10,21 +10,6 @@ · 9 unmodified lines
1010 * 4Front Technologies
1111 *
1212 * Direct FM control
13− *
14− * This program is free software; you can redistribute it and/or modify
15− * it under the terms of the GNU General Public License as published by
16− * the Free Software Foundation; either version 2 of the License, or
17− * (at your option) any later version.
18− *
19− * This program is distributed in the hope that it will be useful,
20− * but WITHOUT ANY WARRANTY; without even the implied warranty of
21− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22− * GNU General Public License for more details.
23− *
24− * You should have received a copy of the GNU General Public License
25− * along with this program; if not, write to the Free Software
26− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27− *
2813 */
2914
3015 #define SNDRV_DM_FM_MODE_OPL2 0x00
include/uapi/sound/compress_offload.h+0−17
@@ -5,23 +5,6 @@ · 4 unmodified lines
55 * Copyright (C) 2011 Intel Corporation
66 * Authors: Vinod Koul <vinod.koul@linux.intel.com>
77 * Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
8− * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9− *
10− * This program is free software; you can redistribute it and/or modify
11− * it under the terms of the GNU General Public License as published by
12− * the Free Software Foundation; version 2 of the License.
13− *
14− * This program is distributed in the hope that it will be useful, but
15− * WITHOUT ANY WARRANTY; without even the implied warranty of
16− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17− * General Public License for more details.
18− *
19− * You should have received a copy of the GNU General Public License along
20− * with this program; if not, write to the Free Software Foundation, Inc.,
21− * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
22− *
23− * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24− *
258 */
269 #ifndef __COMPRESS_OFFLOAD_H
2710 #define __COMPRESS_OFFLOAD_H
include/uapi/sound/compress_params.h+2−36
@@ -7,47 +7,13 @@ · 6 unmodified lines
77 * Authors: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
88 * Vinod Koul <vinod.koul@linux.intel.com>
99 *
10− * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11− *
12− * This program is free software; you can redistribute it and/or modify
13− * it under the terms of the GNU General Public License as published by
14− * the Free Software Foundation; version 2 of the License.
15− *
16− * This program is distributed in the hope that it will be useful, but
17− * WITHOUT ANY WARRANTY; without even the implied warranty of
18− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19− * General Public License for more details.
20− *
21− * You should have received a copy of the GNU General Public License along
22− * with this program; if not, write to the Free Software Foundation, Inc.,
23− * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
24− *
2510 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2611 *
2712 * The definitions in this file are derived from the OpenMAX AL version 1.1
28− * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below.
13+ * and OpenMAX IL v 1.1.2 header files which contain the copyright notice below
14+ * and are licensed under the MIT license.
2915 *
3016 * Copyright (c) 2007-2010 The Khronos Group Inc.
31− *
32− * Permission is hereby granted, free of charge, to any person obtaining
33− * a copy of this software and/or associated documentation files (the
34− * "Materials "), to deal in the Materials without restriction, including
35− * without limitation the rights to use, copy, modify, merge, publish,
36− * distribute, sublicense, and/or sell copies of the Materials, and to
37− * permit persons to whom the Materials are furnished to do so, subject to
38− * the following conditions:
39− *
40− * The above copyright notice and this permission notice shall be included
41− * in all copies or substantial portions of the Materials.
42− *
43− * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
44− * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
45− * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
46− * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
47− * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
48− * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
49− * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
50− *
5117 */
5218 #ifndef __SND_COMPRESS_PARAMS_H
5319 #define __SND_COMPRESS_PARAMS_H
include/uapi/sound/emu10k1.h+0−16
@@ -3,22 +3,6 @@ · 2 unmodified lines
33 * Copyright (c) by Jaroslav Kysela <perex@perex.cz>,
44 * Creative Labs, Inc.
55 * Definitions for EMU10K1 (SB Live!) chips
6− *
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
226 */
237 #ifndef _UAPI__SOUND_EMU10K1_H
248 #define _UAPI__SOUND_EMU10K1_H
include/uapi/sound/hdsp.h+0−14
@@ -4,20 +4,6 @@ · 3 unmodified lines
44
55 /*
66 * Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
217 */
228
239 #ifdef __linux__
include/uapi/sound/hdspm.h+0−15
@@ -4,21 +4,6 @@ · 3 unmodified lines
44 /*
55 * Copyright (C) 2003 Winfried Ritsch (IEM)
66 * based on hdsp.h from Thomas Charbonnel (thomas@undata.org)
7− *
8− *
9− * This program is free software; you can redistribute it and/or modify
10− * it under the terms of the GNU General Public License as published by
11− * the Free Software Foundation; either version 2 of the License, or
12− * (at your option) any later version.
13− *
14− * This program is distributed in the hope that it will be useful,
15− * but WITHOUT ANY WARRANTY; without even the implied warranty of
16− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17− * GNU General Public License for more details.
18− *
19− * You should have received a copy of the GNU General Public License
20− * along with this program; if not, write to the Free Software
21− * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
227 */
238
249 #ifdef __linux__
include/uapi/sound/sb16_csp.h+0−15
@@ -4,21 +4,6 @@ · 3 unmodified lines
44 * Takashi Iwai <tiwai@suse.de>
55 *
66 * SB16ASP/AWE32 CSP control
7− *
8− * This program is free software; you can redistribute it and/or modify
9− * it under the terms of the GNU General Public License as published by
10− * the Free Software Foundation; either version 2 of the License, or
11− * (at your option) any later version.
12− *
13− * This program is distributed in the hope that it will be useful,
14− * but WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16− * GNU General Public License for more details.
17− *
18− * You should have received a copy of the GNU General Public License
19− * along with this program; if not, write to the Free Software
20− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
227 */
238 #ifndef _UAPI__SOUND_SB16_CSP_H
249 #define _UAPI__SOUND_SB16_CSP_H
include/uapi/sound/sfnt_info.h+0−15
@@ -6,21 +6,6 @@ · 5 unmodified lines
66 * Patch record compatible with AWE driver on OSS
77 *
88 * Copyright (C) 1999-2000 Takashi Iwai
9− *
10− * This program is free software; you can redistribute it and/or modify
11− * it under the terms of the GNU General Public License as published by
12− * the Free Software Foundation; either version 2 of the License, or
13− * (at your option) any later version.
14− *
15− * This program is distributed in the hope that it will be useful,
16− * but WITHOUT ANY WARRANTY; without even the implied warranty of
17− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18− * GNU General Public License for more details.
19− *
20− * You should have received a copy of the GNU General Public License
21− * along with this program; if not, write to the Free Software
22− * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23− *
249 */
2510
2611 #include <sound/asound.h>
include/uapi/sound/snd_sst_tokens.h+0−10
@@ -4,16 +4,6 @@ · 3 unmodified lines
44 *
55 * Copyright (C) 2016 Intel Corp
66 * Author: Shreyas NC <shreyas.nc@intel.com>
7− * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8− *
9− * This program is free software; you can redistribute it and/or modify
10− * it under the terms of the GNU General Public License as version 2, as
11− * published by the Free Software Foundation.
12− *
13− * This program is distributed in the hope that it will be useful, but
14− * WITHOUT ANY WARRANTY; without even the implied warranty of
15− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16− * General Public License for more details.
177 */
188 #ifndef __SND_SST_TOKENS_H__
199 #define __SND_SST_TOKENS_H__
include/uapi/sound/tlv.h+0−11
@@ -1,15 +1,4 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2−/*
3− * This program is free software; you can redistribute it and/or modify
4− * it under the terms of the GNU General Public License as published by
5− * the Free Software Foundation; either version 2 of the License, or
6− * (at your option) any later version.
7− *
8− * This program is distributed in the hope that it will be useful,
9− * but WITHOUT ANY WARRANTY; without even the implied warranty of
10− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11− * GNU General Public License for more details.
12− */
132
143 #ifndef __UAPI_SOUND_TLV_H
154 #define __UAPI_SOUND_TLV_H
include/uapi/sound/usb_stream.h+0−14
@@ -1,20 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
22 /*
33 * Copyright (C) 2007, 2008 Karsten Wiese <fzu@wemgehoertderstaat.de>
4− *
5− * This program is free software; you can redistribute it and/or modify it
6− * under the terms of the GNU General Public License as published by the
7− * Free Software Foundation; either version 2 of the License, or (at your
8− * option) any later version.
9− *
10− * This program is distributed in the hope that it will be useful, but
11− * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12− * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13− * for more details.
14− *
15− * You should have received a copy of the GNU General Public License
16− * along with this program; if not, write to the Free Software Foundation,
17− * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
184 */
195
206 #ifndef _UAPI__SOUND_USB_STREAM_H