History

Merge branch 'next' into for-linus

Prepare input updates for 5.6 merge window.

Dmitry Torokhov committed 6 years ago

Commit b19efca2 parents 996d5d5 c5ccf2a11657 files · +562001 −241433Browse files

Showing the changes to include/uapi/linux (78 of 11657 files). Show all

Unified · Split

78 files
  1. include/uapi/linux/audit.h +1 −0
  2. include/uapi/linux/blkzoned.h +14 −3
  3. include/uapi/linux/bpf.h +132 −56
  4. include/uapi/linux/btrfs.h +4 −1
  5. include/uapi/linux/btrfs_tree.h +18 −5
  6. include/uapi/linux/can.h +1 −1
  7. include/uapi/linux/can/bcm.h +1 −1
  8. include/uapi/linux/can/error.h +1 −1
  9. include/uapi/linux/can/gw.h +1 −1
  10. include/uapi/linux/can/j1939.h +1 −1
  11. include/uapi/linux/can/netlink.h +1 −1
  12. include/uapi/linux/can/raw.h +1 −1
  13. include/uapi/linux/can/vxcan.h +1 −1
  14. include/uapi/linux/cec-funcs.h +18 −16
  15. include/uapi/linux/cec.h +131 −2
  16. include/uapi/linux/chio.h +4 −7
  17. include/uapi/linux/cyclades.h +3 −3
  18. include/uapi/linux/dcbnl.h +1 −1
  19. include/uapi/linux/devlink.h +5 −0
  20. include/uapi/linux/elfcore.h +4 −4
  21. include/uapi/linux/errqueue.h +7 −0
  22. include/uapi/linux/ethtool.h +6 −0
  23. include/uapi/linux/fcntl.h +8 −1
  24. include/uapi/linux/fscrypt.h +2 −1
  25. include/uapi/linux/fuse.h +37 −0
  26. include/uapi/linux/gen_stats.h +1 −4
  27. include/uapi/linux/gpio.h +24 −0
  28. include/uapi/linux/if.h +1 −0
  29. include/uapi/linux/if_link.h +2 −0
  30. include/uapi/linux/input-event-codes.h +75 −0
  31. include/uapi/linux/io_uring.h +44 −14
  32. include/uapi/linux/iommu.h +169 −0
  33. include/uapi/linux/kcov.h +28 −0
  34. include/uapi/linux/kvm.h +12 −0
  35. include/uapi/linux/lwtunnel.h +41 −0
  36. include/uapi/linux/magic.h +1 −0
  37. include/uapi/linux/msg.h +3 −3
  38. include/uapi/linux/netfilter/ipset/ip_set.h +2 −0
  39. include/uapi/linux/netfilter/nf_tables.h +4 −0
  40. include/uapi/linux/netfilter/xt_sctp.h +3 −3
  41. include/uapi/linux/netfilter_arp/arp_tables.h +1 −1
  42. include/uapi/linux/netfilter_bridge/ebtables.h +1 −1
  43. include/uapi/linux/netfilter_ipv4/ip_tables.h +1 −1
  44. include/uapi/linux/netfilter_ipv6/ip6_tables.h +1 −1
  45. include/uapi/linux/nl80211.h +39 −0
  46. include/uapi/linux/nvme_ioctl.h +1 −0
  47. include/uapi/linux/openvswitch.h +3 −1
  48. include/uapi/linux/pci_regs.h +3 −0
  49. include/uapi/linux/perf_event.h +8 −2
  50. include/uapi/linux/pkt_cls.h +34 −0
  51. include/uapi/linux/pkt_sched.h +14 −8
  52. include/uapi/linux/ppp-ioctl.h +2 −0
  53. include/uapi/linux/ppp_defs.h +16 −2
  54. include/uapi/linux/psp-sev.h +3 −0
  55. include/uapi/linux/ptp_clock.h +4 −1
  56. include/uapi/linux/resource.h +2 −2
  57. include/uapi/linux/rtnetlink.h +7 −0
  58. include/uapi/linux/scc.h +1 −0
  59. include/uapi/linux/sched.h +42 −18
  60. include/uapi/linux/sctp.h +30 −1
  61. include/uapi/linux/seccomp.h +29 −0
  62. include/uapi/linux/sed-opal.h +20 −0
  63. include/uapi/linux/sem.h +2 −2
  64. include/uapi/linux/serial_core.h +1 −1
  65. include/uapi/linux/shm.h +3 −3
  66. include/uapi/linux/snmp.h +17 −0
  67. include/uapi/linux/stat.h +1 −1
  68. include/uapi/linux/tc_act/tc_tunnel_key.h +29 −0
  69. include/uapi/linux/tcp.h +9 −1
  70. include/uapi/linux/time.h +3 −3
  71. include/uapi/linux/time_types.h +5 −0
  72. include/uapi/linux/tipc.h +22 −0
  73. include/uapi/linux/tipc_config.h +2 −2
  74. include/uapi/linux/tipc_netlink.h +4 −0
  75. include/uapi/linux/utime.h +2 −2
  76. include/uapi/linux/v4l2-controls.h +1 −0
  77. include/uapi/linux/videodev2.h +17 −5
  78. include/uapi/linux/virtio_ring.h +1 −1
include/uapi/linux/audit.h+1−0
@@ -143,6 +143,7 @@ · 142 unmodified lines
143#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */143#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
144#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */144#define AUDIT_ANOM_ABEND 1701 /* Process ended abnormally */
145#define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */145#define AUDIT_ANOM_LINK 1702 /* Suspicious use of file links */
146#define AUDIT_ANOM_CREAT 1703 /* Suspicious file creation */
146#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */147#define AUDIT_INTEGRITY_DATA 1800 /* Data integrity verification */
147#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */148#define AUDIT_INTEGRITY_METADATA 1801 /* Metadata integrity verification */
148#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */149#define AUDIT_INTEGRITY_STATUS 1802 /* Integrity enable status */
include/uapi/linux/blkzoned.h+14−3
@@ -120,9 +120,11 @@ struct blk_zone_report { · 119 unmodified lines
120};120};
121 121
122/**122/**
123 * struct blk_zone_range - BLKRESETZONE ioctl request123 * struct blk_zone_range - BLKRESETZONE/BLKOPENZONE/
124 * @sector: starting sector of the first zone to issue reset write pointer124 * BLKCLOSEZONE/BLKFINISHZONE ioctl
125 * @nr_sectors: Total number of sectors of 1 or more zones to reset125 * requests
126 * @sector: Starting sector of the first zone to operate on.
127 * @nr_sectors: Total number of sectors of all zones to operate on.
126 */128 */
127struct blk_zone_range {129struct blk_zone_range {
128 __u64 sector;130 __u64 sector;
@@ -139,10 +141,19 @@ struct blk_zone_range { · 10 unmodified lines
139 * sector range. The sector range must be zone aligned.141 * sector range. The sector range must be zone aligned.
140 * @BLKGETZONESZ: Get the device zone size in number of 512 B sectors.142 * @BLKGETZONESZ: Get the device zone size in number of 512 B sectors.
141 * @BLKGETNRZONES: Get the total number of zones of the device.143 * @BLKGETNRZONES: Get the total number of zones of the device.
144 * @BLKOPENZONE: Open the zones in the specified sector range.
145 * The 512 B sector range must be zone aligned.
146 * @BLKCLOSEZONE: Close the zones in the specified sector range.
147 * The 512 B sector range must be zone aligned.
148 * @BLKFINISHZONE: Mark the zones as full in the specified sector range.
149 * The 512 B sector range must be zone aligned.
142 */150 */
143#define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report)151#define BLKREPORTZONE _IOWR(0x12, 130, struct blk_zone_report)
144#define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range)152#define BLKRESETZONE _IOW(0x12, 131, struct blk_zone_range)
145#define BLKGETZONESZ _IOR(0x12, 132, __u32)153#define BLKGETZONESZ _IOR(0x12, 132, __u32)
146#define BLKGETNRZONES _IOR(0x12, 133, __u32)154#define BLKGETNRZONES _IOR(0x12, 133, __u32)
155#define BLKOPENZONE _IOW(0x12, 134, struct blk_zone_range)
156#define BLKCLOSEZONE _IOW(0x12, 135, struct blk_zone_range)
157#define BLKFINISHZONE _IOW(0x12, 136, struct blk_zone_range)
147 158
148#endif /* _UAPI_BLKZONED_H */159#endif /* _UAPI_BLKZONED_H */
include/uapi/linux/bpf.h+132−56
@@ -173,6 +173,7 @@ enum bpf_prog_type { · 172 unmodified lines
173 BPF_PROG_TYPE_CGROUP_SYSCTL,173 BPF_PROG_TYPE_CGROUP_SYSCTL,
174 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,174 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
175 BPF_PROG_TYPE_CGROUP_SOCKOPT,175 BPF_PROG_TYPE_CGROUP_SOCKOPT,
176 BPF_PROG_TYPE_TRACING,
176};177};
177 178
178enum bpf_attach_type {179enum bpf_attach_type {
@@ -199,6 +200,9 @@ enum bpf_attach_type { · 20 unmodified lines
199 BPF_CGROUP_UDP6_RECVMSG,200 BPF_CGROUP_UDP6_RECVMSG,
200 BPF_CGROUP_GETSOCKOPT,201 BPF_CGROUP_GETSOCKOPT,
201 BPF_CGROUP_SETSOCKOPT,202 BPF_CGROUP_SETSOCKOPT,
203 BPF_TRACE_RAW_TP,
204 BPF_TRACE_FENTRY,
205 BPF_TRACE_FEXIT,
202 __MAX_BPF_ATTACH_TYPE206 __MAX_BPF_ATTACH_TYPE
203};207};
204 208
@@ -344,6 +348,9 @@ enum bpf_attach_type { · 139 unmodified lines
344/* Clone map from listener for newly accepted socket */348/* Clone map from listener for newly accepted socket */
345#define BPF_F_CLONE (1U << 9)349#define BPF_F_CLONE (1U << 9)
346 350
351/* Enable memory-mapping BPF map */
352#define BPF_F_MMAPABLE (1U << 10)
353
347/* flags for BPF_PROG_QUERY */354/* flags for BPF_PROG_QUERY */
348#define BPF_F_QUERY_EFFECTIVE (1U << 0)355#define BPF_F_QUERY_EFFECTIVE (1U << 0)
349 356
@@ -420,6 +427,8 @@ union bpf_attr { · 70 unmodified lines
420 __u32 line_info_rec_size; /* userspace bpf_line_info size */427 __u32 line_info_rec_size; /* userspace bpf_line_info size */
421 __aligned_u64 line_info; /* line info */428 __aligned_u64 line_info; /* line info */
422 __u32 line_info_cnt; /* number of bpf_line_info records */429 __u32 line_info_cnt; /* number of bpf_line_info records */
430 __u32 attach_btf_id; /* in-kernel BTF type id to attach to */
431 __u32 attach_prog_fd; /* 0 to attach to vmlinux */
423 };432 };
424 433
425 struct { /* anonymous struct used by BPF_OBJ_* commands */434 struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -560,10 +569,13 @@ union bpf_attr { · 134 unmodified lines
560 * Return569 * Return
561 * 0 on success, or a negative error in case of failure.570 * 0 on success, or a negative error in case of failure.
562 *571 *
563 * int bpf_probe_read(void *dst, u32 size, const void *src)572 * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
564 * Description573 * Description
565 * For tracing programs, safely attempt to read *size* bytes from574 * For tracing programs, safely attempt to read *size* bytes from
566 * address *src* and store the data in *dst*.575 * kernel space address *unsafe_ptr* and store the data in *dst*.
576 *
577 * Generally, use bpf_probe_read_user() or bpf_probe_read_kernel()
578 * instead.
567 * Return579 * Return
568 * 0 on success, or a negative error in case of failure.580 * 0 on success, or a negative error in case of failure.
569 *581 *
@@ -794,7 +806,7 @@ union bpf_attr { · 224 unmodified lines
794 * A 64-bit integer containing the current GID and UID, and806 * A 64-bit integer containing the current GID and UID, and
795 * created as such: *current_gid* **<< 32 \|** *current_uid*.807 * created as such: *current_gid* **<< 32 \|** *current_uid*.
796 *808 *
797 * int bpf_get_current_comm(char *buf, u32 size_of_buf)809 * int bpf_get_current_comm(void *buf, u32 size_of_buf)
798 * Description810 * Description
799 * Copy the **comm** attribute of the current task into *buf* of811 * Copy the **comm** attribute of the current task into *buf* of
800 * *size_of_buf*. The **comm** attribute contains the name of812 * *size_of_buf*. The **comm** attribute contains the name of
@@ -1023,7 +1035,7 @@ union bpf_attr { · 222 unmodified lines
1023 * The realm of the route for the packet associated to *skb*, or 01035 * The realm of the route for the packet associated to *skb*, or 0
1024 * if none was found.1036 * if none was found.
1025 *1037 *
1026 * int bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)1038 * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
1027 * Description1039 * Description
1028 * Write raw *data* blob into a special BPF perf event held by1040 * Write raw *data* blob into a special BPF perf event held by
1029 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf1041 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1068,7 +1080,7 @@ union bpf_attr { · 38 unmodified lines
1068 * Return1080 * Return
1069 * 0 on success, or a negative error in case of failure.1081 * 0 on success, or a negative error in case of failure.
1070 *1082 *
1071 * int bpf_skb_load_bytes(const struct sk_buff *skb, u32 offset, void *to, u32 len)1083 * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
1072 * Description1084 * Description
1073 * This helper was provided as an easy way to load data from a1085 * This helper was provided as an easy way to load data from a
1074 * packet. It can be used to load *len* bytes from *offset* from1086 * packet. It can be used to load *len* bytes from *offset* from
@@ -1085,7 +1097,7 @@ union bpf_attr { · 10 unmodified lines
1085 * Return1097 * Return
1086 * 0 on success, or a negative error in case of failure.1098 * 0 on success, or a negative error in case of failure.
1087 *1099 *
1088 * int bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags)1100 * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
1089 * Description1101 * Description
1090 * Walk a user or a kernel stack and return its id. To achieve1102 * Walk a user or a kernel stack and return its id. To achieve
1091 * this, the helper needs *ctx*, which is a pointer to the context1103 * this, the helper needs *ctx*, which is a pointer to the context
@@ -1154,7 +1166,7 @@ union bpf_attr { · 62 unmodified lines
1154 * The checksum result, or a negative error code in case of1166 * The checksum result, or a negative error code in case of
1155 * failure.1167 * failure.
1156 *1168 *
1157 * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)1169 * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
1158 * Description1170 * Description
1159 * Retrieve tunnel options metadata for the packet associated to1171 * Retrieve tunnel options metadata for the packet associated to
1160 * *skb*, and store the raw tunnel option data to the buffer *opt*1172 * *skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1172,7 +1184,7 @@ union bpf_attr { · 11 unmodified lines
1172 * Return1184 * Return
1173 * The size of the option data retrieved.1185 * The size of the option data retrieved.
1174 *1186 *
1175 * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)1187 * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
1176 * Description1188 * Description
1177 * Set tunnel options metadata for the packet associated to *skb*1189 * Set tunnel options metadata for the packet associated to *skb*
1178 * to the option data contained in the raw buffer *opt* of *size*.1190 * to the option data contained in the raw buffer *opt* of *size*.
@@ -1425,45 +1437,14 @@ union bpf_attr { · 246 unmodified lines
1425 * Return1437 * Return
1426 * 0 on success, or a negative error in case of failure.1438 * 0 on success, or a negative error in case of failure.
1427 *1439 *
1428 * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)1440 * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
1429 * Description1441 * Description
1430 * Copy a NUL terminated string from an unsafe address1442 * Copy a NUL terminated string from an unsafe kernel address
1431 * *unsafe_ptr* to *dst*. The *size* should include the1443 * *unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for
1432 * terminating NUL byte. In case the string length is smaller than1444 * more details.
1433 * *size*, the target is not padded with further NUL bytes. If the
1434 * string length is larger than *size*, just *size*-1 bytes are
1435 * copied and the last byte is set to NUL.
1436 *
1437 * On success, the length of the copied string is returned. This
1438 * makes this helper useful in tracing programs for reading
1439 * strings, and more importantly to get its length at runtime. See
1440 * the following snippet:
1441 *
1442 * ::
1443 *
1444 * SEC("kprobe/sys_open")
1445 * void bpf_sys_open(struct pt_regs *ctx)
1446 * {
1447 * char buf[PATHLEN]; // PATHLEN is defined to 256
1448 * int res = bpf_probe_read_str(buf, sizeof(buf),
1449 * ctx->di);
1450 *
1451 * // Consume buf, for example push it to
1452 * // userspace via bpf_perf_event_output(); we
1453 * // can use res (the string length) as event
1454 * // size, after checking its boundaries.
1455 * }
1456 *1445 *
1457 * In comparison, using **bpf_probe_read()** helper here instead1446 * Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str()
1458 * to read the string would require to estimate the length at1447 * instead.
1459 * compile time, and would often result in copying more memory
1460 * than necessary.
1461 *
1462 * Another useful use case is when parsing individual process
1463 * arguments or individual environment variables navigating
1464 * *current*\ **->mm->arg_start** and *current*\
1465 * **->mm->env_start**: using this helper and the return value,
1466 * one can quickly iterate at the right offset of the memory area.
1467 * Return1448 * Return
1468 * On success, the strictly positive length of the string,1449 * On success, the strictly positive length of the string,
1469 * including the trailing NUL character. On error, a negative1450 * including the trailing NUL character. On error, a negative
@@ -1511,7 +1492,7 @@ union bpf_attr { · 41 unmodified lines
1511 * Return1492 * Return
1512 * 01493 * 0
1513 *1494 *
1514 * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)1495 * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
1515 * Description1496 * Description
1516 * Emulate a call to **setsockopt()** on the socket associated to1497 * Emulate a call to **setsockopt()** on the socket associated to
1517 * *bpf_socket*, which must be a full socket. The *level* at1498 * *bpf_socket*, which must be a full socket. The *level* at
@@ -1595,7 +1576,7 @@ union bpf_attr { · 77 unmodified lines
1595 * Return1576 * Return
1596 * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.1577 * **XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
1597 *1578 *
1598 * int bpf_sk_redirect_map(struct bpf_map *map, u32 key, u64 flags)1579 * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
1599 * Description1580 * Description
1600 * Redirect the packet to the socket referenced by *map* (of type1581 * Redirect the packet to the socket referenced by *map* (of type
1601 * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and1582 * **BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1715,7 +1696,7 @@ union bpf_attr { · 113 unmodified lines
1715 * Return1696 * Return
1716 * 0 on success, or a negative error in case of failure.1697 * 0 on success, or a negative error in case of failure.
1717 *1698 *
1718 * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)1699 * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
1719 * Description1700 * Description
1720 * Emulate a call to **getsockopt()** on the socket associated to1701 * Emulate a call to **getsockopt()** on the socket associated to
1721 * *bpf_socket*, which must be a full socket. The *level* at1702 * *bpf_socket*, which must be a full socket. The *level* at
@@ -1947,7 +1928,7 @@ union bpf_attr { · 225 unmodified lines
1947 * Return1928 * Return
1948 * 0 on success, or a negative error in case of failure.1929 * 0 on success, or a negative error in case of failure.
1949 *1930 *
1950 * int bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags)1931 * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
1951 * Description1932 * Description
1952 * Return a user or a kernel stack in bpf program provided buffer.1933 * Return a user or a kernel stack in bpf program provided buffer.
1953 * To achieve this, the helper needs *ctx*, which is a pointer1934 * To achieve this, the helper needs *ctx*, which is a pointer
@@ -1980,7 +1961,7 @@ union bpf_attr { · 26 unmodified lines
1980 * A non-negative value equal to or less than *size* on success,1961 * A non-negative value equal to or less than *size* on success,
1981 * or a negative error in case of failure.1962 * or a negative error in case of failure.
1982 *1963 *
1983 * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)1964 * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
1984 * Description1965 * Description
1985 * This helper is similar to **bpf_skb_load_bytes**\ () in that1966 * This helper is similar to **bpf_skb_load_bytes**\ () in that
1986 * it provides an easy way to load *len* bytes from *offset*1967 * it provides an easy way to load *len* bytes from *offset*
@@ -2033,7 +2014,7 @@ union bpf_attr { · 46 unmodified lines
2033 * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the2014 * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
2034 * packet is not forwarded or needs assist from full stack2015 * packet is not forwarded or needs assist from full stack
2035 *2016 *
2036 * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)2017 * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
2037 * Description2018 * Description
2038 * Add an entry to, or update a sockhash *map* referencing sockets.2019 * Add an entry to, or update a sockhash *map* referencing sockets.
2039 * The *skops* is used as a new value for the entry associated to2020 * The *skops* is used as a new value for the entry associated to
@@ -2392,7 +2373,7 @@ union bpf_attr { · 352 unmodified lines
2392 * Return2373 * Return
2393 * 0 on success, or a negative error in case of failure.2374 * 0 on success, or a negative error in case of failure.
2394 *2375 *
2395 * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)2376 * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
2396 * Description2377 * Description
2397 * For socket policies, insert *len* bytes into *msg* at offset2378 * For socket policies, insert *len* bytes into *msg* at offset
2398 * *start*.2379 * *start*.
@@ -2408,9 +2389,9 @@ union bpf_attr { · 9 unmodified lines
2408 * Return2389 * Return
2409 * 0 on success, or a negative error in case of failure.2390 * 0 on success, or a negative error in case of failure.
2410 *2391 *
2411 * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)2392 * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
2412 * Description2393 * Description
2413 * Will remove *pop* bytes from a *msg* starting at byte *start*.2394 * Will remove *len* bytes from a *msg* starting at byte *start*.
2414 * This may result in **ENOMEM** errors under certain situations if2395 * This may result in **ENOMEM** errors under certain situations if
2415 * an allocation and copy are required due to a full ring buffer.2396 * an allocation and copy are required due to a full ring buffer.
2416 * However, the helper will try to avoid doing the allocation2397 * However, the helper will try to avoid doing the allocation
@@ -2505,7 +2486,7 @@ union bpf_attr { · 88 unmodified lines
2505 * A **struct bpf_tcp_sock** pointer on success, or **NULL** in2486 * A **struct bpf_tcp_sock** pointer on success, or **NULL** in
2506 * case of failure.2487 * case of failure.
2507 *2488 *
2508 * int bpf_skb_ecn_set_ce(struct sk_buf *skb)2489 * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
2509 * Description2490 * Description
2510 * Set ECN (Explicit Congestion Notification) field of IP header2491 * Set ECN (Explicit Congestion Notification) field of IP header
2511 * to **CE** (Congestion Encountered) if current value is **ECT**2492 * to **CE** (Congestion Encountered) if current value is **ECT**
@@ -2750,6 +2731,96 @@ union bpf_attr { · 238 unmodified lines
2750 * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies2731 * **-EOPNOTSUPP** kernel configuration does not enable SYN cookies
2751 *2732 *
2752 * **-EPROTONOSUPPORT** IP packet version is not 4 or 62733 * **-EPROTONOSUPPORT** IP packet version is not 4 or 6
2734 *
2735 * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
2736 * Description
2737 * Write raw *data* blob into a special BPF perf event held by
2738 * *map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
2739 * event must have the following attributes: **PERF_SAMPLE_RAW**
2740 * as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and
2741 * **PERF_COUNT_SW_BPF_OUTPUT** as **config**.
2742 *
2743 * The *flags* are used to indicate the index in *map* for which
2744 * the value must be put, masked with **BPF_F_INDEX_MASK**.
2745 * Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU**
2746 * to indicate that the index of the current CPU core should be
2747 * used.
2748 *
2749 * The value to write, of *size*, is passed through eBPF stack and
2750 * pointed by *data*.
2751 *
2752 * *ctx* is a pointer to in-kernel struct sk_buff.
2753 *
2754 * This helper is similar to **bpf_perf_event_output**\ () but
2755 * restricted to raw_tracepoint bpf programs.
2756 * Return
2757 * 0 on success, or a negative error in case of failure.
2758 *
2759 * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
2760 * Description
2761 * Safely attempt to read *size* bytes from user space address
2762 * *unsafe_ptr* and store the data in *dst*.
2763 * Return
2764 * 0 on success, or a negative error in case of failure.
2765 *
2766 * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
2767 * Description
2768 * Safely attempt to read *size* bytes from kernel space address
2769 * *unsafe_ptr* and store the data in *dst*.
2770 * Return
2771 * 0 on success, or a negative error in case of failure.
2772 *
2773 * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
2774 * Description
2775 * Copy a NUL terminated string from an unsafe user address
2776 * *unsafe_ptr* to *dst*. The *size* should include the
2777 * terminating NUL byte. In case the string length is smaller than
2778 * *size*, the target is not padded with further NUL bytes. If the
2779 * string length is larger than *size*, just *size*-1 bytes are
2780 * copied and the last byte is set to NUL.
2781 *
2782 * On success, the length of the copied string is returned. This
2783 * makes this helper useful in tracing programs for reading
2784 * strings, and more importantly to get its length at runtime. See
2785 * the following snippet:
2786 *
2787 * ::
2788 *
2789 * SEC("kprobe/sys_open")
2790 * void bpf_sys_open(struct pt_regs *ctx)
2791 * {
2792 * char buf[PATHLEN]; // PATHLEN is defined to 256
2793 * int res = bpf_probe_read_user_str(buf, sizeof(buf),
2794 * ctx->di);
2795 *
2796 * // Consume buf, for example push it to
2797 * // userspace via bpf_perf_event_output(); we
2798 * // can use res (the string length) as event
2799 * // size, after checking its boundaries.
2800 * }
2801 *
2802 * In comparison, using **bpf_probe_read_user()** helper here
2803 * instead to read the string would require to estimate the length
2804 * at compile time, and would often result in copying more memory
2805 * than necessary.
2806 *
2807 * Another useful use case is when parsing individual process
2808 * arguments or individual environment variables navigating
2809 * *current*\ **->mm->arg_start** and *current*\
2810 * **->mm->env_start**: using this helper and the return value,
2811 * one can quickly iterate at the right offset of the memory area.
2812 * Return
2813 * On success, the strictly positive length of the string,
2814 * including the trailing NUL character. On error, a negative
2815 * value.
2816 *
2817 * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
2818 * Description
2819 * Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
2820 * to *dst*. Same semantics as with bpf_probe_read_user_str() apply.
2821 * Return
2822 * On success, the strictly positive length of the string, including
2823 * the trailing NUL character. On error, a negative value.
2753 */2824 */
2754#define __BPF_FUNC_MAPPER(FN) \2825#define __BPF_FUNC_MAPPER(FN) \
2755 FN(unspec), \2826 FN(unspec), \
@@ -2862,7 +2933,12 @@ union bpf_attr { · 106 unmodified lines
2862 FN(sk_storage_get), \2933 FN(sk_storage_get), \
2863 FN(sk_storage_delete), \2934 FN(sk_storage_delete), \
2864 FN(send_signal), \2935 FN(send_signal), \
2865 FN(tcp_gen_syncookie),2936 FN(tcp_gen_syncookie), \
2937 FN(skb_output), \
2938 FN(probe_read_user), \
2939 FN(probe_read_kernel), \
2940 FN(probe_read_user_str), \
2941 FN(probe_read_kernel_str),
2866 2942
2867/* integer value in 'imm' field of BPF_CALL instruction selects which helper2943/* integer value in 'imm' field of BPF_CALL instruction selects which helper
2868 * function eBPF program intends to call2944 * function eBPF program intends to call
include/uapi/linux/btrfs.h+4−1
@@ -270,6 +270,7 @@ struct btrfs_ioctl_fs_info_args { · 269 unmodified lines
270#define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)270#define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA (1ULL << 8)
271#define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)271#define BTRFS_FEATURE_INCOMPAT_NO_HOLES (1ULL << 9)
272#define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10)272#define BTRFS_FEATURE_INCOMPAT_METADATA_UUID (1ULL << 10)
273#define BTRFS_FEATURE_INCOMPAT_RAID1C34 (1ULL << 11)
273 274
274struct btrfs_ioctl_feature_flags {275struct btrfs_ioctl_feature_flags {
275 __u64 compat_flags;276 __u64 compat_flags;
@@ -831,7 +832,9 @@ enum btrfs_err_code { · 555 unmodified lines
831 BTRFS_ERROR_DEV_TGT_REPLACE,832 BTRFS_ERROR_DEV_TGT_REPLACE,
832 BTRFS_ERROR_DEV_MISSING_NOT_FOUND,833 BTRFS_ERROR_DEV_MISSING_NOT_FOUND,
833 BTRFS_ERROR_DEV_ONLY_WRITABLE,834 BTRFS_ERROR_DEV_ONLY_WRITABLE,
834 BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS835 BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS,
836 BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET,
837 BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET,
835};838};
836 839
837#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \840#define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \
include/uapi/linux/btrfs_tree.h+18−5
@@ -302,6 +302,9 @@ · 301 unmodified lines
302/* csum types */302/* csum types */
303enum btrfs_csum_type {303enum btrfs_csum_type {
304 BTRFS_CSUM_TYPE_CRC32 = 0,304 BTRFS_CSUM_TYPE_CRC32 = 0,
305 BTRFS_CSUM_TYPE_XXHASH = 1,
306 BTRFS_CSUM_TYPE_SHA256 = 2,
307 BTRFS_CSUM_TYPE_BLAKE2 = 3,
305};308};
306 309
307/*310/*
@@ -737,10 +740,12 @@ struct btrfs_balance_item { · 429 unmodified lines
737 __le64 unused[4];740 __le64 unused[4];
738} __attribute__ ((__packed__));741} __attribute__ ((__packed__));
739 742
740#define BTRFS_FILE_EXTENT_INLINE 0743enum {
741#define BTRFS_FILE_EXTENT_REG 1744 BTRFS_FILE_EXTENT_INLINE = 0,
742#define BTRFS_FILE_EXTENT_PREALLOC 2745 BTRFS_FILE_EXTENT_REG = 1,
743#define BTRFS_FILE_EXTENT_TYPES 2746 BTRFS_FILE_EXTENT_PREALLOC = 2,
747 BTRFS_NR_FILE_EXTENT_TYPES = 3,
748};
744 749
745struct btrfs_file_extent_item {750struct btrfs_file_extent_item {
746 /*751 /*
@@ -836,6 +841,8 @@ struct btrfs_dev_replace_item { · 89 unmodified lines
836#define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)841#define BTRFS_BLOCK_GROUP_RAID10 (1ULL << 6)
837#define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)842#define BTRFS_BLOCK_GROUP_RAID5 (1ULL << 7)
838#define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)843#define BTRFS_BLOCK_GROUP_RAID6 (1ULL << 8)
844#define BTRFS_BLOCK_GROUP_RAID1C3 (1ULL << 9)
845#define BTRFS_BLOCK_GROUP_RAID1C4 (1ULL << 10)
839#define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \846#define BTRFS_BLOCK_GROUP_RESERVED (BTRFS_AVAIL_ALLOC_BIT_SINGLE | \
840 BTRFS_SPACE_INFO_GLOBAL_RSV)847 BTRFS_SPACE_INFO_GLOBAL_RSV)
841 848
@@ -847,6 +854,8 @@ enum btrfs_raid_types { · 5 unmodified lines
847 BTRFS_RAID_SINGLE,854 BTRFS_RAID_SINGLE,
848 BTRFS_RAID_RAID5,855 BTRFS_RAID_RAID5,
849 BTRFS_RAID_RAID6,856 BTRFS_RAID_RAID6,
857 BTRFS_RAID_RAID1C3,
858 BTRFS_RAID_RAID1C4,
850 BTRFS_NR_RAID_TYPES859 BTRFS_NR_RAID_TYPES
851};860};
852 861
@@ -856,6 +865,8 @@ enum btrfs_raid_types { · 3 unmodified lines
856 865
857#define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \866#define BTRFS_BLOCK_GROUP_PROFILE_MASK (BTRFS_BLOCK_GROUP_RAID0 | \
858 BTRFS_BLOCK_GROUP_RAID1 | \867 BTRFS_BLOCK_GROUP_RAID1 | \
868 BTRFS_BLOCK_GROUP_RAID1C3 | \
869 BTRFS_BLOCK_GROUP_RAID1C4 | \
859 BTRFS_BLOCK_GROUP_RAID5 | \870 BTRFS_BLOCK_GROUP_RAID5 | \
860 BTRFS_BLOCK_GROUP_RAID6 | \871 BTRFS_BLOCK_GROUP_RAID6 | \
861 BTRFS_BLOCK_GROUP_DUP | \872 BTRFS_BLOCK_GROUP_DUP | \
@@ -863,7 +874,9 @@ enum btrfs_raid_types { · 1 unmodified line
863#define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \874#define BTRFS_BLOCK_GROUP_RAID56_MASK (BTRFS_BLOCK_GROUP_RAID5 | \
864 BTRFS_BLOCK_GROUP_RAID6)875 BTRFS_BLOCK_GROUP_RAID6)
865 876
866#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1)877#define BTRFS_BLOCK_GROUP_RAID1_MASK (BTRFS_BLOCK_GROUP_RAID1 | \
878 BTRFS_BLOCK_GROUP_RAID1C3 | \
879 BTRFS_BLOCK_GROUP_RAID1C4)
867 880
868/*881/*
869 * We need a bit for restriper to be able to tell when chunks of type882 * We need a bit for restriper to be able to tell when chunks of type
include/uapi/linux/can.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */1/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
2/*2/*
3 * linux/can.h3 * linux/can.h
4 *4 *
include/uapi/linux/can/bcm.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */1/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
2/*2/*
3 * linux/can/bcm.h3 * linux/can/bcm.h
4 *4 *
include/uapi/linux/can/error.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */1/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
2/*2/*
3 * linux/can/error.h3 * linux/can/error.h
4 *4 *
include/uapi/linux/can/gw.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */1/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
2/*2/*
3 * linux/can/gw.h3 * linux/can/gw.h
4 *4 *
include/uapi/linux/can/j1939.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2/*2/*
3 * j1939.h3 * j1939.h
4 *4 *
include/uapi/linux/can/netlink.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2/*2/*
3 * linux/can/netlink.h3 * linux/can/netlink.h
4 *4 *
include/uapi/linux/can/raw.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */1/* SPDX-License-Identifier: ((GPL-2.0-only WITH Linux-syscall-note) OR BSD-3-Clause) */
2/*2/*
3 * linux/can/raw.h3 * linux/can/raw.h
4 *4 *
include/uapi/linux/can/vxcan.h+1−1
@@ -1,4 +1,4 @@
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */1/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2#ifndef _UAPI_CAN_VXCAN_H2#ifndef _UAPI_CAN_VXCAN_H
3#define _UAPI_CAN_VXCAN_H3#define _UAPI_CAN_VXCAN_H
4 4
include/uapi/linux/cec-funcs.h+18−16
@@ -923,7 +923,8 @@ static inline void cec_msg_give_deck_status(struct cec_msg *msg, · 922 unmodified lines
923 msg->len = 3;923 msg->len = 3;
924 msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;924 msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
925 msg->msg[2] = status_req;925 msg->msg[2] = status_req;
926 msg->reply = reply ? CEC_MSG_DECK_STATUS : 0;926 msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
927 CEC_MSG_DECK_STATUS : 0;
927}928}
928 929
929static inline void cec_ops_give_deck_status(const struct cec_msg *msg,930static inline void cec_ops_give_deck_status(const struct cec_msg *msg,
@@ -1027,7 +1028,8 @@ static inline void cec_msg_give_tuner_device_status(struct cec_msg *msg, · 97 unmodified lines
1027 msg->len = 3;1028 msg->len = 3;
1028 msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;1029 msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
1029 msg->msg[2] = status_req;1030 msg->msg[2] = status_req;
1030 msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0;1031 msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
1032 CEC_MSG_TUNER_DEVICE_STATUS : 0;
1031}1033}
1032 1034
1033static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,1035static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
@@ -1302,17 +1304,17 @@ static inline void cec_msg_user_control_pressed(struct cec_msg *msg, · 268 unmodified lines
1302 if (!ui_cmd->has_opt_arg)1304 if (!ui_cmd->has_opt_arg)
1303 return;1305 return;
1304 switch (ui_cmd->ui_cmd) {1306 switch (ui_cmd->ui_cmd) {
1305 case 0x56:1307 case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
1306 case 0x57:1308 case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
1307 case 0x60:1309 case CEC_OP_UI_CMD_PLAY_FUNCTION:
1308 case 0x68:1310 case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
1309 case 0x69:1311 case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
1310 case 0x6a:1312 case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
1311 /* The optional operand is one byte for all these ui commands */1313 /* The optional operand is one byte for all these ui commands */
1312 msg->len++;1314 msg->len++;
1313 msg->msg[3] = ui_cmd->play_mode;1315 msg->msg[3] = ui_cmd->play_mode;
1314 break;1316 break;
1315 case 0x67:1317 case CEC_OP_UI_CMD_TUNE_FUNCTION:
1316 msg->len += 4;1318 msg->len += 4;
1317 msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |1319 msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |
1318 (ui_cmd->channel_identifier.major >> 8);1320 (ui_cmd->channel_identifier.major >> 8);
@@ -1331,17 +1333,17 @@ static inline void cec_ops_user_control_pressed(const struct cec_msg *msg, · 12 unmodified lines
1331 if (msg->len == 3)1333 if (msg->len == 3)
1332 return;1334 return;
1333 switch (ui_cmd->ui_cmd) {1335 switch (ui_cmd->ui_cmd) {
1334 case 0x56:1336 case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
1335 case 0x57:1337 case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
1336 case 0x60:1338 case CEC_OP_UI_CMD_PLAY_FUNCTION:
1337 case 0x68:1339 case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
1338 case 0x69:1340 case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
1339 case 0x6a:1341 case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
1340 /* The optional operand is one byte for all these ui commands */1342 /* The optional operand is one byte for all these ui commands */
1341 ui_cmd->play_mode = msg->msg[3];1343 ui_cmd->play_mode = msg->msg[3];
1342 ui_cmd->has_opt_arg = 1;1344 ui_cmd->has_opt_arg = 1;
1343 break;1345 break;
1344 case 0x67:1346 case CEC_OP_UI_CMD_TUNE_FUNCTION:
1345 if (msg->len < 7)1347 if (msg->len < 7)
1346 break;1348 break;
1347 ui_cmd->has_opt_arg = 1;1349 ui_cmd->has_opt_arg = 1;
include/uapi/linux/cec.h+131−2
@@ -317,6 +317,8 @@ static inline int cec_is_unconfigured(__u16 log_addr_mask) · 316 unmodified lines
317#define CEC_CAP_NEEDS_HPD (1 << 6)317#define CEC_CAP_NEEDS_HPD (1 << 6)
318/* Hardware can monitor CEC pin transitions */318/* Hardware can monitor CEC pin transitions */
319#define CEC_CAP_MONITOR_PIN (1 << 7)319#define CEC_CAP_MONITOR_PIN (1 << 7)
320/* CEC_ADAP_G_CONNECTOR_INFO is available */
321#define CEC_CAP_CONNECTOR_INFO (1 << 8)
320 322
321/**323/**
322 * struct cec_caps - CEC capabilities structure.324 * struct cec_caps - CEC capabilities structure.
@@ -375,6 +377,34 @@ struct cec_log_addrs { · 52 unmodified lines
375/* CDC-Only device: supports only CDC messages */377/* CDC-Only device: supports only CDC messages */
376#define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2)378#define CEC_LOG_ADDRS_FL_CDC_ONLY (1 << 2)
377 379
380/**
381 * struct cec_drm_connector_info - tells which drm connector is
382 * associated with the CEC adapter.
383 * @card_no: drm card number
384 * @connector_id: drm connector ID
385 */
386struct cec_drm_connector_info {
387 __u32 card_no;
388 __u32 connector_id;
389};
390
391#define CEC_CONNECTOR_TYPE_NO_CONNECTOR 0
392#define CEC_CONNECTOR_TYPE_DRM 1
393
394/**
395 * struct cec_connector_info - tells if and which connector is
396 * associated with the CEC adapter.
397 * @type: connector type (if any)
398 * @drm: drm connector info
399 */
400struct cec_connector_info {
401 __u32 type;
402 union {
403 struct cec_drm_connector_info drm;
404 __u32 raw[16];
405 };
406};
407
378/* Events */408/* Events */
379 409
380/* Event that occurs when the adapter state changes */410/* Event that occurs when the adapter state changes */
@@ -398,10 +428,17 @@ struct cec_log_addrs { · 17 unmodified lines
398 * struct cec_event_state_change - used when the CEC adapter changes state.428 * struct cec_event_state_change - used when the CEC adapter changes state.
399 * @phys_addr: the current physical address429 * @phys_addr: the current physical address
400 * @log_addr_mask: the current logical address mask430 * @log_addr_mask: the current logical address mask
431 * @have_conn_info: if non-zero, then HDMI connector information is available.
432 * This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that
433 * capability is set and @have_conn_info is zero, then that indicates
434 * that the HDMI connector device is not instantiated, either because
435 * the HDMI driver is still configuring the device or because the HDMI
436 * device was unbound.
401 */437 */
402struct cec_event_state_change {438struct cec_event_state_change {
403 __u16 phys_addr;439 __u16 phys_addr;
404 __u16 log_addr_mask;440 __u16 log_addr_mask;
441 __u16 have_conn_info;
405};442};
406 443
407/**444/**
@@ -476,6 +513,9 @@ struct cec_event { · 68 unmodified lines
476#define CEC_G_MODE _IOR('a', 8, __u32)513#define CEC_G_MODE _IOR('a', 8, __u32)
477#define CEC_S_MODE _IOW('a', 9, __u32)514#define CEC_S_MODE _IOW('a', 9, __u32)
478 515
516/* Get the connector info */
517#define CEC_ADAP_G_CONNECTOR_INFO _IOR('a', 10, struct cec_connector_info)
518
479/*519/*
480 * The remainder of this header defines all CEC messages and operands.520 * The remainder of this header defines all CEC messages and operands.
481 * The format matters since it the cec-ctl utility parses it to generate521 * The format matters since it the cec-ctl utility parses it to generate
@@ -768,8 +808,8 @@ struct cec_event { · 286 unmodified lines
768#define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93808#define CEC_MSG_SELECT_DIGITAL_SERVICE 0x93
769#define CEC_MSG_TUNER_DEVICE_STATUS 0x07809#define CEC_MSG_TUNER_DEVICE_STATUS 0x07
770/* Recording Flag Operand (rec_flag) */810/* Recording Flag Operand (rec_flag) */
771#define CEC_OP_REC_FLAG_USED 0811#define CEC_OP_REC_FLAG_NOT_USED 0
772#define CEC_OP_REC_FLAG_NOT_USED 1812#define CEC_OP_REC_FLAG_USED 1
773/* Tuner Display Info Operand (tuner_display_info) */813/* Tuner Display Info Operand (tuner_display_info) */
774#define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0814#define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL 0
775#define CEC_OP_TUNER_DISPLAY_INFO_NONE 1815#define CEC_OP_TUNER_DISPLAY_INFO_NONE 1
@@ -820,6 +860,95 @@ struct cec_event { · 44 unmodified lines
820#define CEC_OP_MENU_STATE_DEACTIVATED 0x01860#define CEC_OP_MENU_STATE_DEACTIVATED 0x01
821 861
822#define CEC_MSG_USER_CONTROL_PRESSED 0x44862#define CEC_MSG_USER_CONTROL_PRESSED 0x44
863/* UI Command Operand (ui_cmd) */
864#define CEC_OP_UI_CMD_SELECT 0x00
865#define CEC_OP_UI_CMD_UP 0x01
866#define CEC_OP_UI_CMD_DOWN 0x02
867#define CEC_OP_UI_CMD_LEFT 0x03
868#define CEC_OP_UI_CMD_RIGHT 0x04
869#define CEC_OP_UI_CMD_RIGHT_UP 0x05
870#define CEC_OP_UI_CMD_RIGHT_DOWN 0x06
871#define CEC_OP_UI_CMD_LEFT_UP 0x07
872#define CEC_OP_UI_CMD_LEFT_DOWN 0x08
873#define CEC_OP_UI_CMD_DEVICE_ROOT_MENU 0x09
874#define CEC_OP_UI_CMD_DEVICE_SETUP_MENU 0x0a
875#define CEC_OP_UI_CMD_CONTENTS_MENU 0x0b
876#define CEC_OP_UI_CMD_FAVORITE_MENU 0x0c
877#define CEC_OP_UI_CMD_BACK 0x0d
878#define CEC_OP_UI_CMD_MEDIA_TOP_MENU 0x10
879#define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU 0x11
880#define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE 0x1d
881#define CEC_OP_UI_CMD_NUMBER_11 0x1e
882#define CEC_OP_UI_CMD_NUMBER_12 0x1f
883#define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10 0x20
884#define CEC_OP_UI_CMD_NUMBER_1 0x21
885#define CEC_OP_UI_CMD_NUMBER_2 0x22
886#define CEC_OP_UI_CMD_NUMBER_3 0x23
887#define CEC_OP_UI_CMD_NUMBER_4 0x24
888#define CEC_OP_UI_CMD_NUMBER_5 0x25
889#define CEC_OP_UI_CMD_NUMBER_6 0x26
890#define CEC_OP_UI_CMD_NUMBER_7 0x27
891#define CEC_OP_UI_CMD_NUMBER_8 0x28
892#define CEC_OP_UI_CMD_NUMBER_9 0x29
893#define CEC_OP_UI_CMD_DOT 0x2a
894#define CEC_OP_UI_CMD_ENTER 0x2b
895#define CEC_OP_UI_CMD_CLEAR 0x2c
896#define CEC_OP_UI_CMD_NEXT_FAVORITE 0x2f
897#define CEC_OP_UI_CMD_CHANNEL_UP 0x30
898#define CEC_OP_UI_CMD_CHANNEL_DOWN 0x31
899#define CEC_OP_UI_CMD_PREVIOUS_CHANNEL 0x32
900#define CEC_OP_UI_CMD_SOUND_SELECT 0x33
901#define CEC_OP_UI_CMD_INPUT_SELECT 0x34
902#define CEC_OP_UI_CMD_DISPLAY_INFORMATION 0x35
903#define CEC_OP_UI_CMD_HELP 0x36
904#define CEC_OP_UI_CMD_PAGE_UP 0x37
905#define CEC_OP_UI_CMD_PAGE_DOWN 0x38
906#define CEC_OP_UI_CMD_POWER 0x40
907#define CEC_OP_UI_CMD_VOLUME_UP 0x41
908#define CEC_OP_UI_CMD_VOLUME_DOWN 0x42
909#define CEC_OP_UI_CMD_MUTE 0x43
910#define CEC_OP_UI_CMD_PLAY 0x44
911#define CEC_OP_UI_CMD_STOP 0x45
912#define CEC_OP_UI_CMD_PAUSE 0x46
913#define CEC_OP_UI_CMD_RECORD 0x47
914#define CEC_OP_UI_CMD_REWIND 0x48
915#define CEC_OP_UI_CMD_FAST_FORWARD 0x49
916#define CEC_OP_UI_CMD_EJECT 0x4a
917#define CEC_OP_UI_CMD_SKIP_FORWARD 0x4b
918#define CEC_OP_UI_CMD_SKIP_BACKWARD 0x4c
919#define CEC_OP_UI_CMD_STOP_RECORD 0x4d
920#define CEC_OP_UI_CMD_PAUSE_RECORD 0x4e
921#define CEC_OP_UI_CMD_ANGLE 0x50
922#define CEC_OP_UI_CMD_SUB_PICTURE 0x51
923#define CEC_OP_UI_CMD_VIDEO_ON_DEMAND 0x52
924#define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE 0x53
925#define CEC_OP_UI_CMD_TIMER_PROGRAMMING 0x54
926#define CEC_OP_UI_CMD_INITIAL_CONFIGURATION 0x55
927#define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE 0x56
928#define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION 0x57
929#define CEC_OP_UI_CMD_AUDIO_DESCRIPTION 0x58
930#define CEC_OP_UI_CMD_INTERNET 0x59
931#define CEC_OP_UI_CMD_3D_MODE 0x5a
932#define CEC_OP_UI_CMD_PLAY_FUNCTION 0x60
933#define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION 0x61
934#define CEC_OP_UI_CMD_RECORD_FUNCTION 0x62
935#define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION 0x63
936#define CEC_OP_UI_CMD_STOP_FUNCTION 0x64
937#define CEC_OP_UI_CMD_MUTE_FUNCTION 0x65
938#define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION 0x66
939#define CEC_OP_UI_CMD_TUNE_FUNCTION 0x67
940#define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION 0x68
941#define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION 0x69
942#define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION 0x6a
943#define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION 0x6b
944#define CEC_OP_UI_CMD_POWER_OFF_FUNCTION 0x6c
945#define CEC_OP_UI_CMD_POWER_ON_FUNCTION 0x6d
946#define CEC_OP_UI_CMD_F1_BLUE 0x71
947#define CEC_OP_UI_CMD_F2_RED 0x72
948#define CEC_OP_UI_CMD_F3_GREEN 0x73
949#define CEC_OP_UI_CMD_F4_YELLOW 0x74
950#define CEC_OP_UI_CMD_F5 0x75
951#define CEC_OP_UI_CMD_DATA 0x76
823/* UI Broadcast Type Operand (ui_bcast_type) */952/* UI Broadcast Type Operand (ui_bcast_type) */
824#define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00953#define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL 0x00
825#define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01954#define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA 0x01
include/uapi/linux/chio.h+4−7
@@ -3,6 +3,9 @@ · 2 unmodified lines
3 * ioctl interface for the scsi media changer driver3 * ioctl interface for the scsi media changer driver
4 */4 */
5 5
6#ifndef _UAPI_LINUX_CHIO_H
7#define _UAPI_LINUX_CHIO_H
8
6/* changer element types */9/* changer element types */
7#define CHET_MT 0 /* media transport element (robot) */10#define CHET_MT 0 /* media transport element (robot) */
8#define CHET_ST 1 /* storage element (media slots) */11#define CHET_ST 1 /* storage element (media slots) */
@@ -160,10 +163,4 @@ struct changer_set_voltag { · 151 unmodified lines
160#define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag)163#define CHIOSVOLTAG _IOW('c',18,struct changer_set_voltag)
161#define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params)164#define CHIOGVPARAMS _IOR('c',19,struct changer_vendor_params)
162 165
163/* ---------------------------------------------------------------------- */166#endif /* _UAPI_LINUX_CHIO_H */
164
165/*
166 * Local variables:
167 * c-basic-offset: 8
168 * End:
169 */
include/uapi/linux/cyclades.h+3−3
@@ -83,9 +83,9 @@ struct cyclades_monitor { · 82 unmodified lines
83 * open)83 * open)
84 */84 */
85struct cyclades_idle_stats {85struct cyclades_idle_stats {
86 __kernel_time_t in_use; /* Time device has been in use (secs) */86 __kernel_old_time_t in_use; /* Time device has been in use (secs) */
87 __kernel_time_t recv_idle; /* Time since last char received (secs) */87 __kernel_old_time_t recv_idle; /* Time since last char received (secs) */
88 __kernel_time_t xmit_idle; /* Time since last char transmitted (secs) */88 __kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */
89 unsigned long recv_bytes; /* Bytes received */89 unsigned long recv_bytes; /* Bytes received */
90 unsigned long xmit_bytes; /* Bytes transmitted */90 unsigned long xmit_bytes; /* Bytes transmitted */
91 unsigned long overruns; /* Input overruns */91 unsigned long overruns; /* Input overruns */
include/uapi/linux/dcbnl.h+1−1
@@ -286,7 +286,7 @@ struct dcbmsg { · 285 unmodified lines
286 * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported286 * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported
287 * @DCB_CMD_SNUMTCS: set the number of traffic classes287 * @DCB_CMD_SNUMTCS: set the number of traffic classes
288 * @DCB_CMD_GBCN: set backward congestion notification configuration288 * @DCB_CMD_GBCN: set backward congestion notification configuration
289 * @DCB_CMD_SBCN: get backward congestion notification configration.289 * @DCB_CMD_SBCN: get backward congestion notification configuration.
290 * @DCB_CMD_GAPP: get application protocol configuration290 * @DCB_CMD_GAPP: get application protocol configuration
291 * @DCB_CMD_SAPP: set application protocol configuration291 * @DCB_CMD_SAPP: set application protocol configuration
292 * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration292 * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration
include/uapi/linux/devlink.h+5−0
@@ -421,6 +421,11 @@ enum devlink_attr { · 420 unmodified lines
421 421
422 DEVLINK_ATTR_RELOAD_FAILED, /* u8 0 or 1 */422 DEVLINK_ATTR_RELOAD_FAILED, /* u8 0 or 1 */
423 423
424 DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS, /* u64 */
425
426 DEVLINK_ATTR_NETNS_FD, /* u32 */
427 DEVLINK_ATTR_NETNS_PID, /* u32 */
428 DEVLINK_ATTR_NETNS_ID, /* u32 */
424 /* add new attributes above here, update the policy in devlink.c */429 /* add new attributes above here, update the policy in devlink.c */
425 430
426 __DEVLINK_ATTR_MAX,431 __DEVLINK_ATTR_MAX,
include/uapi/linux/elfcore.h+4−4
@@ -53,10 +53,10 @@ struct elf_prstatus · 52 unmodified lines
53 pid_t pr_ppid;53 pid_t pr_ppid;
54 pid_t pr_pgrp;54 pid_t pr_pgrp;
55 pid_t pr_sid;55 pid_t pr_sid;
56 struct timeval pr_utime; /* User time */56 struct __kernel_old_timeval pr_utime; /* User time */
57 struct timeval pr_stime; /* System time */57 struct __kernel_old_timeval pr_stime; /* System time */
58 struct timeval pr_cutime; /* Cumulative user time */58 struct __kernel_old_timeval pr_cutime; /* Cumulative user time */
59 struct timeval pr_cstime; /* Cumulative system time */59 struct __kernel_old_timeval pr_cstime; /* Cumulative system time */
60#if 060#if 0
61 long pr_instr; /* Current instruction */61 long pr_instr; /* Current instruction */
62#endif62#endif
include/uapi/linux/errqueue.h+7−0
@@ -37,9 +37,16 @@ struct sock_extended_err { · 36 unmodified lines
37 * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*37 * The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*
38 * communicate network timestamps by passing this struct in a cmsg with38 * communicate network timestamps by passing this struct in a cmsg with
39 * recvmsg(). See Documentation/networking/timestamping.txt for details.39 * recvmsg(). See Documentation/networking/timestamping.txt for details.
40 * User space sees a timespec definition that matches either
41 * __kernel_timespec or __kernel_old_timespec, in the kernel we
42 * require two structure definitions to provide both.
40 */43 */
41struct scm_timestamping {44struct scm_timestamping {
45#ifdef __KERNEL__
46 struct __kernel_old_timespec ts[3];
47#else
42 struct timespec ts[3];48 struct timespec ts[3];
49#endif
43};50};
44 51
45struct scm_timestamping64 {52struct scm_timestamping64 {
include/uapi/linux/ethtool.h+6−0
@@ -1507,6 +1507,11 @@ enum ethtool_link_mode_bit_indices { · 1506 unmodified lines
1507 ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,1507 ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
1508 ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,1508 ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67,
1509 ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,1509 ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68,
1510 ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69,
1511 ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70,
1512 ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
1513 ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72,
1514 ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73,
1510 1515
1511 /* must be last entry */1516 /* must be last entry */
1512 __ETHTOOL_LINK_MODE_MASK_NBITS1517 __ETHTOOL_LINK_MODE_MASK_NBITS
@@ -1618,6 +1623,7 @@ enum ethtool_link_mode_bit_indices { · 105 unmodified lines
1618#define SPEED_56000 560001623#define SPEED_56000 56000
1619#define SPEED_100000 1000001624#define SPEED_100000 100000
1620#define SPEED_200000 2000001625#define SPEED_200000 200000
1626#define SPEED_400000 400000
1621 1627
1622#define SPEED_UNKNOWN -11628#define SPEED_UNKNOWN -1
1623 1629
include/uapi/linux/fcntl.h+8−1
@@ -58,13 +58,20 @@ · 57 unmodified lines
58 * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be58 * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be
59 * used to clear any hints previously set.59 * used to clear any hints previously set.
60 */60 */
61#define RWF_WRITE_LIFE_NOT_SET 061#define RWH_WRITE_LIFE_NOT_SET 0
62#define RWH_WRITE_LIFE_NONE 162#define RWH_WRITE_LIFE_NONE 1
63#define RWH_WRITE_LIFE_SHORT 263#define RWH_WRITE_LIFE_SHORT 2
64#define RWH_WRITE_LIFE_MEDIUM 364#define RWH_WRITE_LIFE_MEDIUM 3
65#define RWH_WRITE_LIFE_LONG 465#define RWH_WRITE_LIFE_LONG 4
66#define RWH_WRITE_LIFE_EXTREME 566#define RWH_WRITE_LIFE_EXTREME 5
67 67
68/*
69 * The originally introduced spelling is remained from the first
70 * versions of the patch set that introduced the feature, see commit
71 * v4.13-rc1~212^2~51.
72 */
73#define RWF_WRITE_LIFE_NOT_SET RWH_WRITE_LIFE_NOT_SET
74
68/*75/*
69 * Types of directory notifications that may be requested.76 * Types of directory notifications that may be requested.
70 */77 */
include/uapi/linux/fscrypt.h+2−1
@@ -17,7 +17,8 @@ · 16 unmodified lines
17#define FSCRYPT_POLICY_FLAGS_PAD_32 0x0317#define FSCRYPT_POLICY_FLAGS_PAD_32 0x03
18#define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x0318#define FSCRYPT_POLICY_FLAGS_PAD_MASK 0x03
19#define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x0419#define FSCRYPT_POLICY_FLAG_DIRECT_KEY 0x04
20#define FSCRYPT_POLICY_FLAGS_VALID 0x0720#define FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 0x08
21#define FSCRYPT_POLICY_FLAGS_VALID 0x0F
21 22
22/* Encryption algorithms */23/* Encryption algorithms */
23#define FSCRYPT_MODE_AES_256_XTS 124#define FSCRYPT_MODE_AES_256_XTS 1
include/uapi/linux/fuse.h+37−0
@@ -38,6 +38,43 @@ · 37 unmodified lines
38 *38 *
39 * Protocol changelog:39 * Protocol changelog:
40 *40 *
41 * 7.1:
42 * - add the following messages:
43 * FUSE_SETATTR, FUSE_SYMLINK, FUSE_MKNOD, FUSE_MKDIR, FUSE_UNLINK,
44 * FUSE_RMDIR, FUSE_RENAME, FUSE_LINK, FUSE_OPEN, FUSE_READ, FUSE_WRITE,
45 * FUSE_RELEASE, FUSE_FSYNC, FUSE_FLUSH, FUSE_SETXATTR, FUSE_GETXATTR,
46 * FUSE_LISTXATTR, FUSE_REMOVEXATTR, FUSE_OPENDIR, FUSE_READDIR,
47 * FUSE_RELEASEDIR
48 * - add padding to messages to accommodate 32-bit servers on 64-bit kernels
49 *
50 * 7.2:
51 * - add FOPEN_DIRECT_IO and FOPEN_KEEP_CACHE flags
52 * - add FUSE_FSYNCDIR message
53 *
54 * 7.3:
55 * - add FUSE_ACCESS message
56 * - add FUSE_CREATE message
57 * - add filehandle to fuse_setattr_in
58 *
59 * 7.4:
60 * - add frsize to fuse_kstatfs
61 * - clean up request size limit checking
62 *
63 * 7.5:
64 * - add flags and max_write to fuse_init_out
65 *
66 * 7.6:
67 * - add max_readahead to fuse_init_in and fuse_init_out
68 *
69 * 7.7:
70 * - add FUSE_INTERRUPT message
71 * - add POSIX file lock support
72 *
73 * 7.8:
74 * - add lock_owner and flags fields to fuse_release_in
75 * - add FUSE_BMAP message
76 * - add FUSE_DESTROY message
77 *
41 * 7.9:78 * 7.9:
42 * - new fuse_getattr_in input argument of GETATTR79 * - new fuse_getattr_in input argument of GETATTR
43 * - add lk_flags in fuse_lk_in80 * - add lk_flags in fuse_lk_in
include/uapi/linux/gen_stats.h+1−4
@@ -13,6 +13,7 @@ enum { · 12 unmodified lines
13 TCA_STATS_RATE_EST64,13 TCA_STATS_RATE_EST64,
14 TCA_STATS_PAD,14 TCA_STATS_PAD,
15 TCA_STATS_BASIC_HW,15 TCA_STATS_BASIC_HW,
16 TCA_STATS_PKT64,
16 __TCA_STATS_MAX,17 __TCA_STATS_MAX,
17};18};
18#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)19#define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
@@ -26,10 +27,6 @@ struct gnet_stats_basic { · 7 unmodified lines
26 __u64 bytes;27 __u64 bytes;
27 __u32 packets;28 __u32 packets;
28};29};
29struct gnet_stats_basic_packed {
30 __u64 bytes;
31 __u32 packets;
32} __attribute__ ((packed));
33 30
34/**31/**
35 * struct gnet_stats_rate_est - rate estimator32 * struct gnet_stats_rate_est - rate estimator
include/uapi/linux/gpio.h+24−0
@@ -33,6 +33,9 @@ struct gpiochip_info { · 32 unmodified lines
33#define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2)33#define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2)
34#define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3)34#define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3)
35#define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4)35#define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4)
36#define GPIOLINE_FLAG_BIAS_PULL_UP (1UL << 5)
37#define GPIOLINE_FLAG_BIAS_PULL_DOWN (1UL << 6)
38#define GPIOLINE_FLAG_BIAS_DISABLE (1UL << 7)
36 39
37/**40/**
38 * struct gpioline_info - Information about a certain GPIO line41 * struct gpioline_info - Information about a certain GPIO line
@@ -62,6 +65,9 @@ struct gpioline_info { · 23 unmodified lines
62#define GPIOHANDLE_REQUEST_ACTIVE_LOW (1UL << 2)65#define GPIOHANDLE_REQUEST_ACTIVE_LOW (1UL << 2)
63#define GPIOHANDLE_REQUEST_OPEN_DRAIN (1UL << 3)66#define GPIOHANDLE_REQUEST_OPEN_DRAIN (1UL << 3)
64#define GPIOHANDLE_REQUEST_OPEN_SOURCE (1UL << 4)67#define GPIOHANDLE_REQUEST_OPEN_SOURCE (1UL << 4)
68#define GPIOHANDLE_REQUEST_BIAS_PULL_UP (1UL << 5)
69#define GPIOHANDLE_REQUEST_BIAS_PULL_DOWN (1UL << 6)
70#define GPIOHANDLE_REQUEST_BIAS_DISABLE (1UL << 7)
65 71
66/**72/**
67 * struct gpiohandle_request - Information about a GPIO handle request73 * struct gpiohandle_request - Information about a GPIO handle request
@@ -94,6 +100,24 @@ struct gpiohandle_request { · 26 unmodified lines
94 int fd;100 int fd;
95};101};
96 102
103/**
104 * struct gpiohandle_config - Configuration for a GPIO handle request
105 * @flags: updated flags for the requested GPIO lines, such as
106 * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed
107 * together
108 * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags,
109 * this specifies the default output value, should be 0 (low) or
110 * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
111 * @padding: reserved for future use and should be zero filled
112 */
113struct gpiohandle_config {
114 __u32 flags;
115 __u8 default_values[GPIOHANDLES_MAX];
116 __u32 padding[4]; /* padding for future use */
117};
118
119#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config)
120
97/**121/**
98 * struct gpiohandle_data - Information of values on a GPIO handle122 * struct gpiohandle_data - Information of values on a GPIO handle
99 * @values: when getting the state of lines this contains the current123 * @values: when getting the state of lines this contains the current
include/uapi/linux/if.h+1−0
@@ -33,6 +33,7 @@ · 32 unmodified lines
33#define IFNAMSIZ 1633#define IFNAMSIZ 16
34#endif /* __UAPI_DEF_IF_IFNAMSIZ */34#endif /* __UAPI_DEF_IF_IFNAMSIZ */
35#define IFALIASZ 25635#define IFALIASZ 256
36#define ALTIFNAMSIZ 128
36#include <linux/hdlc/ioctl.h>37#include <linux/hdlc/ioctl.h>
37 38
38/* For glibc compatibility. An empty enum does not compile. */39/* For glibc compatibility. An empty enum does not compile. */
include/uapi/linux/if_link.h+2−0
@@ -167,6 +167,8 @@ enum { · 166 unmodified lines
167 IFLA_NEW_IFINDEX,167 IFLA_NEW_IFINDEX,
168 IFLA_MIN_MTU,168 IFLA_MIN_MTU,
169 IFLA_MAX_MTU,169 IFLA_MAX_MTU,
170 IFLA_PROP_LIST,
171 IFLA_ALT_IFNAME, /* Alternative ifname */
170 __IFLA_MAX172 __IFLA_MAX
171};173};
172 174
include/uapi/linux/input-event-codes.h+75−0
@@ -652,6 +652,81 @@ · 651 unmodified lines
652/* Electronic privacy screen control */652/* Electronic privacy screen control */
653#define KEY_PRIVACY_SCREEN_TOGGLE 0x279653#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
654 654
655/*
656 * Some keyboards have keys which do not have a defined meaning, these keys
657 * are intended to be programmed / bound to macros by the user. For most
658 * keyboards with these macro-keys the key-sequence to inject, or action to
659 * take, is all handled by software on the host side. So from the kernel's
660 * point of view these are just normal keys.
661 *
662 * The KEY_MACRO# codes below are intended for such keys, which may be labeled
663 * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
664 * where the marking on the key does indicate a defined meaning / purpose.
665 *
666 * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
667 * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
668 * define MUST be added.
669 */
670#define KEY_MACRO1 0x290
671#define KEY_MACRO2 0x291
672#define KEY_MACRO3 0x292
673#define KEY_MACRO4 0x293
674#define KEY_MACRO5 0x294
675#define KEY_MACRO6 0x295
676#define KEY_MACRO7 0x296
677#define KEY_MACRO8 0x297
678#define KEY_MACRO9 0x298
679#define KEY_MACRO10 0x299
680#define KEY_MACRO11 0x29a
681#define KEY_MACRO12 0x29b
682#define KEY_MACRO13 0x29c
683#define KEY_MACRO14 0x29d
684#define KEY_MACRO15 0x29e
685#define KEY_MACRO16 0x29f
686#define KEY_MACRO17 0x2a0
687#define KEY_MACRO18 0x2a1
688#define KEY_MACRO19 0x2a2
689#define KEY_MACRO20 0x2a3
690#define KEY_MACRO21 0x2a4
691#define KEY_MACRO22 0x2a5
692#define KEY_MACRO23 0x2a6
693#define KEY_MACRO24 0x2a7
694#define KEY_MACRO25 0x2a8
695#define KEY_MACRO26 0x2a9
696#define KEY_MACRO27 0x2aa
697#define KEY_MACRO28 0x2ab
698#define KEY_MACRO29 0x2ac
699#define KEY_MACRO30 0x2ad
700
701/*
702 * Some keyboards with the macro-keys described above have some extra keys
703 * for controlling the host-side software responsible for the macro handling:
704 * -A macro recording start/stop key. Note that not all keyboards which emit
705 * KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
706 * KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
707 * should be interpreted as a recording start/stop toggle;
708 * -Keys for switching between different macro (pre)sets, either a key for
709 * cycling through the configured presets or keys to directly select a preset.
710 */
711#define KEY_MACRO_RECORD_START 0x2b0
712#define KEY_MACRO_RECORD_STOP 0x2b1
713#define KEY_MACRO_PRESET_CYCLE 0x2b2
714#define KEY_MACRO_PRESET1 0x2b3
715#define KEY_MACRO_PRESET2 0x2b4
716#define KEY_MACRO_PRESET3 0x2b5
717
718/*
719 * Some keyboards have a buildin LCD panel where the contents are controlled
720 * by the host. Often these have a number of keys directly below the LCD
721 * intended for controlling a menu shown on the LCD. These keys often don't
722 * have any labeling so we just name them KEY_KBD_LCD_MENU#
723 */
724#define KEY_KBD_LCD_MENU1 0x2b8
725#define KEY_KBD_LCD_MENU2 0x2b9
726#define KEY_KBD_LCD_MENU3 0x2ba
727#define KEY_KBD_LCD_MENU4 0x2bb
728#define KEY_KBD_LCD_MENU5 0x2bc
729
655#define BTN_TRIGGER_HAPPY 0x2c0730#define BTN_TRIGGER_HAPPY 0x2c0
656#define BTN_TRIGGER_HAPPY1 0x2c0731#define BTN_TRIGGER_HAPPY1 0x2c0
657#define BTN_TRIGGER_HAPPY2 0x2c1732#define BTN_TRIGGER_HAPPY2 0x2c1
include/uapi/linux/io_uring.h+44−14
@@ -19,7 +19,10 @@ struct io_uring_sqe { · 18 unmodified lines
19 __u8 flags; /* IOSQE_ flags */19 __u8 flags; /* IOSQE_ flags */
20 __u16 ioprio; /* ioprio for the request */20 __u16 ioprio; /* ioprio for the request */
21 __s32 fd; /* file descriptor to do IO on */21 __s32 fd; /* file descriptor to do IO on */
22 __u64 off; /* offset into file */22 union {
23 __u64 off; /* offset into file */
24 __u64 addr2;
25 };
23 __u64 addr; /* pointer to buffer or iovecs */26 __u64 addr; /* pointer to buffer or iovecs */
24 __u32 len; /* buffer size or number of iovecs */27 __u32 len; /* buffer size or number of iovecs */
25 union {28 union {
@@ -29,6 +32,8 @@ struct io_uring_sqe { · 3 unmodified lines
29 __u32 sync_range_flags;32 __u32 sync_range_flags;
30 __u32 msg_flags;33 __u32 msg_flags;
31 __u32 timeout_flags;34 __u32 timeout_flags;
35 __u32 accept_flags;
36 __u32 cancel_flags;
32 };37 };
33 __u64 user_data; /* data to be passed back at completion time */38 __u64 user_data; /* data to be passed back at completion time */
34 union {39 union {
@@ -43,6 +48,7 @@ struct io_uring_sqe { · 8 unmodified lines
43#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */48#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
44#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */49#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
45#define IOSQE_IO_LINK (1U << 2) /* links next sqe */50#define IOSQE_IO_LINK (1U << 2) /* links next sqe */
51#define IOSQE_IO_HARDLINK (1U << 3) /* like LINK, but stronger */
46 52
47/*53/*
48 * io_uring_setup() flags54 * io_uring_setup() flags
@@ -50,25 +56,41 @@ struct io_uring_sqe { · 1 unmodified line
50#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */56#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */
51#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */57#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */
52#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */58#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */
53 59#define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */
54#define IORING_OP_NOP 060
55#define IORING_OP_READV 161enum {
56#define IORING_OP_WRITEV 262 IORING_OP_NOP,
57#define IORING_OP_FSYNC 363 IORING_OP_READV,
58#define IORING_OP_READ_FIXED 464 IORING_OP_WRITEV,
59#define IORING_OP_WRITE_FIXED 565 IORING_OP_FSYNC,
60#define IORING_OP_POLL_ADD 666 IORING_OP_READ_FIXED,
61#define IORING_OP_POLL_REMOVE 767 IORING_OP_WRITE_FIXED,
62#define IORING_OP_SYNC_FILE_RANGE 868 IORING_OP_POLL_ADD,
63#define IORING_OP_SENDMSG 969 IORING_OP_POLL_REMOVE,
64#define IORING_OP_RECVMSG 1070 IORING_OP_SYNC_FILE_RANGE,
65#define IORING_OP_TIMEOUT 1171 IORING_OP_SENDMSG,
72 IORING_OP_RECVMSG,
73 IORING_OP_TIMEOUT,
74 IORING_OP_TIMEOUT_REMOVE,
75 IORING_OP_ACCEPT,
76 IORING_OP_ASYNC_CANCEL,
77 IORING_OP_LINK_TIMEOUT,
78 IORING_OP_CONNECT,
79
80 /* this goes last, obviously */
81 IORING_OP_LAST,
82};
66 83
67/*84/*
68 * sqe->fsync_flags85 * sqe->fsync_flags
69 */86 */
70#define IORING_FSYNC_DATASYNC (1U << 0)87#define IORING_FSYNC_DATASYNC (1U << 0)
71 88
89/*
90 * sqe->timeout_flags
91 */
92#define IORING_TIMEOUT_ABS (1U << 0)
93
72/*94/*
73 * IO completion data structure (Completion Queue Entry)95 * IO completion data structure (Completion Queue Entry)
74 */96 */
@@ -140,6 +162,8 @@ struct io_uring_params { · 65 unmodified lines
140 * io_uring_params->features flags162 * io_uring_params->features flags
141 */163 */
142#define IORING_FEAT_SINGLE_MMAP (1U << 0)164#define IORING_FEAT_SINGLE_MMAP (1U << 0)
165#define IORING_FEAT_NODROP (1U << 1)
166#define IORING_FEAT_SUBMIT_STABLE (1U << 2)
143 167
144/*168/*
145 * io_uring_register(2) opcodes and arguments169 * io_uring_register(2) opcodes and arguments
@@ -150,5 +174,11 @@ struct io_uring_params { · 4 unmodified lines
150#define IORING_UNREGISTER_FILES 3174#define IORING_UNREGISTER_FILES 3
151#define IORING_REGISTER_EVENTFD 4175#define IORING_REGISTER_EVENTFD 4
152#define IORING_UNREGISTER_EVENTFD 5176#define IORING_UNREGISTER_EVENTFD 5
177#define IORING_REGISTER_FILES_UPDATE 6
178
179struct io_uring_files_update {
180 __u32 offset;
181 __s32 *fds;
182};
153 183
154#endif184#endif
include/uapi/linux/iommu.h+169−0
@@ -152,4 +152,173 @@ struct iommu_page_response { · 151 unmodified lines
152 __u32 code;152 __u32 code;
153};153};
154 154
155/* defines the granularity of the invalidation */
156enum iommu_inv_granularity {
157 IOMMU_INV_GRANU_DOMAIN, /* domain-selective invalidation */
158 IOMMU_INV_GRANU_PASID, /* PASID-selective invalidation */
159 IOMMU_INV_GRANU_ADDR, /* page-selective invalidation */
160 IOMMU_INV_GRANU_NR, /* number of invalidation granularities */
161};
162
163/**
164 * struct iommu_inv_addr_info - Address Selective Invalidation Structure
165 *
166 * @flags: indicates the granularity of the address-selective invalidation
167 * - If the PASID bit is set, the @pasid field is populated and the invalidation
168 * relates to cache entries tagged with this PASID and matching the address
169 * range.
170 * - If ARCHID bit is set, @archid is populated and the invalidation relates
171 * to cache entries tagged with this architecture specific ID and matching
172 * the address range.
173 * - Both PASID and ARCHID can be set as they may tag different caches.
174 * - If neither PASID or ARCHID is set, global addr invalidation applies.
175 * - The LEAF flag indicates whether only the leaf PTE caching needs to be
176 * invalidated and other paging structure caches can be preserved.
177 * @pasid: process address space ID
178 * @archid: architecture-specific ID
179 * @addr: first stage/level input address
180 * @granule_size: page/block size of the mapping in bytes
181 * @nb_granules: number of contiguous granules to be invalidated
182 */
183struct iommu_inv_addr_info {
184#define IOMMU_INV_ADDR_FLAGS_PASID (1 << 0)
185#define IOMMU_INV_ADDR_FLAGS_ARCHID (1 << 1)
186#define IOMMU_INV_ADDR_FLAGS_LEAF (1 << 2)
187 __u32 flags;
188 __u32 archid;
189 __u64 pasid;
190 __u64 addr;
191 __u64 granule_size;
192 __u64 nb_granules;
193};
194
195/**
196 * struct iommu_inv_pasid_info - PASID Selective Invalidation Structure
197 *
198 * @flags: indicates the granularity of the PASID-selective invalidation
199 * - If the PASID bit is set, the @pasid field is populated and the invalidation
200 * relates to cache entries tagged with this PASID and matching the address
201 * range.
202 * - If the ARCHID bit is set, the @archid is populated and the invalidation
203 * relates to cache entries tagged with this architecture specific ID and
204 * matching the address range.
205 * - Both PASID and ARCHID can be set as they may tag different caches.
206 * - At least one of PASID or ARCHID must be set.
207 * @pasid: process address space ID
208 * @archid: architecture-specific ID
209 */
210struct iommu_inv_pasid_info {
211#define IOMMU_INV_PASID_FLAGS_PASID (1 << 0)
212#define IOMMU_INV_PASID_FLAGS_ARCHID (1 << 1)
213 __u32 flags;
214 __u32 archid;
215 __u64 pasid;
216};
217
218/**
219 * struct iommu_cache_invalidate_info - First level/stage invalidation
220 * information
221 * @version: API version of this structure
222 * @cache: bitfield that allows to select which caches to invalidate
223 * @granularity: defines the lowest granularity used for the invalidation:
224 * domain > PASID > addr
225 * @padding: reserved for future use (should be zero)
226 * @pasid_info: invalidation data when @granularity is %IOMMU_INV_GRANU_PASID
227 * @addr_info: invalidation data when @granularity is %IOMMU_INV_GRANU_ADDR
228 *
229 * Not all the combinations of cache/granularity are valid:
230 *
231 * +--------------+---------------+---------------+---------------+
232 * | type / | DEV_IOTLB | IOTLB | PASID |
233 * | granularity | | | cache |
234 * +==============+===============+===============+===============+
235 * | DOMAIN | N/A | Y | Y |
236 * +--------------+---------------+---------------+---------------+
237 * | PASID | Y | Y | Y |
238 * +--------------+---------------+---------------+---------------+
239 * | ADDR | Y | Y | N/A |
240 * +--------------+---------------+---------------+---------------+
241 *
242 * Invalidations by %IOMMU_INV_GRANU_DOMAIN don't take any argument other than
243 * @version and @cache.
244 *
245 * If multiple cache types are invalidated simultaneously, they all
246 * must support the used granularity.
247 */
248struct iommu_cache_invalidate_info {
249#define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1
250 __u32 version;
251/* IOMMU paging structure cache */
252#define IOMMU_CACHE_INV_TYPE_IOTLB (1 << 0) /* IOMMU IOTLB */
253#define IOMMU_CACHE_INV_TYPE_DEV_IOTLB (1 << 1) /* Device IOTLB */
254#define IOMMU_CACHE_INV_TYPE_PASID (1 << 2) /* PASID cache */
255#define IOMMU_CACHE_INV_TYPE_NR (3)
256 __u8 cache;
257 __u8 granularity;
258 __u8 padding[2];
259 union {
260 struct iommu_inv_pasid_info pasid_info;
261 struct iommu_inv_addr_info addr_info;
262 };
263};
264
265/**
266 * struct iommu_gpasid_bind_data_vtd - Intel VT-d specific data on device and guest
267 * SVA binding.
268 *
269 * @flags: VT-d PASID table entry attributes
270 * @pat: Page attribute table data to compute effective memory type
271 * @emt: Extended memory type
272 *
273 * Only guest vIOMMU selectable and effective options are passed down to
274 * the host IOMMU.
275 */
276struct iommu_gpasid_bind_data_vtd {
277#define IOMMU_SVA_VTD_GPASID_SRE (1 << 0) /* supervisor request */
278#define IOMMU_SVA_VTD_GPASID_EAFE (1 << 1) /* extended access enable */
279#define IOMMU_SVA_VTD_GPASID_PCD (1 << 2) /* page-level cache disable */
280#define IOMMU_SVA_VTD_GPASID_PWT (1 << 3) /* page-level write through */
281#define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4) /* extended mem type enable */
282#define IOMMU_SVA_VTD_GPASID_CD (1 << 5) /* PASID-level cache disable */
283 __u64 flags;
284 __u32 pat;
285 __u32 emt;
286};
287
288/**
289 * struct iommu_gpasid_bind_data - Information about device and guest PASID binding
290 * @version: Version of this data structure
291 * @format: PASID table entry format
292 * @flags: Additional information on guest bind request
293 * @gpgd: Guest page directory base of the guest mm to bind
294 * @hpasid: Process address space ID used for the guest mm in host IOMMU
295 * @gpasid: Process address space ID used for the guest mm in guest IOMMU
296 * @addr_width: Guest virtual address width
297 * @padding: Reserved for future use (should be zero)
298 * @vtd: Intel VT-d specific data
299 *
300 * Guest to host PASID mapping can be an identity or non-identity, where guest
301 * has its own PASID space. For non-identify mapping, guest to host PASID lookup
302 * is needed when VM programs guest PASID into an assigned device. VMM may
303 * trap such PASID programming then request host IOMMU driver to convert guest
304 * PASID to host PASID based on this bind data.
305 */
306struct iommu_gpasid_bind_data {
307#define IOMMU_GPASID_BIND_VERSION_1 1
308 __u32 version;
309#define IOMMU_PASID_FORMAT_INTEL_VTD 1
310 __u32 format;
311#define IOMMU_SVA_GPASID_VAL (1 << 0) /* guest PASID valid */
312 __u64 flags;
313 __u64 gpgd;
314 __u64 hpasid;
315 __u64 gpasid;
316 __u32 addr_width;
317 __u8 padding[12];
318 /* Vendor specific data */
319 union {
320 struct iommu_gpasid_bind_data_vtd vtd;
321 };
322};
323
155#endif /* _UAPI_IOMMU_H */324#endif /* _UAPI_IOMMU_H */
include/uapi/linux/kcov.h+28−0
@@ -4,9 +4,24 @@ · 3 unmodified lines
4 4
5#include <linux/types.h>5#include <linux/types.h>
6 6
7/*
8 * Argument for KCOV_REMOTE_ENABLE ioctl, see Documentation/dev-tools/kcov.rst
9 * and the comment before kcov_remote_start() for usage details.
10 */
11struct kcov_remote_arg {
12 __u32 trace_mode; /* KCOV_TRACE_PC or KCOV_TRACE_CMP */
13 __u32 area_size; /* Length of coverage buffer in words */
14 __u32 num_handles; /* Size of handles array */
15 __aligned_u64 common_handle;
16 __aligned_u64 handles[0];
17};
18
19#define KCOV_REMOTE_MAX_HANDLES 0x100
20
7#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)21#define KCOV_INIT_TRACE _IOR('c', 1, unsigned long)
8#define KCOV_ENABLE _IO('c', 100)22#define KCOV_ENABLE _IO('c', 100)
9#define KCOV_DISABLE _IO('c', 101)23#define KCOV_DISABLE _IO('c', 101)
24#define KCOV_REMOTE_ENABLE _IOW('c', 102, struct kcov_remote_arg)
10 25
11enum {26enum {
12 /*27 /*
@@ -32,4 +47,17 @@ enum { · 19 unmodified lines
32#define KCOV_CMP_SIZE(n) ((n) << 1)47#define KCOV_CMP_SIZE(n) ((n) << 1)
33#define KCOV_CMP_MASK KCOV_CMP_SIZE(3)48#define KCOV_CMP_MASK KCOV_CMP_SIZE(3)
34 49
50#define KCOV_SUBSYSTEM_COMMON (0x00ull << 56)
51#define KCOV_SUBSYSTEM_USB (0x01ull << 56)
52
53#define KCOV_SUBSYSTEM_MASK (0xffull << 56)
54#define KCOV_INSTANCE_MASK (0xffffffffull)
55
56static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst)
57{
58 if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK)
59 return 0;
60 return subsys | inst;
61}
62
35#endif /* _LINUX_KCOV_IOCTLS_H */63#endif /* _LINUX_KCOV_IOCTLS_H */
include/uapi/linux/kvm.h+12−0
@@ -235,6 +235,7 @@ struct kvm_hyperv_exit { · 234 unmodified lines
235#define KVM_EXIT_S390_STSI 25235#define KVM_EXIT_S390_STSI 25
236#define KVM_EXIT_IOAPIC_EOI 26236#define KVM_EXIT_IOAPIC_EOI 26
237#define KVM_EXIT_HYPERV 27237#define KVM_EXIT_HYPERV 27
238#define KVM_EXIT_ARM_NISV 28
238 239
239/* For KVM_EXIT_INTERNAL_ERROR */240/* For KVM_EXIT_INTERNAL_ERROR */
240/* Emulate instruction failed. */241/* Emulate instruction failed. */
@@ -394,6 +395,11 @@ struct kvm_run { · 153 unmodified lines
394 } eoi;395 } eoi;
395 /* KVM_EXIT_HYPERV */396 /* KVM_EXIT_HYPERV */
396 struct kvm_hyperv_exit hyperv;397 struct kvm_hyperv_exit hyperv;
398 /* KVM_EXIT_ARM_NISV */
399 struct {
400 __u64 esr_iss;
401 __u64 fault_ipa;
402 } arm_nisv;
397 /* Fix the size of the union. */403 /* Fix the size of the union. */
398 char padding[256];404 char padding[256];
399 };405 };
@@ -1000,6 +1006,9 @@ struct kvm_ppc_resize_hpt { · 600 unmodified lines
1000#define KVM_CAP_PMU_EVENT_FILTER 1731006#define KVM_CAP_PMU_EVENT_FILTER 173
1001#define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 1741007#define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174
1002#define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 1751008#define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175
1009#define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176
1010#define KVM_CAP_ARM_NISV_TO_USER 177
1011#define KVM_CAP_ARM_INJECT_EXT_DABT 178
1003 1012
1004#ifdef KVM_CAP_IRQ_ROUTING1013#ifdef KVM_CAP_IRQ_ROUTING
1005 1014
@@ -1227,6 +1236,8 @@ enum kvm_device_type { · 221 unmodified lines
1227#define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS1236#define KVM_DEV_TYPE_ARM_VGIC_ITS KVM_DEV_TYPE_ARM_VGIC_ITS
1228 KVM_DEV_TYPE_XIVE,1237 KVM_DEV_TYPE_XIVE,
1229#define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE1238#define KVM_DEV_TYPE_XIVE KVM_DEV_TYPE_XIVE
1239 KVM_DEV_TYPE_ARM_PV_TIME,
1240#define KVM_DEV_TYPE_ARM_PV_TIME KVM_DEV_TYPE_ARM_PV_TIME
1230 KVM_DEV_TYPE_MAX,1241 KVM_DEV_TYPE_MAX,
1231};1242};
1232 1243
@@ -1337,6 +1348,7 @@ struct kvm_s390_ucas_mapping { · 104 unmodified lines
1337#define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)1348#define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
1338/* Available with KVM_CAP_PMU_EVENT_FILTER */1349/* Available with KVM_CAP_PMU_EVENT_FILTER */
1339#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)1350#define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
1351#define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
1340 1352
1341/* ioctl for vm fd */1353/* ioctl for vm fd */
1342#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)1354#define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
include/uapi/linux/lwtunnel.h+41−0
@@ -27,6 +27,7 @@ enum lwtunnel_ip_t { · 26 unmodified lines
27 LWTUNNEL_IP_TOS,27 LWTUNNEL_IP_TOS,
28 LWTUNNEL_IP_FLAGS,28 LWTUNNEL_IP_FLAGS,
29 LWTUNNEL_IP_PAD,29 LWTUNNEL_IP_PAD,
30 LWTUNNEL_IP_OPTS,
30 __LWTUNNEL_IP_MAX,31 __LWTUNNEL_IP_MAX,
31};32};
32 33
@@ -41,11 +42,51 @@ enum lwtunnel_ip6_t { · 8 unmodified lines
41 LWTUNNEL_IP6_TC,42 LWTUNNEL_IP6_TC,
42 LWTUNNEL_IP6_FLAGS,43 LWTUNNEL_IP6_FLAGS,
43 LWTUNNEL_IP6_PAD,44 LWTUNNEL_IP6_PAD,
45 LWTUNNEL_IP6_OPTS,
44 __LWTUNNEL_IP6_MAX,46 __LWTUNNEL_IP6_MAX,
45};47};
46 48
47#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)49#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
48 50
51enum {
52 LWTUNNEL_IP_OPTS_UNSPEC,
53 LWTUNNEL_IP_OPTS_GENEVE,
54 LWTUNNEL_IP_OPTS_VXLAN,
55 LWTUNNEL_IP_OPTS_ERSPAN,
56 __LWTUNNEL_IP_OPTS_MAX,
57};
58
59#define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
60
61enum {
62 LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
63 LWTUNNEL_IP_OPT_GENEVE_CLASS,
64 LWTUNNEL_IP_OPT_GENEVE_TYPE,
65 LWTUNNEL_IP_OPT_GENEVE_DATA,
66 __LWTUNNEL_IP_OPT_GENEVE_MAX,
67};
68
69#define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
70
71enum {
72 LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
73 LWTUNNEL_IP_OPT_VXLAN_GBP,
74 __LWTUNNEL_IP_OPT_VXLAN_MAX,
75};
76
77#define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
78
79enum {
80 LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
81 LWTUNNEL_IP_OPT_ERSPAN_VER,
82 LWTUNNEL_IP_OPT_ERSPAN_INDEX,
83 LWTUNNEL_IP_OPT_ERSPAN_DIR,
84 LWTUNNEL_IP_OPT_ERSPAN_HWID,
85 __LWTUNNEL_IP_OPT_ERSPAN_MAX,
86};
87
88#define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
89
49enum {90enum {
50 LWT_BPF_PROG_UNSPEC,91 LWT_BPF_PROG_UNSPEC,
51 LWT_BPF_PROG_FD,92 LWT_BPF_PROG_FD,
include/uapi/linux/magic.h+1−0
@@ -94,5 +94,6 @@ · 93 unmodified lines
94#define ZSMALLOC_MAGIC 0x5829582994#define ZSMALLOC_MAGIC 0x58295829
95#define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */95#define DMA_BUF_MAGIC 0x444d4142 /* "DMAB" */
96#define Z3FOLD_MAGIC 0x3396#define Z3FOLD_MAGIC 0x33
97#define PPC_CMM_MAGIC 0xc7571590
97 98
98#endif /* __LINUX_MAGIC_H__ */99#endif /* __LINUX_MAGIC_H__ */
include/uapi/linux/msg.h+3−3
@@ -19,9 +19,9 @@ struct msqid_ds { · 18 unmodified lines
19 struct ipc_perm msg_perm;19 struct ipc_perm msg_perm;
20 struct msg *msg_first; /* first message on queue,unused */20 struct msg *msg_first; /* first message on queue,unused */
21 struct msg *msg_last; /* last message in queue,unused */21 struct msg *msg_last; /* last message in queue,unused */
22 __kernel_time_t msg_stime; /* last msgsnd time */22 __kernel_old_time_t msg_stime; /* last msgsnd time */
23 __kernel_time_t msg_rtime; /* last msgrcv time */23 __kernel_old_time_t msg_rtime; /* last msgrcv time */
24 __kernel_time_t msg_ctime; /* last change time */24 __kernel_old_time_t msg_ctime; /* last change time */
25 unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */25 unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */
26 unsigned long msg_lqbytes; /* ditto */26 unsigned long msg_lqbytes; /* ditto */
27 unsigned short msg_cbytes; /* current number of bytes on queue */27 unsigned short msg_cbytes; /* current number of bytes on queue */
include/uapi/linux/netfilter/ipset/ip_set.h+2−0
@@ -205,6 +205,8 @@ enum ipset_cadt_flags { · 204 unmodified lines
205 IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),205 IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),
206 IPSET_FLAG_BIT_WITH_SKBINFO = 6,206 IPSET_FLAG_BIT_WITH_SKBINFO = 6,
207 IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),207 IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),
208 IPSET_FLAG_BIT_IFACE_WILDCARD = 7,
209 IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD),
208 IPSET_FLAG_CADT_MAX = 15,210 IPSET_FLAG_CADT_MAX = 15,
209};211};
210 212
include/uapi/linux/netfilter/nf_tables.h+4−0
@@ -144,12 +144,14 @@ enum nft_list_attributes { · 143 unmodified lines
144 * @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)144 * @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
145 * @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)145 * @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
146 * @NFTA_HOOK_DEV: netdevice name (NLA_STRING)146 * @NFTA_HOOK_DEV: netdevice name (NLA_STRING)
147 * @NFTA_HOOK_DEVS: list of netdevices (NLA_NESTED)
147 */148 */
148enum nft_hook_attributes {149enum nft_hook_attributes {
149 NFTA_HOOK_UNSPEC,150 NFTA_HOOK_UNSPEC,
150 NFTA_HOOK_HOOKNUM,151 NFTA_HOOK_HOOKNUM,
151 NFTA_HOOK_PRIORITY,152 NFTA_HOOK_PRIORITY,
152 NFTA_HOOK_DEV,153 NFTA_HOOK_DEV,
154 NFTA_HOOK_DEVS,
153 __NFTA_HOOK_MAX155 __NFTA_HOOK_MAX
154};156};
155#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)157#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
@@ -1516,6 +1518,7 @@ enum nft_object_attributes { · 1360 unmodified lines
1516 * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32)1518 * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32)
1517 * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32)1519 * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32)
1518 * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64)1520 * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64)
1521 * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32)
1519 */1522 */
1520enum nft_flowtable_attributes {1523enum nft_flowtable_attributes {
1521 NFTA_FLOWTABLE_UNSPEC,1524 NFTA_FLOWTABLE_UNSPEC,
@@ -1525,6 +1528,7 @@ enum nft_flowtable_attributes { · 3 unmodified lines
1525 NFTA_FLOWTABLE_USE,1528 NFTA_FLOWTABLE_USE,
1526 NFTA_FLOWTABLE_HANDLE,1529 NFTA_FLOWTABLE_HANDLE,
1527 NFTA_FLOWTABLE_PAD,1530 NFTA_FLOWTABLE_PAD,
1531 NFTA_FLOWTABLE_FLAGS,
1528 __NFTA_FLOWTABLE_MAX1532 __NFTA_FLOWTABLE_MAX
1529};1533};
1530#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)1534#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)
include/uapi/linux/netfilter/xt_sctp.h+3−3
@@ -41,19 +41,19 @@ struct xt_sctp_info { · 40 unmodified lines
41#define SCTP_CHUNKMAP_SET(chunkmap, type) \41#define SCTP_CHUNKMAP_SET(chunkmap, type) \
42 do { \42 do { \
43 (chunkmap)[type / bytes(__u32)] |= \43 (chunkmap)[type / bytes(__u32)] |= \
44 1 << (type % bytes(__u32)); \44 1u << (type % bytes(__u32)); \
45 } while (0)45 } while (0)
46 46
47#define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \47#define SCTP_CHUNKMAP_CLEAR(chunkmap, type) \
48 do { \48 do { \
49 (chunkmap)[type / bytes(__u32)] &= \49 (chunkmap)[type / bytes(__u32)] &= \
50 ~(1 << (type % bytes(__u32))); \50 ~(1u << (type % bytes(__u32))); \
51 } while (0)51 } while (0)
52 52
53#define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \53#define SCTP_CHUNKMAP_IS_SET(chunkmap, type) \
54({ \54({ \
55 ((chunkmap)[type / bytes (__u32)] & \55 ((chunkmap)[type / bytes (__u32)] & \
56 (1 << (type % bytes (__u32)))) ? 1: 0; \56 (1u << (type % bytes (__u32)))) ? 1: 0; \
57})57})
58 58
59#define SCTP_CHUNKMAP_RESET(chunkmap) \59#define SCTP_CHUNKMAP_RESET(chunkmap) \
include/uapi/linux/netfilter_arp/arp_tables.h+1−1
@@ -199,7 +199,7 @@ struct arpt_get_entries { · 198 unmodified lines
199/* Helper functions */199/* Helper functions */
200static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e)200static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e)
201{201{
202 return (void *)e + e->target_offset;202 return (struct xt_entry_target *)((char *)e + e->target_offset);
203}203}
204 204
205/*205/*
include/uapi/linux/netfilter_bridge/ebtables.h+1−1
@@ -194,7 +194,7 @@ struct ebt_entry { · 193 unmodified lines
194static __inline__ struct ebt_entry_target *194static __inline__ struct ebt_entry_target *
195ebt_get_target(struct ebt_entry *e)195ebt_get_target(struct ebt_entry *e)
196{196{
197 return (void *)e + e->target_offset;197 return (struct ebt_entry_target *)((char *)e + e->target_offset);
198}198}
199 199
200/* {g,s}etsockopt numbers */200/* {g,s}etsockopt numbers */
include/uapi/linux/netfilter_ipv4/ip_tables.h+1−1
@@ -222,7 +222,7 @@ struct ipt_get_entries { · 221 unmodified lines
222static __inline__ struct xt_entry_target *222static __inline__ struct xt_entry_target *
223ipt_get_target(struct ipt_entry *e)223ipt_get_target(struct ipt_entry *e)
224{224{
225 return (void *)e + e->target_offset;225 return (struct xt_entry_target *)((char *)e + e->target_offset);
226}226}
227 227
228/*228/*
include/uapi/linux/netfilter_ipv6/ip6_tables.h+1−1
@@ -262,7 +262,7 @@ struct ip6t_get_entries { · 261 unmodified lines
262static __inline__ struct xt_entry_target *262static __inline__ struct xt_entry_target *
263ip6t_get_target(struct ip6t_entry *e)263ip6t_get_target(struct ip6t_entry *e)
264{264{
265 return (void *)e + e->target_offset;265 return (struct xt_entry_target *)((char *)e + e->target_offset);
266}266}
267 267
268/*268/*
include/uapi/linux/nl80211.h+39−0
@@ -248,6 +248,22 @@ · 247 unmodified lines
248 * %NL80211_ATTR_SAE_PASSWORD.248 * %NL80211_ATTR_SAE_PASSWORD.
249 */249 */
250 250
251/**
252 * DOC: VLAN offload support for setting group keys and binding STAs to VLANs
253 *
254 * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they
255 * support offloading VLAN functionality in a manner where the driver exposes a
256 * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs
257 * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet
258 * case. Frames received from stations that are not assigned to any VLAN are
259 * delivered on the main netdev and frames to such stations can be sent through
260 * that main netdev.
261 *
262 * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and
263 * %NL80211_CMD_SET_STATION will optionally specify vlan_id using
264 * %NL80211_ATTR_VLAN_ID.
265 */
266
251/**267/**
252 * enum nl80211_commands - supported nl80211 commands268 * enum nl80211_commands - supported nl80211 commands
253 *269 *
@@ -571,6 +587,14 @@ · 317 unmodified lines
571 * set of BSSID,frequency parameters is used (i.e., either the enforcing587 * set of BSSID,frequency parameters is used (i.e., either the enforcing
572 * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict588 * %NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
573 * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).589 * %NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
590 * Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
591 * %NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
592 * included, these IEs through %NL80211_ATTR_IE are specified by the user
593 * space based on the best possible BSS selected. Thus, if the driver ends
594 * up selecting a different BSS, it can modify these IEs accordingly (e.g.
595 * userspace asks the driver to perform PMKSA caching with BSS1 and the
596 * driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
597 * has to get updated with the apt PMKID).
574 * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within598 * %NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
575 * the ESS in case the device is already associated and an association with599 * the ESS in case the device is already associated and an association with
576 * a different BSS is desired.600 * a different BSS is desired.
@@ -2373,6 +2397,9 @@ enum nl80211_commands { · 1796 unmodified lines
2373 * the allowed channel bandwidth configurations. (u8 attribute)2397 * the allowed channel bandwidth configurations. (u8 attribute)
2374 * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.2398 * Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
2375 *2399 *
2400 * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
2401 * (u16).
2402 *
2376 * @NUM_NL80211_ATTR: total number of nl80211_attrs available2403 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
2377 * @NL80211_ATTR_MAX: highest attribute number currently defined2404 * @NL80211_ATTR_MAX: highest attribute number currently defined
2378 * @__NL80211_ATTR_AFTER_LAST: internal use2405 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2835,6 +2862,8 @@ enum nl80211_attrs { · 456 unmodified lines
2835 NL80211_ATTR_WIPHY_EDMG_CHANNELS,2862 NL80211_ATTR_WIPHY_EDMG_CHANNELS,
2836 NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,2863 NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
2837 2864
2865 NL80211_ATTR_VLAN_ID,
2866
2838 /* add attributes here, update the policy in nl80211.c */2867 /* add attributes here, update the policy in nl80211.c */
2839 2868
2840 __NL80211_ATTR_AFTER_LAST,2869 __NL80211_ATTR_AFTER_LAST,
@@ -5484,6 +5513,14 @@ enum nl80211_feature_flags { · 2643 unmodified lines
5484 * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in5513 * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
5485 * station mode (SAE password is passed as part of the connect command).5514 * station mode (SAE password is passed as part of the connect command).
5486 *5515 *
5516 * @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev
5517 * with VLAN tagged frames and separate VLAN-specific netdevs added using
5518 * vconfig similarly to the Ethernet case.
5519 *
5520 * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
5521 * feature, which prevents bufferbloat by using the expected transmission
5522 * time to limit the amount of data buffered in the hardware.
5523 *
5487 * @NUM_NL80211_EXT_FEATURES: number of extended features.5524 * @NUM_NL80211_EXT_FEATURES: number of extended features.
5488 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.5525 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
5489 */5526 */
@@ -5529,6 +5566,8 @@ enum nl80211_ext_feature_index { · 39 unmodified lines
5529 NL80211_EXT_FEATURE_EXT_KEY_ID,5566 NL80211_EXT_FEATURE_EXT_KEY_ID,
5530 NL80211_EXT_FEATURE_STA_TX_PWR,5567 NL80211_EXT_FEATURE_STA_TX_PWR,
5531 NL80211_EXT_FEATURE_SAE_OFFLOAD,5568 NL80211_EXT_FEATURE_SAE_OFFLOAD,
5569 NL80211_EXT_FEATURE_VLAN_OFFLOAD,
5570 NL80211_EXT_FEATURE_AQL,
5532 5571
5533 /* add new features before the definition below */5572 /* add new features before the definition below */
5534 NUM_NL80211_EXT_FEATURES,5573 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/nvme_ioctl.h+1−0
@@ -63,6 +63,7 @@ struct nvme_passthru_cmd64 { · 62 unmodified lines
63 __u32 cdw14;63 __u32 cdw14;
64 __u32 cdw15;64 __u32 cdw15;
65 __u32 timeout_ms;65 __u32 timeout_ms;
66 __u32 rsvd2;
66 __u64 result;67 __u64 result;
67};68};
68 69
include/uapi/linux/openvswitch.h+3−1
@@ -173,6 +173,7 @@ enum ovs_packet_cmd { · 172 unmodified lines
173 * @OVS_PACKET_ATTR_LEN: Packet size before truncation.173 * @OVS_PACKET_ATTR_LEN: Packet size before truncation.
174 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment174 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
175 * size.175 * size.
176 * @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb).
176 *177 *
177 * These attributes follow the &struct ovs_header within the Generic Netlink178 * These attributes follow the &struct ovs_header within the Generic Netlink
178 * payload for %OVS_PACKET_* commands.179 * payload for %OVS_PACKET_* commands.
@@ -190,7 +191,8 @@ enum ovs_packet_attr { · 11 unmodified lines
190 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,191 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,
191 error logging should be suppressed. */192 error logging should be suppressed. */
192 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */193 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
193 OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */194 OVS_PACKET_ATTR_LEN, /* Packet size before truncation. */
195 OVS_PACKET_ATTR_HASH, /* Packet hash. */
194 __OVS_PACKET_ATTR_MAX196 __OVS_PACKET_ATTR_MAX
195};197};
196 198
include/uapi/linux/pci_regs.h+3−0
@@ -34,6 +34,7 @@ · 33 unmodified lines
34 * of which the first 64 bytes are standardized as follows:34 * of which the first 64 bytes are standardized as follows:
35 */35 */
36#define PCI_STD_HEADER_SIZEOF 6436#define PCI_STD_HEADER_SIZEOF 64
37#define PCI_STD_NUM_BARS 6 /* Number of standard BARs */
37#define PCI_VENDOR_ID 0x00 /* 16 bits */38#define PCI_VENDOR_ID 0x00 /* 16 bits */
38#define PCI_DEVICE_ID 0x02 /* 16 bits */39#define PCI_DEVICE_ID 0x02 /* 16 bits */
39#define PCI_COMMAND 0x04 /* 16 bits */40#define PCI_COMMAND 0x04 /* 16 bits */
@@ -673,6 +674,8 @@ · 633 unmodified lines
673#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */674#define PCI_EXP_LNKCTL2_TLS_8_0GT 0x0003 /* Supported Speed 8GT/s */
674#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */675#define PCI_EXP_LNKCTL2_TLS_16_0GT 0x0004 /* Supported Speed 16GT/s */
675#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */676#define PCI_EXP_LNKCTL2_TLS_32_0GT 0x0005 /* Supported Speed 32GT/s */
677#define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010 /* Enter Compliance */
678#define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380 /* Transmit Margin */
676#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */679#define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
677#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */680#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
678#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */681#define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
include/uapi/linux/perf_event.h+8−2
@@ -141,8 +141,9 @@ enum perf_event_sample_format { · 140 unmodified lines
141 PERF_SAMPLE_TRANSACTION = 1U << 17,141 PERF_SAMPLE_TRANSACTION = 1U << 17,
142 PERF_SAMPLE_REGS_INTR = 1U << 18,142 PERF_SAMPLE_REGS_INTR = 1U << 18,
143 PERF_SAMPLE_PHYS_ADDR = 1U << 19,143 PERF_SAMPLE_PHYS_ADDR = 1U << 19,
144 PERF_SAMPLE_AUX = 1U << 20,
144 145
145 PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */146 PERF_SAMPLE_MAX = 1U << 21, /* non-ABI */
146 147
147 __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */148 __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, /* non-ABI; internal use */
148};149};
@@ -300,6 +301,7 @@ enum perf_event_read_format { · 151 unmodified lines
300 /* add: sample_stack_user */301 /* add: sample_stack_user */
301#define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */302#define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */
302#define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */303#define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */
304#define PERF_ATTR_SIZE_VER6 120 /* add: aux_sample_size */
303 305
304/*306/*
305 * Hardware event_id to monitor via a performance monitoring event:307 * Hardware event_id to monitor via a performance monitoring event:
@@ -424,7 +426,9 @@ struct perf_event_attr { · 118 unmodified lines
424 */426 */
425 __u32 aux_watermark;427 __u32 aux_watermark;
426 __u16 sample_max_stack;428 __u16 sample_max_stack;
427 __u16 __reserved_2; /* align to __u64 */429 __u16 __reserved_2;
430 __u32 aux_sample_size;
431 __u32 __reserved_3;
428};432};
429 433
430/*434/*
@@ -864,6 +868,8 @@ enum perf_event_type { · 433 unmodified lines
864 * { u64 abi; # enum perf_sample_regs_abi868 * { u64 abi; # enum perf_sample_regs_abi
865 * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR869 * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
866 * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR870 * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
871 * { u64 size;
872 * char data[size]; } && PERF_SAMPLE_AUX
867 * };873 * };
868 */874 */
869 PERF_RECORD_SAMPLE = 9,875 PERF_RECORD_SAMPLE = 9,
include/uapi/linux/pkt_cls.h+34−0
@@ -16,9 +16,14 @@ enum { · 15 unmodified lines
16 TCA_ACT_STATS,16 TCA_ACT_STATS,
17 TCA_ACT_PAD,17 TCA_ACT_PAD,
18 TCA_ACT_COOKIE,18 TCA_ACT_COOKIE,
19 TCA_ACT_FLAGS,
19 __TCA_ACT_MAX20 __TCA_ACT_MAX
20};21};
21 22
23#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
24 * actions stats.
25 */
26
22#define TCA_ACT_MAX __TCA_ACT_MAX27#define TCA_ACT_MAX __TCA_ACT_MAX
23#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)28#define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
24#define TCA_ACT_MAX_PRIO 3229#define TCA_ACT_MAX_PRIO 32
@@ -566,6 +571,14 @@ enum { · 541 unmodified lines
566 * TCA_FLOWER_KEY_ENC_OPT_GENEVE_571 * TCA_FLOWER_KEY_ENC_OPT_GENEVE_
567 * attributes572 * attributes
568 */573 */
574 TCA_FLOWER_KEY_ENC_OPTS_VXLAN, /* Nested
575 * TCA_FLOWER_KEY_ENC_OPT_VXLAN_
576 * attributes
577 */
578 TCA_FLOWER_KEY_ENC_OPTS_ERSPAN, /* Nested
579 * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
580 * attributes
581 */
569 __TCA_FLOWER_KEY_ENC_OPTS_MAX,582 __TCA_FLOWER_KEY_ENC_OPTS_MAX,
570};583};
571 584
@@ -583,6 +596,27 @@ enum { · 11 unmodified lines
583#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \596#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
584 (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)597 (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
585 598
599enum {
600 TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
601 TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
602 __TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
603};
604
605#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \
606 (__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
607
608enum {
609 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
610 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
611 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
612 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
613 TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
614 __TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
615};
616
617#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
618 (__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
619
586enum {620enum {
587 TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),621 TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
588 TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),622 TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
include/uapi/linux/pkt_sched.h+14−8
@@ -950,19 +950,25 @@ enum { · 949 unmodified lines
950 TCA_PIE_BETA,950 TCA_PIE_BETA,
951 TCA_PIE_ECN,951 TCA_PIE_ECN,
952 TCA_PIE_BYTEMODE,952 TCA_PIE_BYTEMODE,
953 TCA_PIE_DQ_RATE_ESTIMATOR,
953 __TCA_PIE_MAX954 __TCA_PIE_MAX
954};955};
955#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)956#define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
956 957
957struct tc_pie_xstats {958struct tc_pie_xstats {
958 __u64 prob; /* current probability */959 __u64 prob; /* current probability */
959 __u32 delay; /* current delay in ms */960 __u32 delay; /* current delay in ms */
960 __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */961 __u32 avg_dq_rate; /* current average dq_rate in
961 __u32 packets_in; /* total number of packets enqueued */962 * bits/pie_time
962 __u32 dropped; /* packets dropped due to pie_action */963 */
963 __u32 overlimit; /* dropped due to lack of space in queue */964 __u32 dq_rate_estimating; /* is avg_dq_rate being calculated? */
964 __u32 maxq; /* maximum queue size */965 __u32 packets_in; /* total number of packets enqueued */
965 __u32 ecn_mark; /* packets marked with ecn*/966 __u32 dropped; /* packets dropped due to pie_action */
967 __u32 overlimit; /* dropped due to lack of space
968 * in queue
969 */
970 __u32 maxq; /* maximum queue size */
971 __u32 ecn_mark; /* packets marked with ecn*/
966};972};
967 973
968/* CBS */974/* CBS */
include/uapi/linux/ppp-ioctl.h+2−0
@@ -104,6 +104,8 @@ struct pppol2tp_ioc_stats { · 103 unmodified lines
104#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */104#define PPPIOCGDEBUG _IOR('t', 65, int) /* Read debug level */
105#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */105#define PPPIOCSDEBUG _IOW('t', 64, int) /* Set debug level */
106#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */106#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle) /* get idle time */
107#define PPPIOCGIDLE32 _IOR('t', 63, struct ppp_idle32) /* 32-bit times */
108#define PPPIOCGIDLE64 _IOR('t', 63, struct ppp_idle64) /* 64-bit times */
107#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */109#define PPPIOCNEWUNIT _IOWR('t', 62, int) /* create new ppp unit */
108#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */110#define PPPIOCATTACH _IOW('t', 61, int) /* attach to ppp unit */
109#define PPPIOCDETACH _IOW('t', 60, int) /* obsolete, do not use */111#define PPPIOCDETACH _IOW('t', 60, int) /* obsolete, do not use */
include/uapi/linux/ppp_defs.h+16−2
@@ -142,10 +142,24 @@ struct ppp_comp_stats { · 141 unmodified lines
142/*142/*
143 * The following structure records the time in seconds since143 * The following structure records the time in seconds since
144 * the last NP packet was sent or received.144 * the last NP packet was sent or received.
145 *
146 * Linux implements both 32-bit and 64-bit time_t versions
147 * for compatibility with user space that defines ppp_idle
148 * based on the libc time_t.
145 */149 */
146struct ppp_idle {150struct ppp_idle {
147 __kernel_time_t xmit_idle; /* time since last NP packet sent */151 __kernel_old_time_t xmit_idle; /* time since last NP packet sent */
148 __kernel_time_t recv_idle; /* time since last NP packet received */152 __kernel_old_time_t recv_idle; /* time since last NP packet received */
153};
154
155struct ppp_idle32 {
156 __s32 xmit_idle; /* time since last NP packet sent */
157 __s32 recv_idle; /* time since last NP packet received */
158};
159
160struct ppp_idle64 {
161 __s64 xmit_idle; /* time since last NP packet sent */
162 __s64 recv_idle; /* time since last NP packet received */
149};163};
150 164
151#endif /* _UAPI_PPP_DEFS_H_ */165#endif /* _UAPI_PPP_DEFS_H_ */
include/uapi/linux/psp-sev.h+3−0
@@ -58,6 +58,9 @@ typedef enum { · 57 unmodified lines
58 SEV_RET_HWSEV_RET_PLATFORM,58 SEV_RET_HWSEV_RET_PLATFORM,
59 SEV_RET_HWSEV_RET_UNSAFE,59 SEV_RET_HWSEV_RET_UNSAFE,
60 SEV_RET_UNSUPPORTED,60 SEV_RET_UNSUPPORTED,
61 SEV_RET_INVALID_PARAM,
62 SEV_RET_RESOURCE_LIMIT,
63 SEV_RET_SECURE_DATA_INVALID,
61 SEV_RET_MAX,64 SEV_RET_MAX,
62} sev_ret_code;65} sev_ret_code;
63 66
include/uapi/linux/ptp_clock.h+4−1
@@ -31,13 +31,16 @@ · 30 unmodified lines
31#define PTP_ENABLE_FEATURE (1<<0)31#define PTP_ENABLE_FEATURE (1<<0)
32#define PTP_RISING_EDGE (1<<1)32#define PTP_RISING_EDGE (1<<1)
33#define PTP_FALLING_EDGE (1<<2)33#define PTP_FALLING_EDGE (1<<2)
34#define PTP_STRICT_FLAGS (1<<3)
35#define PTP_EXTTS_EDGES (PTP_RISING_EDGE | PTP_FALLING_EDGE)
34 36
35/*37/*
36 * flag fields valid for the new PTP_EXTTS_REQUEST2 ioctl.38 * flag fields valid for the new PTP_EXTTS_REQUEST2 ioctl.
37 */39 */
38#define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | \40#define PTP_EXTTS_VALID_FLAGS (PTP_ENABLE_FEATURE | \
39 PTP_RISING_EDGE | \41 PTP_RISING_EDGE | \
40 PTP_FALLING_EDGE)42 PTP_FALLING_EDGE | \
43 PTP_STRICT_FLAGS)
41 44
42/*45/*
43 * flag fields valid for the original PTP_EXTTS_REQUEST ioctl.46 * flag fields valid for the original PTP_EXTTS_REQUEST ioctl.
include/uapi/linux/resource.h+2−2
@@ -22,8 +22,8 @@ · 21 unmodified lines
22#define RUSAGE_THREAD 1 /* only the calling thread */22#define RUSAGE_THREAD 1 /* only the calling thread */
23 23
24struct rusage {24struct rusage {
25 struct timeval ru_utime; /* user time used */25 struct __kernel_old_timeval ru_utime; /* user time used */
26 struct timeval ru_stime; /* system time used */26 struct __kernel_old_timeval ru_stime; /* system time used */
27 __kernel_long_t ru_maxrss; /* maximum resident set size */27 __kernel_long_t ru_maxrss; /* maximum resident set size */
28 __kernel_long_t ru_ixrss; /* integral shared memory size */28 __kernel_long_t ru_ixrss; /* integral shared memory size */
29 __kernel_long_t ru_idrss; /* integral unshared data size */29 __kernel_long_t ru_idrss; /* integral unshared data size */
include/uapi/linux/rtnetlink.h+7−0
@@ -164,6 +164,13 @@ enum { · 163 unmodified lines
164 RTM_GETNEXTHOP,164 RTM_GETNEXTHOP,
165#define RTM_GETNEXTHOP RTM_GETNEXTHOP165#define RTM_GETNEXTHOP RTM_GETNEXTHOP
166 166
167 RTM_NEWLINKPROP = 108,
168#define RTM_NEWLINKPROP RTM_NEWLINKPROP
169 RTM_DELLINKPROP,
170#define RTM_DELLINKPROP RTM_DELLINKPROP
171 RTM_GETLINKPROP,
172#define RTM_GETLINKPROP RTM_GETLINKPROP
173
167 __RTM_MAX,174 __RTM_MAX,
168#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)175#define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
169};176};
include/uapi/linux/scc.h+1−0
@@ -4,6 +4,7 @@ · 3 unmodified lines
4#ifndef _UAPI_SCC_H4#ifndef _UAPI_SCC_H
5#define _UAPI_SCC_H5#define _UAPI_SCC_H
6 6
7#include <linux/sockios.h>
7 8
8/* selection of hardware types */9/* selection of hardware types */
9 10
include/uapi/linux/sched.h+42−18
@@ -33,27 +33,48 @@ · 32 unmodified lines
33#define CLONE_NEWNET 0x40000000 /* New network namespace */33#define CLONE_NEWNET 0x40000000 /* New network namespace */
34#define CLONE_IO 0x80000000 /* Clone io context */34#define CLONE_IO 0x80000000 /* Clone io context */
35 35
36/* Flags for the clone3() syscall. */
37#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
38
36#ifndef __ASSEMBLY__39#ifndef __ASSEMBLY__
37/**40/**
38 * struct clone_args - arguments for the clone3 syscall41 * struct clone_args - arguments for the clone3 syscall
39 * @flags: Flags for the new process as listed above.42 * @flags: Flags for the new process as listed above.
40 * All flags are valid except for CSIGNAL and43 * All flags are valid except for CSIGNAL and
41 * CLONE_DETACHED.44 * CLONE_DETACHED.
42 * @pidfd: If CLONE_PIDFD is set, a pidfd will be45 * @pidfd: If CLONE_PIDFD is set, a pidfd will be
43 * returned in this argument.46 * returned in this argument.
44 * @child_tid: If CLONE_CHILD_SETTID is set, the TID of the47 * @child_tid: If CLONE_CHILD_SETTID is set, the TID of the
45 * child process will be returned in the child's48 * child process will be returned in the child's
46 * memory.49 * memory.
47 * @parent_tid: If CLONE_PARENT_SETTID is set, the TID of50 * @parent_tid: If CLONE_PARENT_SETTID is set, the TID of
48 * the child process will be returned in the51 * the child process will be returned in the
49 * parent's memory.52 * parent's memory.
50 * @exit_signal: The exit_signal the parent process will be53 * @exit_signal: The exit_signal the parent process will be
51 * sent when the child exits.54 * sent when the child exits.
52 * @stack: Specify the location of the stack for the55 * @stack: Specify the location of the stack for the
53 * child process.56 * child process.
54 * @stack_size: The size of the stack for the child process.57 * Note, @stack is expected to point to the
55 * @tls: If CLONE_SETTLS is set, the tls descriptor58 * lowest address. The stack direction will be
56 * is set to tls.59 * determined by the kernel and set up
60 * appropriately based on @stack_size.
61 * @stack_size: The size of the stack for the child process.
62 * @tls: If CLONE_SETTLS is set, the tls descriptor
63 * is set to tls.
64 * @set_tid: Pointer to an array of type *pid_t. The size
65 * of the array is defined using @set_tid_size.
66 * This array is used to select PIDs/TIDs for
67 * newly created processes. The first element in
68 * this defines the PID in the most nested PID
69 * namespace. Each additional element in the array
70 * defines the PID in the parent PID namespace of
71 * the original PID namespace. If the array has
72 * less entries than the number of currently
73 * nested PID namespaces only the PIDs in the
74 * corresponding namespaces are set.
75 * @set_tid_size: This defines the size of the array referenced
76 * in @set_tid. This cannot be larger than the
77 * kernel's limit of nested PID namespaces.
57 *78 *
58 * The structure is versioned by size and thus extensible.79 * The structure is versioned by size and thus extensible.
59 * New struct members must go at the end of the struct and80 * New struct members must go at the end of the struct and
@@ -68,10 +89,13 @@ struct clone_args { · 8 unmodified lines
68 __aligned_u64 stack;89 __aligned_u64 stack;
69 __aligned_u64 stack_size;90 __aligned_u64 stack_size;
70 __aligned_u64 tls;91 __aligned_u64 tls;
92 __aligned_u64 set_tid;
93 __aligned_u64 set_tid_size;
71};94};
72#endif95#endif
73 96
74#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */97#define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */
98#define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */
75 99
76/*100/*
77 * Scheduling policies101 * Scheduling policies
include/uapi/linux/sctp.h+30−1
@@ -105,6 +105,7 @@ typedef __s32 sctp_assoc_t; · 104 unmodified lines
105#define SCTP_DEFAULT_SNDINFO 34105#define SCTP_DEFAULT_SNDINFO 34
106#define SCTP_AUTH_DEACTIVATE_KEY 35106#define SCTP_AUTH_DEACTIVATE_KEY 35
107#define SCTP_REUSE_PORT 36107#define SCTP_REUSE_PORT 36
108#define SCTP_PEER_ADDR_THLDS_V2 37
108 109
109/* Internal Socket Options. Some of the sctp library functions are110/* Internal Socket Options. Some of the sctp library functions are
110 * implemented using these socket options.111 * implemented using these socket options.
@@ -137,6 +138,8 @@ typedef __s32 sctp_assoc_t; · 26 unmodified lines
137#define SCTP_ASCONF_SUPPORTED 128138#define SCTP_ASCONF_SUPPORTED 128
138#define SCTP_AUTH_SUPPORTED 129139#define SCTP_AUTH_SUPPORTED 129
139#define SCTP_ECN_SUPPORTED 130140#define SCTP_ECN_SUPPORTED 130
141#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
142#define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
140 143
141/* PR-SCTP policies */144/* PR-SCTP policies */
142#define SCTP_PR_SCTP_NONE 0x0000145#define SCTP_PR_SCTP_NONE 0x0000
@@ -410,6 +413,8 @@ enum sctp_spc_state { · 267 unmodified lines
410 SCTP_ADDR_ADDED,413 SCTP_ADDR_ADDED,
411 SCTP_ADDR_MADE_PRIM,414 SCTP_ADDR_MADE_PRIM,
412 SCTP_ADDR_CONFIRMED,415 SCTP_ADDR_CONFIRMED,
416 SCTP_ADDR_POTENTIALLY_FAILED,
417#define SCTP_ADDR_PF SCTP_ADDR_POTENTIALLY_FAILED
413};418};
414 419
415 420
@@ -449,6 +454,16 @@ struct sctp_send_failed { · 33 unmodified lines
449 __u8 ssf_data[0];454 __u8 ssf_data[0];
450};455};
451 456
457struct sctp_send_failed_event {
458 __u16 ssf_type;
459 __u16 ssf_flags;
460 __u32 ssf_length;
461 __u32 ssf_error;
462 struct sctp_sndinfo ssfe_info;
463 sctp_assoc_t ssf_assoc_id;
464 __u8 ssf_data[0];
465};
466
452/*467/*
453 * ssf_flags: 16 bits (unsigned integer)468 * ssf_flags: 16 bits (unsigned integer)
454 *469 *
@@ -605,6 +620,7 @@ struct sctp_event_subscribe { · 150 unmodified lines
605 __u8 sctp_stream_reset_event;620 __u8 sctp_stream_reset_event;
606 __u8 sctp_assoc_reset_event;621 __u8 sctp_assoc_reset_event;
607 __u8 sctp_stream_change_event;622 __u8 sctp_stream_change_event;
623 __u8 sctp_send_failure_event_event;
608};624};
609 625
610/*626/*
@@ -632,6 +648,7 @@ union sctp_notification { · 21 unmodified lines
632 struct sctp_stream_reset_event sn_strreset_event;648 struct sctp_stream_reset_event sn_strreset_event;
633 struct sctp_assoc_reset_event sn_assocreset_event;649 struct sctp_assoc_reset_event sn_assocreset_event;
634 struct sctp_stream_change_event sn_strchange_event;650 struct sctp_stream_change_event sn_strchange_event;
651 struct sctp_send_failed_event sn_send_failed_event;
635};652};
636 653
637/* Section 5.3.1654/* Section 5.3.1
@@ -667,7 +684,9 @@ enum sctp_sn_type { · 29 unmodified lines
667#define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT684#define SCTP_ASSOC_RESET_EVENT SCTP_ASSOC_RESET_EVENT
668 SCTP_STREAM_CHANGE_EVENT,685 SCTP_STREAM_CHANGE_EVENT,
669#define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT686#define SCTP_STREAM_CHANGE_EVENT SCTP_STREAM_CHANGE_EVENT
670 SCTP_SN_TYPE_MAX = SCTP_STREAM_CHANGE_EVENT,687 SCTP_SEND_FAILED_EVENT,
688#define SCTP_SEND_FAILED_EVENT SCTP_SEND_FAILED_EVENT
689 SCTP_SN_TYPE_MAX = SCTP_SEND_FAILED_EVENT,
671#define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX690#define SCTP_SN_TYPE_MAX SCTP_SN_TYPE_MAX
672};691};
673 692
@@ -919,6 +938,7 @@ struct sctp_paddrinfo { · 245 unmodified lines
919enum sctp_spinfo_state {938enum sctp_spinfo_state {
920 SCTP_INACTIVE,939 SCTP_INACTIVE,
921 SCTP_PF,940 SCTP_PF,
941#define SCTP_POTENTIALLY_FAILED SCTP_PF
922 SCTP_ACTIVE,942 SCTP_ACTIVE,
923 SCTP_UNCONFIRMED,943 SCTP_UNCONFIRMED,
924 SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */944 SCTP_UNKNOWN = 0xffff /* Value used for transport state unknown */
@@ -1068,6 +1088,15 @@ struct sctp_paddrthlds { · 143 unmodified lines
1068 __u16 spt_pathpfthld;1088 __u16 spt_pathpfthld;
1069};1089};
1070 1090
1091/* Use a new structure with spt_pathcpthld for back compatibility */
1092struct sctp_paddrthlds_v2 {
1093 sctp_assoc_t spt_assoc_id;
1094 struct sockaddr_storage spt_address;
1095 __u16 spt_pathmaxrxt;
1096 __u16 spt_pathpfthld;
1097 __u16 spt_pathcpthld;
1098};
1099
1071/*1100/*
1072 * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status1101 * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status
1073 */1102 */
include/uapi/linux/seccomp.h+29−0
@@ -76,6 +76,35 @@ struct seccomp_notif { · 75 unmodified lines
76 struct seccomp_data data;76 struct seccomp_data data;
77};77};
78 78
79/*
80 * Valid flags for struct seccomp_notif_resp
81 *
82 * Note, the SECCOMP_USER_NOTIF_FLAG_CONTINUE flag must be used with caution!
83 * If set by the process supervising the syscalls of another process the
84 * syscall will continue. This is problematic because of an inherent TOCTOU.
85 * An attacker can exploit the time while the supervised process is waiting on
86 * a response from the supervising process to rewrite syscall arguments which
87 * are passed as pointers of the intercepted syscall.
88 * It should be absolutely clear that this means that the seccomp notifier
89 * _cannot_ be used to implement a security policy! It should only ever be used
90 * in scenarios where a more privileged process supervises the syscalls of a
91 * lesser privileged process to get around kernel-enforced security
92 * restrictions when the privileged process deems this safe. In other words,
93 * in order to continue a syscall the supervising process should be sure that
94 * another security mechanism or the kernel itself will sufficiently block
95 * syscalls if arguments are rewritten to something unsafe.
96 *
97 * Similar precautions should be applied when stacking SECCOMP_RET_USER_NOTIF
98 * or SECCOMP_RET_TRACE. For SECCOMP_RET_USER_NOTIF filters acting on the
99 * same syscall, the most recently added filter takes precedence. This means
100 * that the new SECCOMP_RET_USER_NOTIF filter can override any
101 * SECCOMP_IOCTL_NOTIF_SEND from earlier filters, essentially allowing all
102 * such filtered syscalls to be executed by sending the response
103 * SECCOMP_USER_NOTIF_FLAG_CONTINUE. Note that SECCOMP_RET_TRACE can equally
104 * be overriden by SECCOMP_USER_NOTIF_FLAG_CONTINUE.
105 */
106#define SECCOMP_USER_NOTIF_FLAG_CONTINUE (1UL << 0)
107
79struct seccomp_notif_resp {108struct seccomp_notif_resp {
80 __u64 id;109 __u64 id;
81 __s64 val;110 __s64 val;
include/uapi/linux/sed-opal.h+20−0
@@ -113,6 +113,25 @@ struct opal_shadow_mbr { · 112 unmodified lines
113 __u64 size;113 __u64 size;
114};114};
115 115
116/* Opal table operations */
117enum opal_table_ops {
118 OPAL_READ_TABLE,
119 OPAL_WRITE_TABLE,
120};
121
122#define OPAL_UID_LENGTH 8
123struct opal_read_write_table {
124 struct opal_key key;
125 const __u64 data;
126 const __u8 table_uid[OPAL_UID_LENGTH];
127 __u64 offset;
128 __u64 size;
129#define OPAL_TABLE_READ (1 << OPAL_READ_TABLE)
130#define OPAL_TABLE_WRITE (1 << OPAL_WRITE_TABLE)
131 __u64 flags;
132 __u64 priv;
133};
134
116#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)135#define IOC_OPAL_SAVE _IOW('p', 220, struct opal_lock_unlock)
117#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)136#define IOC_OPAL_LOCK_UNLOCK _IOW('p', 221, struct opal_lock_unlock)
118#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)137#define IOC_OPAL_TAKE_OWNERSHIP _IOW('p', 222, struct opal_key)
@@ -128,5 +147,6 @@ struct opal_shadow_mbr { · 9 unmodified lines
128#define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)147#define IOC_OPAL_PSID_REVERT_TPR _IOW('p', 232, struct opal_key)
129#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)148#define IOC_OPAL_MBR_DONE _IOW('p', 233, struct opal_mbr_done)
130#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)149#define IOC_OPAL_WRITE_SHADOW_MBR _IOW('p', 234, struct opal_shadow_mbr)
150#define IOC_OPAL_GENERIC_TABLE_RW _IOW('p', 235, struct opal_read_write_table)
131 151
132#endif /* _UAPI_SED_OPAL_H */152#endif /* _UAPI_SED_OPAL_H */
include/uapi/linux/sem.h+2−2
@@ -24,8 +24,8 @@ · 23 unmodified lines
24/* Obsolete, used only for backwards compatibility and libc5 compiles */24/* Obsolete, used only for backwards compatibility and libc5 compiles */
25struct semid_ds {25struct semid_ds {
26 struct ipc_perm sem_perm; /* permissions .. see ipc.h */26 struct ipc_perm sem_perm; /* permissions .. see ipc.h */
27 __kernel_time_t sem_otime; /* last semop time */27 __kernel_old_time_t sem_otime; /* last semop time */
28 __kernel_time_t sem_ctime; /* create/last semctl() time */28 __kernel_old_time_t sem_ctime; /* create/last semctl() time */
29 struct sem *sem_base; /* ptr to first semaphore in array */29 struct sem *sem_base; /* ptr to first semaphore in array */
30 struct sem_queue *sem_pending; /* pending operations to be processed */30 struct sem_queue *sem_pending; /* pending operations to be processed */
31 struct sem_queue **sem_pending_last; /* last pending operation */31 struct sem_queue **sem_pending_last; /* last pending operation */
include/uapi/linux/serial_core.h+1−1
@@ -290,7 +290,7 @@ · 289 unmodified lines
290/* Sunix UART */290/* Sunix UART */
291#define PORT_SUNIX 121291#define PORT_SUNIX 121
292 292
293/* Freescale Linflex UART */293/* Freescale LINFlexD UART */
294#define PORT_LINFLEXUART 122294#define PORT_LINFLEXUART 122
295 295
296#endif /* _UAPILINUX_SERIAL_CORE_H */296#endif /* _UAPILINUX_SERIAL_CORE_H */
include/uapi/linux/shm.h+3−3
@@ -28,9 +28,9 @@ · 27 unmodified lines
28struct shmid_ds {28struct shmid_ds {
29 struct ipc_perm shm_perm; /* operation perms */29 struct ipc_perm shm_perm; /* operation perms */
30 int shm_segsz; /* size of segment (bytes) */30 int shm_segsz; /* size of segment (bytes) */
31 __kernel_time_t shm_atime; /* last attach time */31 __kernel_old_time_t shm_atime; /* last attach time */
32 __kernel_time_t shm_dtime; /* last detach time */32 __kernel_old_time_t shm_dtime; /* last detach time */
33 __kernel_time_t shm_ctime; /* last change time */33 __kernel_old_time_t shm_ctime; /* last change time */
34 __kernel_ipc_pid_t shm_cpid; /* pid of creator */34 __kernel_ipc_pid_t shm_cpid; /* pid of creator */
35 __kernel_ipc_pid_t shm_lpid; /* pid of last operator */35 __kernel_ipc_pid_t shm_lpid; /* pid of last operator */
36 unsigned short shm_nattch; /* no. of current attaches */36 unsigned short shm_nattch; /* no. of current attaches */
include/uapi/linux/snmp.h+17−0
@@ -323,4 +323,21 @@ enum · 322 unmodified lines
323 __LINUX_MIB_XFRMMAX323 __LINUX_MIB_XFRMMAX
324};324};
325 325
326/* linux TLS mib definitions */
327enum
328{
329 LINUX_MIB_TLSNUM = 0,
330 LINUX_MIB_TLSCURRTXSW, /* TlsCurrTxSw */
331 LINUX_MIB_TLSCURRRXSW, /* TlsCurrRxSw */
332 LINUX_MIB_TLSCURRTXDEVICE, /* TlsCurrTxDevice */
333 LINUX_MIB_TLSCURRRXDEVICE, /* TlsCurrRxDevice */
334 LINUX_MIB_TLSTXSW, /* TlsTxSw */
335 LINUX_MIB_TLSRXSW, /* TlsRxSw */
336 LINUX_MIB_TLSTXDEVICE, /* TlsTxDevice */
337 LINUX_MIB_TLSRXDEVICE, /* TlsRxDevice */
338 LINUX_MIB_TLSDECRYPTERROR, /* TlsDecryptError */
339 LINUX_MIB_TLSRXDEVICERESYNC, /* TlsRxDeviceResync */
340 __LINUX_MIB_TLSMAX
341};
342
326#endif /* _LINUX_SNMP_H */343#endif /* _LINUX_SNMP_H */
include/uapi/linux/stat.h+1−1
@@ -167,8 +167,8 @@ struct statx { · 166 unmodified lines
167#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */167#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */
168#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */168#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */
169#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */169#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */
170
171#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */170#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */
171#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */
172 172
173 173
174#endif /* _UAPI_LINUX_STAT_H */174#endif /* _UAPI_LINUX_STAT_H */
include/uapi/linux/tc_act/tc_tunnel_key.h+29−0
@@ -50,6 +50,14 @@ enum { · 49 unmodified lines
50 * TCA_TUNNEL_KEY_ENC_OPTS_50 * TCA_TUNNEL_KEY_ENC_OPTS_
51 * attributes51 * attributes
52 */52 */
53 TCA_TUNNEL_KEY_ENC_OPTS_VXLAN, /* Nested
54 * TCA_TUNNEL_KEY_ENC_OPTS_
55 * attributes
56 */
57 TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN, /* Nested
58 * TCA_TUNNEL_KEY_ENC_OPTS_
59 * attributes
60 */
53 __TCA_TUNNEL_KEY_ENC_OPTS_MAX,61 __TCA_TUNNEL_KEY_ENC_OPTS_MAX,
54};62};
55 63
@@ -67,4 +75,25 @@ enum { · 11 unmodified lines
67#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \75#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
68 (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)76 (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
69 77
78enum {
79 TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
80 TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP, /* u32 */
81 __TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
82};
83
84#define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
85 (__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
86
87enum {
88 TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
89 TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER, /* u8 */
90 TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX, /* be32 */
91 TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR, /* u8 */
92 TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID, /* u8 */
93 __TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
94};
95
96#define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
97 (__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
98
70#endif99#endif
include/uapi/linux/tcp.h+9−1
@@ -155,6 +155,14 @@ enum { · 154 unmodified lines
155 TCP_QUEUES_NR,155 TCP_QUEUES_NR,
156};156};
157 157
158/* why fastopen failed from client perspective */
159enum tcp_fastopen_client_fail {
160 TFO_STATUS_UNSPEC, /* catch-all */
161 TFO_COOKIE_UNAVAILABLE, /* if not in TFO_CLIENT_NO_COOKIE mode */
162 TFO_DATA_NOT_ACKED, /* SYN-ACK did not ack SYN data */
163 TFO_SYN_RETRANSMITTED, /* SYN-ACK did not ack SYN data after timeout */
164};
165
158/* for TCP_INFO socket option */166/* for TCP_INFO socket option */
159#define TCPI_OPT_TIMESTAMPS 1167#define TCPI_OPT_TIMESTAMPS 1
160#define TCPI_OPT_SACK 2168#define TCPI_OPT_SACK 2
@@ -211,7 +219,7 @@ struct tcp_info { · 50 unmodified lines
211 __u8 tcpi_backoff;219 __u8 tcpi_backoff;
212 __u8 tcpi_options;220 __u8 tcpi_options;
213 __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;221 __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
214 __u8 tcpi_delivery_rate_app_limited:1;222 __u8 tcpi_delivery_rate_app_limited:1, tcpi_fastopen_client_fail:2;
215 223
216 __u32 tcpi_rto;224 __u32 tcpi_rto;
217 __u32 tcpi_ato;225 __u32 tcpi_ato;
include/uapi/linux/time.h+3−3
@@ -8,13 +8,13 @@ · 7 unmodified lines
8#ifndef _STRUCT_TIMESPEC8#ifndef _STRUCT_TIMESPEC
9#define _STRUCT_TIMESPEC9#define _STRUCT_TIMESPEC
10struct timespec {10struct timespec {
11 __kernel_time_t tv_sec; /* seconds */11 __kernel_old_time_t tv_sec; /* seconds */
12 long tv_nsec; /* nanoseconds */12 long tv_nsec; /* nanoseconds */
13};13};
14#endif14#endif
15 15
16struct timeval {16struct timeval {
17 __kernel_time_t tv_sec; /* seconds */17 __kernel_old_time_t tv_sec; /* seconds */
18 __kernel_suseconds_t tv_usec; /* microseconds */18 __kernel_suseconds_t tv_usec; /* microseconds */
19};19};
20 20
include/uapi/linux/time_types.h+5−0
@@ -28,6 +28,11 @@ struct __kernel_old_timeval { · 27 unmodified lines
28};28};
29#endif29#endif
30 30
31struct __kernel_old_timespec {
32 __kernel_old_time_t tv_sec; /* seconds */
33 long tv_nsec; /* nanoseconds */
34};
35
31struct __kernel_sock_timeval {36struct __kernel_sock_timeval {
32 __s64 tv_sec;37 __s64 tv_sec;
33 __s64 tv_usec;38 __s64 tv_usec;
include/uapi/linux/tipc.h+22−0
@@ -191,6 +191,7 @@ struct sockaddr_tipc { · 190 unmodified lines
191#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */191#define TIPC_GROUP_JOIN 135 /* Takes struct tipc_group_req* */
192#define TIPC_GROUP_LEAVE 136 /* No argument */192#define TIPC_GROUP_LEAVE 136 /* No argument */
193#define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */193#define TIPC_SOCK_RECVQ_USED 137 /* Default: none (read only) */
194#define TIPC_NODELAY 138 /* Default: false */
194 195
195/*196/*
196 * Flag values197 * Flag values
@@ -232,6 +233,27 @@ struct tipc_sioc_nodeid_req { · 35 unmodified lines
232 char node_id[TIPC_NODEID_LEN];233 char node_id[TIPC_NODEID_LEN];
233};234};
234 235
236/*
237 * TIPC Crypto, AEAD
238 */
239#define TIPC_AEAD_ALG_NAME (32)
240
241struct tipc_aead_key {
242 char alg_name[TIPC_AEAD_ALG_NAME];
243 unsigned int keylen; /* in bytes */
244 char key[];
245};
246
247#define TIPC_AEAD_KEYLEN_MIN (16 + 4)
248#define TIPC_AEAD_KEYLEN_MAX (32 + 4)
249#define TIPC_AEAD_KEY_SIZE_MAX (sizeof(struct tipc_aead_key) + \
250 TIPC_AEAD_KEYLEN_MAX)
251
252static inline int tipc_aead_key_size(struct tipc_aead_key *key)
253{
254 return sizeof(*key) + key->keylen;
255}
256
235/* The macros and functions below are deprecated:257/* The macros and functions below are deprecated:
236 */258 */
237 259
include/uapi/linux/tipc_config.h+2−2
@@ -309,7 +309,7 @@ static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len) · 308 unmodified lines
309 tlv_ptr->tlv_len = htons(tlv_len);309 tlv_ptr->tlv_len = htons(tlv_len);
310 if (len && data) {310 if (len && data) {
311 memcpy(TLV_DATA(tlv_ptr), data, len);311 memcpy(TLV_DATA(tlv_ptr), data, len);
312 memset(TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);312 memset((char *)TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
313 }313 }
314 return TLV_SPACE(len);314 return TLV_SPACE(len);
315}315}
@@ -409,7 +409,7 @@ static inline int TCM_SET(void *msg, __u16 cmd, __u16 flags, · 93 unmodified lines
409 tcm_hdr->tcm_flags = htons(flags);409 tcm_hdr->tcm_flags = htons(flags);
410 if (data_len && data) {410 if (data_len && data) {
411 memcpy(TCM_DATA(msg), data, data_len);411 memcpy(TCM_DATA(msg), data, data_len);
412 memset(TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);412 memset((char *)TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
413 }413 }
414 return TCM_SPACE(data_len);414 return TCM_SPACE(data_len);
415}415}
include/uapi/linux/tipc_netlink.h+4−0
@@ -63,6 +63,8 @@ enum { · 62 unmodified lines
63 TIPC_NL_PEER_REMOVE,63 TIPC_NL_PEER_REMOVE,
64 TIPC_NL_BEARER_ADD,64 TIPC_NL_BEARER_ADD,
65 TIPC_NL_UDP_GET_REMOTEIP,65 TIPC_NL_UDP_GET_REMOTEIP,
66 TIPC_NL_KEY_SET,
67 TIPC_NL_KEY_FLUSH,
66 68
67 __TIPC_NL_CMD_MAX,69 __TIPC_NL_CMD_MAX,
68 TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 170 TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
@@ -160,6 +162,8 @@ enum { · 91 unmodified lines
160 TIPC_NLA_NODE_UNSPEC,162 TIPC_NLA_NODE_UNSPEC,
161 TIPC_NLA_NODE_ADDR, /* u32 */163 TIPC_NLA_NODE_ADDR, /* u32 */
162 TIPC_NLA_NODE_UP, /* flag */164 TIPC_NLA_NODE_UP, /* flag */
165 TIPC_NLA_NODE_ID, /* data */
166 TIPC_NLA_NODE_KEY, /* data */
163 167
164 __TIPC_NLA_NODE_MAX,168 __TIPC_NLA_NODE_MAX,
165 TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1169 TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
include/uapi/linux/utime.h+2−2
@@ -5,8 +5,8 @@ · 4 unmodified lines
5#include <linux/types.h>5#include <linux/types.h>
6 6
7struct utimbuf {7struct utimbuf {
8 __kernel_time_t actime;8 __kernel_old_time_t actime;
9 __kernel_time_t modtime;9 __kernel_old_time_t modtime;
10};10};
11 11
12#endif12#endif
include/uapi/linux/v4l2-controls.h+1−0
@@ -1034,6 +1034,7 @@ enum v4l2_jpeg_chroma_subsampling { · 1033 unmodified lines
1034#define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)1034#define V4L2_CID_TEST_PATTERN_GREENR (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
1035#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)1035#define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
1036#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)1036#define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
1037#define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
1037 1038
1038 1039
1039/* Image processing controls */1040/* Image processing controls */
include/uapi/linux/videodev2.h+17−5
@@ -422,6 +422,11 @@ struct v4l2_fract { · 421 unmodified lines
422 __u32 denominator;422 __u32 denominator;
423};423};
424 424
425struct v4l2_area {
426 __u32 width;
427 __u32 height;
428};
429
425/**430/**
426 * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP431 * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
427 *432 *
@@ -755,6 +760,7 @@ struct v4l2_pix_format { · 327 unmodified lines
755#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */760#define V4L2_META_FMT_VSP1_HGT v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
756#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */761#define V4L2_META_FMT_UVC v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
757#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */762#define V4L2_META_FMT_D4XX v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
763#define V4L2_META_FMT_VIVID v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
758 764
759/* priv field value to indicates that subsequent fields are valid. */765/* priv field value to indicates that subsequent fields are valid. */
760#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe766#define V4L2_PIX_FMT_PRIV_MAGIC 0xfeedcafe
@@ -915,11 +921,12 @@ struct v4l2_requestbuffers { · 154 unmodified lines
915};921};
916 922
917/* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */923/* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */
918#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)924#define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
919#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)925#define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
920#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)926#define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
921#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)927#define V4L2_BUF_CAP_SUPPORTS_REQUESTS (1 << 3)
922#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)928#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
929#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
923 930
924/**931/**
925 * struct v4l2_plane - plane info for multi-planar buffers932 * struct v4l2_plane - plane info for multi-planar buffers
@@ -1041,6 +1048,8 @@ static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv) · 115 unmodified lines
1041#define V4L2_BUF_FLAG_IN_REQUEST 0x000000801048#define V4L2_BUF_FLAG_IN_REQUEST 0x00000080
1042/* timecode field is valid */1049/* timecode field is valid */
1043#define V4L2_BUF_FLAG_TIMECODE 0x000001001050#define V4L2_BUF_FLAG_TIMECODE 0x00000100
1051/* Don't return the capture buffer until OUTPUT timestamp changes */
1052#define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF 0x00000200
1044/* Buffer is prepared for queuing */1053/* Buffer is prepared for queuing */
1045#define V4L2_BUF_FLAG_PREPARED 0x000004001054#define V4L2_BUF_FLAG_PREPARED 0x00000400
1046/* Cache handling flags */1055/* Cache handling flags */
@@ -1675,6 +1684,7 @@ struct v4l2_ext_control { · 628 unmodified lines
1675 __u8 __user *p_u8;1684 __u8 __user *p_u8;
1676 __u16 __user *p_u16;1685 __u16 __user *p_u16;
1677 __u32 __user *p_u32;1686 __u32 __user *p_u32;
1687 struct v4l2_area __user *p_area;
1678 void __user *ptr;1688 void __user *ptr;
1679 };1689 };
1680} __attribute__ ((packed));1690} __attribute__ ((packed));
@@ -1720,6 +1730,7 @@ enum v4l2_ctrl_type { · 39 unmodified lines
1720 V4L2_CTRL_TYPE_U8 = 0x0100,1730 V4L2_CTRL_TYPE_U8 = 0x0100,
1721 V4L2_CTRL_TYPE_U16 = 0x0101,1731 V4L2_CTRL_TYPE_U16 = 0x0101,
1722 V4L2_CTRL_TYPE_U32 = 0x0102,1732 V4L2_CTRL_TYPE_U32 = 0x0102,
1733 V4L2_CTRL_TYPE_AREA = 0x0106,
1723};1734};
1724 1735
1725/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */1736/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -1975,6 +1986,7 @@ struct v4l2_encoder_cmd { · 249 unmodified lines
1975#define V4L2_DEC_CMD_STOP (1)1986#define V4L2_DEC_CMD_STOP (1)
1976#define V4L2_DEC_CMD_PAUSE (2)1987#define V4L2_DEC_CMD_PAUSE (2)
1977#define V4L2_DEC_CMD_RESUME (3)1988#define V4L2_DEC_CMD_RESUME (3)
1989#define V4L2_DEC_CMD_FLUSH (4)
1978 1990
1979/* Flags for V4L2_DEC_CMD_START */1991/* Flags for V4L2_DEC_CMD_START */
1980#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)1992#define V4L2_DEC_CMD_START_MUTE_AUDIO (1 << 0)
include/uapi/linux/virtio_ring.h+1−1
@@ -169,7 +169,7 @@ static inline void vring_init(struct vring *vr, unsigned int num, void *p, · 168 unmodified lines
169{169{
170 vr->num = num;170 vr->num = num;
171 vr->desc = p;171 vr->desc = p;
172 vr->avail = p + num*sizeof(struct vring_desc);172 vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
173 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)173 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
174 + align-1) & ~(align - 1));174 + align-1) & ~(align - 1));
175}175}