History

Merge tag 'v4.14-rc2' into patchwork

Linux 4.14-rc2 * tag 'v4.14-rc2': (12066 commits) Linux 4.14-rc2 tpm: ibmvtpm: simplify crq initialization and document crq format tpm: replace msleep() with usleep_range() in TPM 1.2/2.0 generic drivers Documentation: tpm: add powered-while-suspended binding documentation tpm: tpm_crb: constify acpi_device_id. tpm: vtpm: constify vio_device_id security: fix description of values returned by cap_inode_need_killpriv x86/asm: Fix inline asm call constraints for Clang objtool: Handle another GCC stack pointer adjustment bug inet: fix improper empty comparison net: use inet6_rcv_saddr to compare sockets net: set tb->fast_sk_family net: orphan frags on stand-alone ptype in dev_queue_xmit_nit MAINTAINERS: update git tree locations for ieee802154 subsystem SMB3: Don't ignore O_SYNC/O_DSYNC and O_DIRECT flags SMB3: handle new statx fields arch: remove unused *_segments() macros/functions parisc: Unbreak bootloader due to gcc-7 optimizations parisc: Reintroduce option to gzip-compress the kernel apparmor: fix apparmorfs DAC access permissions ...

Mauro Carvalho Chehab committed 9 years ago

Commit cf09e3c2 parents d5426f4 e19b20511102 files · +555891 −330104Browse files

Showing the changes to include/uapi (70 of 11102 files). Show all

Unified · Split

70 files
  1. include/uapi/asm-generic/hugetlb_encode.h +34 −0
  2. include/uapi/asm-generic/mman-common.h +3 −11
  3. include/uapi/asm-generic/siginfo.h +46 −69
  4. include/uapi/asm-generic/socket.h +2 −0
  5. include/uapi/drm/armada_drm.h +11 −11
  6. include/uapi/drm/drm.h +22 −0
  7. include/uapi/drm/drm_fourcc.h +31 −0
  8. include/uapi/drm/drm_mode.h +50 −0
  9. include/uapi/drm/i915_drm.h +49 −2
  10. include/uapi/drm/msm_drm.h +3 −3
  11. include/uapi/drm/qxl_drm.h +3 −3
  12. include/uapi/drm/vc4_drm.h +22 −0
  13. include/uapi/drm/vmwgfx_drm.h +8 −3
  14. include/uapi/linux/aio_abi.h +11 −10
  15. include/uapi/linux/android/binder.h +16 −0
  16. include/uapi/linux/auto_dev-ioctl.h +1 −1
  17. include/uapi/linux/auto_fs4.h +0 −2
  18. include/uapi/linux/blktrace_api.h +3 −0
  19. include/uapi/linux/bpf.h +71 −7
  20. include/uapi/linux/btrfs.h +1 −7
  21. include/uapi/linux/capability.h +19 −3
  22. include/uapi/linux/devlink.h +18 −0
  23. include/uapi/linux/dlm_netlink.h +1 −0
  24. include/uapi/linux/errqueue.h +3 −0
  25. include/uapi/linux/ethtool.h +52 −2
  26. include/uapi/linux/fs.h +20 −8
  27. include/uapi/linux/fsmap.h +1 −1
  28. include/uapi/linux/if_arp.h +1 −0
  29. include/uapi/linux/if_ether.h +6 −0
  30. include/uapi/linux/if_tunnel.h +1 −0
  31. include/uapi/linux/inet_diag.h +2 −0
  32. include/uapi/linux/kfd_ioctl.h +122 −87
  33. include/uapi/linux/kvm.h +2 −1
  34. include/uapi/linux/loop.h +1 −3
  35. include/uapi/linux/lwtunnel.h +1 −0
  36. include/uapi/linux/membarrier.h +21 −2
  37. include/uapi/linux/memfd.h +24 −0
  38. include/uapi/linux/mman.h +22 −0
  39. include/uapi/linux/ndctl.h +0 −37
  40. include/uapi/linux/netfilter/nf_tables.h +14 −6
  41. include/uapi/linux/netfilter/xt_hashlimit.h +30 −6
  42. include/uapi/linux/netlink.h +20 −0
  43. include/uapi/linux/pci_regs.h +24 −18
  44. include/uapi/linux/perf_event.h +57 −4
  45. include/uapi/linux/pps.h +2 −2
  46. include/uapi/linux/quota.h +0 −1
  47. include/uapi/linux/raid/md_p.h +3 −1
  48. include/uapi/linux/rtnetlink.h +21 −2
  49. include/uapi/linux/rxrpc.h +124 −0
  50. include/uapi/linux/seccomp.h +15 −8
  51. include/uapi/linux/seg6_iptunnel.h +14 −4
  52. include/uapi/linux/seg6_local.h +68 −0
  53. include/uapi/linux/serial_core.h +10 −4
  54. include/uapi/linux/shm.h +29 −2
  55. include/uapi/linux/snmp.h +0 −7
  56. include/uapi/linux/tcp.h +17 −0
  57. include/uapi/linux/tee.h +1 −0
  58. include/uapi/linux/usb/charger.h +31 −0
  59. include/uapi/linux/userfaultfd.h +15 −1
  60. include/uapi/linux/virtio_ring.h +2 −2
  61. include/uapi/linux/xfrm.h +1 −0
  62. include/uapi/rdma/ib_user_ioctl_verbs.h +84 −0
  63. include/uapi/rdma/ib_user_verbs.h +17 −2
  64. include/uapi/rdma/mlx4-abi.h +51 −1
  65. include/uapi/rdma/mlx5-abi.h +23 −0
  66. include/uapi/rdma/qedr-abi.h +3 −0
  67. include/uapi/rdma/rdma_netlink.h +83 −1
  68. include/uapi/rdma/rdma_user_ioctl.h +33 −0
  69. include/uapi/rdma/vmw_pvrdma-abi.h +4 −2
  70. include/uapi/sound/snd_sst_tokens.h +91 −1
include/uapi/asm-generic/hugetlb_encode.h+34−0
@@ -0,0 +1,34 @@
1+#ifndef _ASM_GENERIC_HUGETLB_ENCODE_H_
2+#define _ASM_GENERIC_HUGETLB_ENCODE_H_
3+
4+/*
5+ * Several system calls take a flag to request "hugetlb" huge pages.
6+ * Without further specification, these system calls will use the
7+ * system's default huge page size. If a system supports multiple
8+ * huge page sizes, the desired huge page size can be specified in
9+ * bits [26:31] of the flag arguments. The value in these 6 bits
10+ * will encode the log2 of the huge page size.
11+ *
12+ * The following definitions are associated with this huge page size
13+ * encoding in flag arguments. System call specific header files
14+ * that use this encoding should include this file. They can then
15+ * provide definitions based on these with their own specific prefix.
16+ * for example:
17+ * #define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
18+ */
19+
20+#define HUGETLB_FLAG_ENCODE_SHIFT 26
21+#define HUGETLB_FLAG_ENCODE_MASK 0x3f
22+
23+#define HUGETLB_FLAG_ENCODE_64KB (16 << HUGETLB_FLAG_ENCODE_SHIFT)
24+#define HUGETLB_FLAG_ENCODE_512KB (19 << HUGETLB_FLAG_ENCODE_SHIFT)
25+#define HUGETLB_FLAG_ENCODE_1MB (20 << HUGETLB_FLAG_ENCODE_SHIFT)
26+#define HUGETLB_FLAG_ENCODE_2MB (21 << HUGETLB_FLAG_ENCODE_SHIFT)
27+#define HUGETLB_FLAG_ENCODE_8MB (23 << HUGETLB_FLAG_ENCODE_SHIFT)
28+#define HUGETLB_FLAG_ENCODE_16MB (24 << HUGETLB_FLAG_ENCODE_SHIFT)
29+#define HUGETLB_FLAG_ENCODE_256MB (28 << HUGETLB_FLAG_ENCODE_SHIFT)
30+#define HUGETLB_FLAG_ENCODE_1GB (30 << HUGETLB_FLAG_ENCODE_SHIFT)
31+#define HUGETLB_FLAG_ENCODE_2GB (31 << HUGETLB_FLAG_ENCODE_SHIFT)
32+#define HUGETLB_FLAG_ENCODE_16GB (34 << HUGETLB_FLAG_ENCODE_SHIFT)
33+
34+#endif /* _ASM_GENERIC_HUGETLB_ENCODE_H_ */
include/uapi/asm-generic/mman-common.h+3−11
@@ -58,20 +58,12 @@ · 57 unmodified lines
5858 overrides the coredump filter bits */
5959 #define MADV_DODUMP 17 /* Clear the MADV_DONTDUMP flag */
6060
61+#define MADV_WIPEONFORK 18 /* Zero memory on fork, child only */
62+#define MADV_KEEPONFORK 19 /* Undo MADV_WIPEONFORK */
63+
6164 /* compatibility flags */
6265 #define MAP_FILE 0
6366
64−/*
65− * When MAP_HUGETLB is set bits [26:31] encode the log2 of the huge page size.
66− * This gives us 6 bits, which is enough until someone invents 128 bit address
67− * spaces.
68− *
69− * Assume these are all power of twos.
70− * When 0 use the default page size.
71− */
72−#define MAP_HUGE_SHIFT 26
73−#define MAP_HUGE_MASK 0x3f
74−
7567 #define PKEY_DISABLE_ACCESS 0x1
7668 #define PKEY_DISABLE_WRITE 0x2
7769 #define PKEY_ACCESS_MASK (PKEY_DISABLE_ACCESS |\
include/uapi/asm-generic/siginfo.h+46−69
@@ -151,29 +151,6 @@ typedef struct siginfo { · 150 unmodified lines
151151 #define si_arch _sifields._sigsys._arch
152152 #endif
153153
154−#ifdef __KERNEL__
155−#define __SI_MASK 0xffff0000u
156−#define __SI_KILL (0 << 16)
157−#define __SI_TIMER (1 << 16)
158−#define __SI_POLL (2 << 16)
159−#define __SI_FAULT (3 << 16)
160−#define __SI_CHLD (4 << 16)
161−#define __SI_RT (5 << 16)
162−#define __SI_MESGQ (6 << 16)
163−#define __SI_SYS (7 << 16)
164−#define __SI_CODE(T,N) ((T) | ((N) & 0xffff))
165−#else /* __KERNEL__ */
166−#define __SI_KILL 0
167−#define __SI_TIMER 0
168−#define __SI_POLL 0
169−#define __SI_FAULT 0
170−#define __SI_CHLD 0
171−#define __SI_RT 0
172−#define __SI_MESGQ 0
173−#define __SI_SYS 0
174−#define __SI_CODE(T,N) (N)
175−#endif /* __KERNEL__ */
176−
177154 /*
178155 * si_code values
179156 * Digital reserves positive values for kernel-generated signals.
@@ -181,8 +158,8 @@ typedef struct siginfo { · 1 unmodified line
181158 #define SI_USER 0 /* sent by kill, sigsend, raise */
182159 #define SI_KERNEL 0x80 /* sent by the kernel from somewhere */
183160 #define SI_QUEUE -1 /* sent by sigqueue */
184−#define SI_TIMER __SI_CODE(__SI_TIMER,-2) /* sent by timer expiration */
185−#define SI_MESGQ __SI_CODE(__SI_MESGQ,-3) /* sent by real time mesq state change */
161+#define SI_TIMER -2 /* sent by timer expiration */
162+#define SI_MESGQ -3 /* sent by real time mesq state change */
186163 #define SI_ASYNCIO -4 /* sent by AIO completion */
187164 #define SI_SIGIO -5 /* sent by queued SIGIO */
188165 #define SI_TKILL -6 /* sent by tkill system call */
@@ -194,86 +171,86 @@ typedef struct siginfo { · 5 unmodified lines
194171 /*
195172 * SIGILL si_codes
196173 */
197−#define ILL_ILLOPC (__SI_FAULT|1) /* illegal opcode */
198−#define ILL_ILLOPN (__SI_FAULT|2) /* illegal operand */
199−#define ILL_ILLADR (__SI_FAULT|3) /* illegal addressing mode */
200−#define ILL_ILLTRP (__SI_FAULT|4) /* illegal trap */
201−#define ILL_PRVOPC (__SI_FAULT|5) /* privileged opcode */
202−#define ILL_PRVREG (__SI_FAULT|6) /* privileged register */
203−#define ILL_COPROC (__SI_FAULT|7) /* coprocessor error */
204−#define ILL_BADSTK (__SI_FAULT|8) /* internal stack error */
174+#define ILL_ILLOPC 1 /* illegal opcode */
175+#define ILL_ILLOPN 2 /* illegal operand */
176+#define ILL_ILLADR 3 /* illegal addressing mode */
177+#define ILL_ILLTRP 4 /* illegal trap */
178+#define ILL_PRVOPC 5 /* privileged opcode */
179+#define ILL_PRVREG 6 /* privileged register */
180+#define ILL_COPROC 7 /* coprocessor error */
181+#define ILL_BADSTK 8 /* internal stack error */
205182 #define NSIGILL 8
206183
207184 /*
208185 * SIGFPE si_codes
209186 */
210−#define FPE_INTDIV (__SI_FAULT|1) /* integer divide by zero */
211−#define FPE_INTOVF (__SI_FAULT|2) /* integer overflow */
212−#define FPE_FLTDIV (__SI_FAULT|3) /* floating point divide by zero */
213−#define FPE_FLTOVF (__SI_FAULT|4) /* floating point overflow */
214−#define FPE_FLTUND (__SI_FAULT|5) /* floating point underflow */
215−#define FPE_FLTRES (__SI_FAULT|6) /* floating point inexact result */
216−#define FPE_FLTINV (__SI_FAULT|7) /* floating point invalid operation */
217−#define FPE_FLTSUB (__SI_FAULT|8) /* subscript out of range */
187+#define FPE_INTDIV 1 /* integer divide by zero */
188+#define FPE_INTOVF 2 /* integer overflow */
189+#define FPE_FLTDIV 3 /* floating point divide by zero */
190+#define FPE_FLTOVF 4 /* floating point overflow */
191+#define FPE_FLTUND 5 /* floating point underflow */
192+#define FPE_FLTRES 6 /* floating point inexact result */
193+#define FPE_FLTINV 7 /* floating point invalid operation */
194+#define FPE_FLTSUB 8 /* subscript out of range */
218195 #define NSIGFPE 8
219196
220197 /*
221198 * SIGSEGV si_codes
222199 */
223−#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */
224−#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */
225−#define SEGV_BNDERR (__SI_FAULT|3) /* failed address bound checks */
226−#define SEGV_PKUERR (__SI_FAULT|4) /* failed protection key checks */
200+#define SEGV_MAPERR 1 /* address not mapped to object */
201+#define SEGV_ACCERR 2 /* invalid permissions for mapped object */
202+#define SEGV_BNDERR 3 /* failed address bound checks */
203+#define SEGV_PKUERR 4 /* failed protection key checks */
227204 #define NSIGSEGV 4
228205
229206 /*
230207 * SIGBUS si_codes
231208 */
232−#define BUS_ADRALN (__SI_FAULT|1) /* invalid address alignment */
233−#define BUS_ADRERR (__SI_FAULT|2) /* non-existent physical address */
234−#define BUS_OBJERR (__SI_FAULT|3) /* object specific hardware error */
209+#define BUS_ADRALN 1 /* invalid address alignment */
210+#define BUS_ADRERR 2 /* non-existent physical address */
211+#define BUS_OBJERR 3 /* object specific hardware error */
235212 /* hardware memory error consumed on a machine check: action required */
236−#define BUS_MCEERR_AR (__SI_FAULT|4)
213+#define BUS_MCEERR_AR 4
237214 /* hardware memory error detected in process but not consumed: action optional*/
238−#define BUS_MCEERR_AO (__SI_FAULT|5)
215+#define BUS_MCEERR_AO 5
239216 #define NSIGBUS 5
240217
241218 /*
242219 * SIGTRAP si_codes
243220 */
244−#define TRAP_BRKPT (__SI_FAULT|1) /* process breakpoint */
245−#define TRAP_TRACE (__SI_FAULT|2) /* process trace trap */
246−#define TRAP_BRANCH (__SI_FAULT|3) /* process taken branch trap */
247−#define TRAP_HWBKPT (__SI_FAULT|4) /* hardware breakpoint/watchpoint */
221+#define TRAP_BRKPT 1 /* process breakpoint */
222+#define TRAP_TRACE 2 /* process trace trap */
223+#define TRAP_BRANCH 3 /* process taken branch trap */
224+#define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */
248225 #define NSIGTRAP 4
249226
250227 /*
251228 * SIGCHLD si_codes
252229 */
253−#define CLD_EXITED (__SI_CHLD|1) /* child has exited */
254−#define CLD_KILLED (__SI_CHLD|2) /* child was killed */
255−#define CLD_DUMPED (__SI_CHLD|3) /* child terminated abnormally */
256−#define CLD_TRAPPED (__SI_CHLD|4) /* traced child has trapped */
257−#define CLD_STOPPED (__SI_CHLD|5) /* child has stopped */
258−#define CLD_CONTINUED (__SI_CHLD|6) /* stopped child has continued */
230+#define CLD_EXITED 1 /* child has exited */
231+#define CLD_KILLED 2 /* child was killed */
232+#define CLD_DUMPED 3 /* child terminated abnormally */
233+#define CLD_TRAPPED 4 /* traced child has trapped */
234+#define CLD_STOPPED 5 /* child has stopped */
235+#define CLD_CONTINUED 6 /* stopped child has continued */
259236 #define NSIGCHLD 6
260237
261238 /*
262− * SIGPOLL si_codes
239+ * SIGPOLL (or any other signal without signal specific si_codes) si_codes
263240 */
264−#define POLL_IN (__SI_POLL|1) /* data input available */
265−#define POLL_OUT (__SI_POLL|2) /* output buffers available */
266−#define POLL_MSG (__SI_POLL|3) /* input message available */
267−#define POLL_ERR (__SI_POLL|4) /* i/o error */
268−#define POLL_PRI (__SI_POLL|5) /* high priority input available */
269−#define POLL_HUP (__SI_POLL|6) /* device disconnected */
241+#define POLL_IN 1 /* data input available */
242+#define POLL_OUT 2 /* output buffers available */
243+#define POLL_MSG 3 /* input message available */
244+#define POLL_ERR 4 /* i/o error */
245+#define POLL_PRI 5 /* high priority input available */
246+#define POLL_HUP 6 /* device disconnected */
270247 #define NSIGPOLL 6
271248
272249 /*
273250 * SIGSYS si_codes
274251 */
275−#define SYS_SECCOMP (__SI_SYS|1) /* seccomp triggered */
276−#define NSIGSYS 1
252+#define SYS_SECCOMP 1 /* seccomp triggered */
253+#define NSIGSYS 1
277254
278255 /*
279256 * sigevent definitions
include/uapi/asm-generic/socket.h+2−0
@@ -104,4 +104,6 @@ · 103 unmodified lines
104104
105105 #define SO_PEERGROUPS 59
106106
107+#define SO_ZEROCOPY 60
108+
107109 #endif /* __ASM_GENERIC_SOCKET_H */
include/uapi/drm/armada_drm.h+11−11
@@ -23,27 +23,27 @@ extern "C" { · 22 unmodified lines
2323 DRM_##dir(DRM_COMMAND_BASE + DRM_ARMADA_##name, struct drm_armada_##str)
2424
2525 struct drm_armada_gem_create {
26− uint32_t handle;
27− uint32_t size;
26+ __u32 handle;
27+ __u32 size;
2828 };
2929 #define DRM_IOCTL_ARMADA_GEM_CREATE \
3030 ARMADA_IOCTL(IOWR, GEM_CREATE, gem_create)
3131
3232 struct drm_armada_gem_mmap {
33− uint32_t handle;
34− uint32_t pad;
35− uint64_t offset;
36− uint64_t size;
37− uint64_t addr;
33+ __u32 handle;
34+ __u32 pad;
35+ __u64 offset;
36+ __u64 size;
37+ __u64 addr;
3838 };
3939 #define DRM_IOCTL_ARMADA_GEM_MMAP \
4040 ARMADA_IOCTL(IOWR, GEM_MMAP, gem_mmap)
4141
4242 struct drm_armada_gem_pwrite {
43− uint64_t ptr;
44− uint32_t handle;
45− uint32_t offset;
46− uint32_t size;
43+ __u64 ptr;
44+ __u32 handle;
45+ __u32 offset;
46+ __u32 size;
4747 };
4848 #define DRM_IOCTL_ARMADA_GEM_PWRITE \
4949 ARMADA_IOCTL(IOW, GEM_PWRITE, gem_pwrite)
include/uapi/drm/drm.h+22−0
@@ -700,6 +700,7 @@ struct drm_prime_handle { · 699 unmodified lines
700700
701701 struct drm_syncobj_create {
702702 __u32 handle;
703+#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
703704 __u32 flags;
704705 };
705706
@@ -718,6 +719,24 @@ struct drm_syncobj_handle { · 12 unmodified lines
718719 __u32 pad;
719720 };
720721
722+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
723+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
724+struct drm_syncobj_wait {
725+ __u64 handles;
726+ /* absolute timeout */
727+ __s64 timeout_nsec;
728+ __u32 count_handles;
729+ __u32 flags;
730+ __u32 first_signaled; /* only valid when not waiting all */
731+ __u32 pad;
732+};
733+
734+struct drm_syncobj_array {
735+ __u64 handles;
736+ __u32 count_handles;
737+ __u32 pad;
738+};
739+
721740 #if defined(__cplusplus)
722741 }
723742 #endif
@@ -840,6 +859,9 @@ extern "C" { · 116 unmodified lines
840859 #define DRM_IOCTL_SYNCOBJ_DESTROY DRM_IOWR(0xC0, struct drm_syncobj_destroy)
841860 #define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD DRM_IOWR(0xC1, struct drm_syncobj_handle)
842861 #define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE DRM_IOWR(0xC2, struct drm_syncobj_handle)
862+#define DRM_IOCTL_SYNCOBJ_WAIT DRM_IOWR(0xC3, struct drm_syncobj_wait)
863+#define DRM_IOCTL_SYNCOBJ_RESET DRM_IOWR(0xC4, struct drm_syncobj_array)
864+#define DRM_IOCTL_SYNCOBJ_SIGNAL DRM_IOWR(0xC5, struct drm_syncobj_array)
843865
844866 /**
845867 * Device specific ioctls should only be in their respective headers
include/uapi/drm/drm_fourcc.h+31−0
@@ -185,6 +185,8 @@ extern "C" { · 184 unmodified lines
185185 #define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
186186 /* add more to the end as needed */
187187
188+#define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
189+
188190 #define fourcc_mod_code(vendor, val) \
189191 ((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | (val & 0x00ffffffffffffffULL))
190192
@@ -196,6 +198,15 @@ extern "C" { · 5 unmodified lines
196198 * authoritative source for all of these.
197199 */
198200
201+/*
202+ * Invalid Modifier
203+ *
204+ * This modifier can be used as a sentinel to terminate the format modifiers
205+ * list, or to initialize a variable with an invalid modifier. It might also be
206+ * used to report an error back to userspace for certain APIs.
207+ */
208+#define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
209+
199210 /*
200211 * Linear Layout
201212 *
@@ -252,6 +263,26 @@ extern "C" { · 50 unmodified lines
252263 */
253264 #define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3)
254265
266+/*
267+ * Intel color control surface (CCS) for render compression
268+ *
269+ * The framebuffer format must be one of the 8:8:8:8 RGB formats.
270+ * The main surface will be plane index 0 and must be Y/Yf-tiled,
271+ * the CCS will be plane index 1.
272+ *
273+ * Each CCS tile matches a 1024x512 pixel area of the main surface.
274+ * To match certain aspects of the 3D hardware the CCS is
275+ * considered to be made up of normal 128Bx32 Y tiles, Thus
276+ * the CCS pitch must be specified in multiples of 128 bytes.
277+ *
278+ * In reality the CCS tile appears to be a 64Bx64 Y tile, composed
279+ * of QWORD (8 bytes) chunks instead of OWORD (16 bytes) chunks.
280+ * But that fact is not relevant unless the memory is accessed
281+ * directly.
282+ */
283+#define I915_FORMAT_MOD_Y_TILED_CCS fourcc_mod_code(INTEL, 4)
284+#define I915_FORMAT_MOD_Yf_TILED_CCS fourcc_mod_code(INTEL, 5)
285+
255286 /*
256287 * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
257288 *
include/uapi/drm/drm_mode.h+50−0
@@ -712,6 +712,56 @@ struct drm_mode_atomic { · 711 unmodified lines
712712 __u64 user_data;
713713 };
714714
715+struct drm_format_modifier_blob {
716+#define FORMAT_BLOB_CURRENT 1
717+ /* Version of this blob format */
718+ __u32 version;
719+
720+ /* Flags */
721+ __u32 flags;
722+
723+ /* Number of fourcc formats supported */
724+ __u32 count_formats;
725+
726+ /* Where in this blob the formats exist (in bytes) */
727+ __u32 formats_offset;
728+
729+ /* Number of drm_format_modifiers */
730+ __u32 count_modifiers;
731+
732+ /* Where in this blob the modifiers exist (in bytes) */
733+ __u32 modifiers_offset;
734+
735+ /* __u32 formats[] */
736+ /* struct drm_format_modifier modifiers[] */
737+};
738+
739+struct drm_format_modifier {
740+ /* Bitmask of formats in get_plane format list this info applies to. The
741+ * offset allows a sliding window of which 64 formats (bits).
742+ *
743+ * Some examples:
744+ * In today's world with < 65 formats, and formats 0, and 2 are
745+ * supported
746+ * 0x0000000000000005
747+ * ^-offset = 0, formats = 5
748+ *
749+ * If the number formats grew to 128, and formats 98-102 are
750+ * supported with the modifier:
751+ *
752+ * 0x0000003c00000000 0000000000000000
753+ * ^
754+ * |__offset = 64, formats = 0x3c00000000
755+ *
756+ */
757+ __u64 formats;
758+ __u32 offset;
759+ __u32 pad;
760+
761+ /* The modifier that applies to the >get_plane format list bitmask. */
762+ __u64 modifier;
763+};
764+
715765 /**
716766 * Create a new 'blob' data property, copying length bytes from data pointer,
717767 * and returning new blob ID.
include/uapi/drm/i915_drm.h+49−2
@@ -260,6 +260,8 @@ typedef struct _drm_i915_sarea { · 259 unmodified lines
260260 #define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
261261 #define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
262262 #define DRM_I915_PERF_OPEN 0x36
263+#define DRM_I915_PERF_ADD_CONFIG 0x37
264+#define DRM_I915_PERF_REMOVE_CONFIG 0x38
263265
264266 #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
265267 #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -315,6 +317,8 @@ typedef struct _drm_i915_sarea { · 49 unmodified lines
315317 #define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
316318 #define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
317319 #define DRM_IOCTL_I915_PERF_OPEN DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_OPEN, struct drm_i915_perf_open_param)
320+#define DRM_IOCTL_I915_PERF_ADD_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_ADD_CONFIG, struct drm_i915_perf_oa_config)
321+#define DRM_IOCTL_I915_PERF_REMOVE_CONFIG DRM_IOW(DRM_COMMAND_BASE + DRM_I915_PERF_REMOVE_CONFIG, __u64)
318322
319323 /* Allow drivers to submit batchbuffers directly to hardware, relying
320324 * on the security mechanisms provided by hardware.
@@ -431,6 +435,11 @@ typedef struct drm_i915_irq_wait { · 110 unmodified lines
431435 */
432436 #define I915_PARAM_HAS_EXEC_BATCH_FIRST 48
433437
438+/* Query whether DRM_I915_GEM_EXECBUFFER2 supports supplying an array of
439+ * drm_i915_gem_exec_fence structures. See I915_EXEC_FENCE_ARRAY.
440+ */
441+#define I915_PARAM_HAS_EXEC_FENCE_ARRAY 49
442+
434443 typedef struct drm_i915_getparam {
435444 __s32 param;
436445 /*
@@ -812,6 +821,17 @@ struct drm_i915_gem_exec_object2 { · 375 unmodified lines
812821 __u64 rsvd2;
813822 };
814823
824+struct drm_i915_gem_exec_fence {
825+ /**
826+ * User's handle for a drm_syncobj to wait on or signal.
827+ */
828+ __u32 handle;
829+
830+#define I915_EXEC_FENCE_WAIT (1<<0)
831+#define I915_EXEC_FENCE_SIGNAL (1<<1)
832+ __u32 flags;
833+};
834+
815835 struct drm_i915_gem_execbuffer2 {
816836 /**
817837 * List of gem_exec_object2 structs
@@ -826,7 +846,11 @@ struct drm_i915_gem_execbuffer2 { · 8 unmodified lines
826846 __u32 DR1;
827847 __u32 DR4;
828848 __u32 num_cliprects;
829− /** This is a struct drm_clip_rect *cliprects */
849+ /**
850+ * This is a struct drm_clip_rect *cliprects if I915_EXEC_FENCE_ARRAY
851+ * is not set. If I915_EXEC_FENCE_ARRAY is set, then this is a
852+ * struct drm_i915_gem_exec_fence *fences.
853+ */
830854 __u64 cliprects_ptr;
831855 #define I915_EXEC_RING_MASK (7<<0)
832856 #define I915_EXEC_DEFAULT (0<<0)
@@ -927,7 +951,14 @@ struct drm_i915_gem_execbuffer2 { · 94 unmodified lines
927951 * element).
928952 */
929953 #define I915_EXEC_BATCH_FIRST (1<<18)
930−#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_BATCH_FIRST<<1))
954+
955+/* Setting I915_FENCE_ARRAY implies that num_cliprects and cliprects_ptr
956+ * define an array of i915_gem_exec_fence structures which specify a set of
957+ * dma fences to wait upon or signal.
958+ */
959+#define I915_EXEC_FENCE_ARRAY (1<<19)
960+
961+#define __I915_EXEC_UNKNOWN_FLAGS (-(I915_EXEC_FENCE_ARRAY<<1))
931962
932963 #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
933964 #define i915_execbuffer2_set_context_id(eb2, context) \
@@ -1467,6 +1498,22 @@ enum drm_i915_perf_record_type { · 533 unmodified lines
14671498 DRM_I915_PERF_RECORD_MAX /* non-ABI */
14681499 };
14691500
1501+/**
1502+ * Structure to upload perf dynamic configuration into the kernel.
1503+ */
1504+struct drm_i915_perf_oa_config {
1505+ /** String formatted like "%08x-%04x-%04x-%04x-%012x" */
1506+ char uuid[36];
1507+
1508+ __u32 n_mux_regs;
1509+ __u32 n_boolean_regs;
1510+ __u32 n_flex_regs;
1511+
1512+ __u64 __user mux_regs_ptr;
1513+ __u64 __user boolean_regs_ptr;
1514+ __u64 __user flex_regs_ptr;
1515+};
1516+
14701517 #if defined(__cplusplus)
14711518 }
14721519 #endif
include/uapi/drm/msm_drm.h+3−3
@@ -171,7 +171,7 @@ struct drm_msm_gem_submit_cmd { · 170 unmodified lines
171171 __u32 size; /* in, cmdstream size */
172172 __u32 pad;
173173 __u32 nr_relocs; /* in, number of submit_reloc's */
174− __u64 __user relocs; /* in, ptr to array of submit_reloc's */
174+ __u64 relocs; /* in, ptr to array of submit_reloc's */
175175 };
176176
177177 /* Each buffer referenced elsewhere in the cmdstream submit (ie. the
@@ -215,8 +215,8 @@ struct drm_msm_gem_submit { · 37 unmodified lines
215215 __u32 fence; /* out */
216216 __u32 nr_bos; /* in, number of submit_bo's */
217217 __u32 nr_cmds; /* in, number of submit_cmd's */
218− __u64 __user bos; /* in, ptr to array of submit_bo's */
219− __u64 __user cmds; /* in, ptr to array of submit_cmd's */
218+ __u64 bos; /* in, ptr to array of submit_bo's */
219+ __u64 cmds; /* in, ptr to array of submit_cmd's */
220220 __s32 fence_fd; /* in/out fence fd (see MSM_SUBMIT_FENCE_FD_IN/OUT) */
221221 };
222222
include/uapi/drm/qxl_drm.h+3−3
@@ -80,8 +80,8 @@ struct drm_qxl_reloc { · 79 unmodified lines
8080 };
8181
8282 struct drm_qxl_command {
83− __u64 __user command; /* void* */
84− __u64 __user relocs; /* struct drm_qxl_reloc* */
83+ __u64 command; /* void* */
84+ __u64 relocs; /* struct drm_qxl_reloc* */
8585 __u32 type;
8686 __u32 command_size;
8787 __u32 relocs_num;
@@ -91,7 +91,7 @@ struct drm_qxl_command { · 3 unmodified lines
9191 struct drm_qxl_execbuffer {
9292 __u32 flags; /* for future use */
9393 __u32 commands_num;
94− __u64 __user commands; /* struct drm_qxl_command* */
94+ __u64 commands; /* struct drm_qxl_command* */
9595 };
9696
9797 struct drm_qxl_update_area {
include/uapi/drm/vc4_drm.h+22−0
@@ -40,6 +40,7 @@ extern "C" { · 39 unmodified lines
4040 #define DRM_VC4_GET_PARAM 0x07
4141 #define DRM_VC4_SET_TILING 0x08
4242 #define DRM_VC4_GET_TILING 0x09
43+#define DRM_VC4_LABEL_BO 0x0a
4344
4445 #define DRM_IOCTL_VC4_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SUBMIT_CL, struct drm_vc4_submit_cl)
4546 #define DRM_IOCTL_VC4_WAIT_SEQNO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_WAIT_SEQNO, struct drm_vc4_wait_seqno)
@@ -51,6 +52,7 @@ extern "C" { · 5 unmodified lines
5152 #define DRM_IOCTL_VC4_GET_PARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_PARAM, struct drm_vc4_get_param)
5253 #define DRM_IOCTL_VC4_SET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_SET_TILING, struct drm_vc4_set_tiling)
5354 #define DRM_IOCTL_VC4_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_GET_TILING, struct drm_vc4_get_tiling)
55+#define DRM_IOCTL_VC4_LABEL_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_VC4_LABEL_BO, struct drm_vc4_label_bo)
5456
5557 struct drm_vc4_submit_rcl_surface {
5658 __u32 hindex; /* Handle index, or ~0 if not present. */
@@ -153,6 +155,16 @@ struct drm_vc4_submit_cl { · 96 unmodified lines
153155 __u32 pad:24;
154156
155157 #define VC4_SUBMIT_CL_USE_CLEAR_COLOR (1 << 0)
158+/* By default, the kernel gets to choose the order that the tiles are
159+ * rendered in. If this is set, then the tiles will be rendered in a
160+ * raster order, with the right-to-left vs left-to-right and
161+ * top-to-bottom vs bottom-to-top dictated by
162+ * VC4_SUBMIT_CL_RCL_ORDER_INCREASING_*. This allows overlapping
163+ * blits to be implemented using the 3D engine.
164+ */
165+#define VC4_SUBMIT_CL_FIXED_RCL_ORDER (1 << 1)
166+#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_X (1 << 2)
167+#define VC4_SUBMIT_CL_RCL_ORDER_INCREASING_Y (1 << 3)
156168 __u32 flags;
157169
158170 /* Returned value of the seqno of this render job (for the
@@ -292,6 +304,7 @@ struct drm_vc4_get_hang_state { · 133 unmodified lines
292304 #define DRM_VC4_PARAM_SUPPORTS_BRANCHES 3
293305 #define DRM_VC4_PARAM_SUPPORTS_ETC1 4
294306 #define DRM_VC4_PARAM_SUPPORTS_THREADED_FS 5
307+#define DRM_VC4_PARAM_SUPPORTS_FIXED_RCL_ORDER 6
295308
296309 struct drm_vc4_get_param {
297310 __u32 param;
@@ -311,6 +324,15 @@ struct drm_vc4_set_tiling { · 13 unmodified lines
311324 __u64 modifier;
312325 };
313326
327+/**
328+ * struct drm_vc4_label_bo - Attach a name to a BO for debug purposes.
329+ */
330+struct drm_vc4_label_bo {
331+ __u32 handle;
332+ __u32 len;
333+ __u64 name;
334+};
335+
314336 #if defined(__cplusplus)
315337 }
316338 #endif
include/uapi/drm/vmwgfx_drm.h+8−3
@@ -297,13 +297,17 @@ union drm_vmw_surface_reference_arg { · 296 unmodified lines
297297 * @version: Allows expanding the execbuf ioctl parameters without breaking
298298 * backwards compatibility, since user-space will always tell the kernel
299299 * which version it uses.
300− * @flags: Execbuf flags. None currently.
300+ * @flags: Execbuf flags.
301+ * @imported_fence_fd: FD for a fence imported from another device
301302 *
302303 * Argument to the DRM_VMW_EXECBUF Ioctl.
303304 */
304305
305306 #define DRM_VMW_EXECBUF_VERSION 2
306307
308+#define DRM_VMW_EXECBUF_FLAG_IMPORT_FENCE_FD (1 << 0)
309+#define DRM_VMW_EXECBUF_FLAG_EXPORT_FENCE_FD (1 << 1)
310+
307311 struct drm_vmw_execbuf_arg {
308312 __u64 commands;
309313 __u32 command_size;
@@ -312,7 +316,7 @@ struct drm_vmw_execbuf_arg { · 2 unmodified lines
312316 __u32 version;
313317 __u32 flags;
314318 __u32 context_handle;
315− __u32 pad64;
319+ __s32 imported_fence_fd;
316320 };
317321
318322 /**
@@ -328,6 +332,7 @@ struct drm_vmw_execbuf_arg { · 9 unmodified lines
328332 * @passed_seqno: The highest seqno number processed by the hardware
329333 * so far. This can be used to mark user-space fence objects as signaled, and
330334 * to determine whether a fence seqno might be stale.
335+ * @fd: FD associated with the fence, -1 if not exported
331336 * @error: This member should've been set to -EFAULT on submission.
332337 * The following actions should be take on completion:
333338 * error == -EFAULT: Fence communication failed. The host is synchronized.
@@ -345,7 +350,7 @@ struct drm_vmw_fence_rep { · 11 unmodified lines
345350 __u32 mask;
346351 __u32 seqno;
347352 __u32 passed_seqno;
348− __u32 pad64;
353+ __s32 fd;
349354 __s32 error;
350355 };
351356
include/uapi/linux/aio_abi.h+11−10
@@ -28,6 +28,7 @@ · 27 unmodified lines
2828 #define __LINUX__AIO_ABI_H
2929
3030 #include <linux/types.h>
31+#include <linux/fs.h>
3132 #include <asm/byteorder.h>
3233
3334 typedef __kernel_ulong_t aio_context_t;
@@ -62,14 +63,6 @@ struct io_event { · 28 unmodified lines
6263 __s64 res2; /* secondary result */
6364 };
6465
65−#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
66−#define PADDED(x,y) x, y
67−#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
68−#define PADDED(x,y) y, x
69−#else
70−#error edit for your odd byteorder.
71−#endif
72−
7366 /*
7467 * we always use a 64bit off_t when communicating
7568 * with userland. its up to libraries to do the
@@ -79,8 +72,16 @@ struct io_event { · 3 unmodified lines
7972 struct iocb {
8073 /* these are internal to the kernel/libc. */
8174 __u64 aio_data; /* data to be returned in event's data */
82− __u32 PADDED(aio_key, aio_rw_flags);
83− /* the kernel sets aio_key to the req # */
75+
76+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
77+ __u32 aio_key; /* the kernel sets aio_key to the req # */
78+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */
79+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
80+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */
81+ __u32 aio_key; /* the kernel sets aio_key to the req # */
82+#else
83+#error edit for your odd byteorder.
84+#endif
8485
8586 /* common fields */
8687 __u16 aio_lio_opcode; /* see IOCB_CMD_ above */
include/uapi/linux/android/binder.h+16−0
@@ -132,6 +132,7 @@ enum { · 131 unmodified lines
132132
133133 /* struct binder_fd_array_object - object describing an array of fds in a buffer
134134 * @hdr: common header structure
135+ * @pad: padding to ensure correct alignment
135136 * @num_fds: number of file descriptors in the buffer
136137 * @parent: index in offset array to buffer holding the fd array
137138 * @parent_offset: start offset of fd array in the buffer
@@ -152,6 +153,7 @@ enum { · 14 unmodified lines
152153 */
153154 struct binder_fd_array_object {
154155 struct binder_object_header hdr;
156+ __u32 pad;
155157 binder_size_t num_fds;
156158 binder_size_t parent;
157159 binder_size_t parent_offset;
@@ -184,6 +186,19 @@ struct binder_version { · 26 unmodified lines
184186 #define BINDER_CURRENT_PROTOCOL_VERSION 8
185187 #endif
186188
189+/*
190+ * Use with BINDER_GET_NODE_DEBUG_INFO, driver reads ptr, writes to all fields.
191+ * Set ptr to NULL for the first call to get the info for the first node, and
192+ * then repeat the call passing the previously returned value to get the next
193+ * nodes. ptr will be 0 when there are no more nodes.
194+ */
195+struct binder_node_debug_info {
196+ binder_uintptr_t ptr;
197+ binder_uintptr_t cookie;
198+ __u32 has_strong_ref;
199+ __u32 has_weak_ref;
200+};
201+
187202 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
188203 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
189204 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -191,6 +206,7 @@ struct binder_version { · 1 unmodified line
191206 #define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32)
192207 #define BINDER_THREAD_EXIT _IOW('b', 8, __s32)
193208 #define BINDER_VERSION _IOWR('b', 9, struct binder_version)
209+#define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
194210
195211 /*
196212 * NOTE: Two special error codes you should check for when calling
include/uapi/linux/auto_dev-ioctl.h+1−1
@@ -16,7 +16,7 @@ · 15 unmodified lines
1616 #define AUTOFS_DEVICE_NAME "autofs"
1717
1818 #define AUTOFS_DEV_IOCTL_VERSION_MAJOR 1
19−#define AUTOFS_DEV_IOCTL_VERSION_MINOR 0
19+#define AUTOFS_DEV_IOCTL_VERSION_MINOR 1
2020
2121 #define AUTOFS_DEV_IOCTL_SIZE sizeof(struct autofs_dev_ioctl)
2222
include/uapi/linux/auto_fs4.h+0−2
@@ -155,8 +155,6 @@ enum { · 154 unmodified lines
155155 };
156156
157157 #define AUTOFS_IOC_EXPIRE_MULTI _IOW(AUTOFS_IOCTL, AUTOFS_IOC_EXPIRE_MULTI_CMD, int)
158−#define AUTOFS_IOC_EXPIRE_INDIRECT AUTOFS_IOC_EXPIRE_MULTI
159−#define AUTOFS_IOC_EXPIRE_DIRECT AUTOFS_IOC_EXPIRE_MULTI
160158 #define AUTOFS_IOC_PROTOSUBVER _IOR(AUTOFS_IOCTL, AUTOFS_IOC_PROTOSUBVER_CMD, int)
161159 #define AUTOFS_IOC_ASKUMOUNT _IOR(AUTOFS_IOCTL, AUTOFS_IOC_ASKUMOUNT_CMD, int)
162160
include/uapi/linux/blktrace_api.h+3−0
@@ -52,6 +52,7 @@ enum blktrace_act { · 51 unmodified lines
5252 __BLK_TA_REMAP, /* bio was remapped */
5353 __BLK_TA_ABORT, /* request aborted */
5454 __BLK_TA_DRV_DATA, /* driver-specific binary data */
55+ __BLK_TA_CGROUP = 1 << 8, /* from a cgroup*/
5556 };
5657
5758 /*
@@ -61,6 +62,7 @@ enum blktrace_notify { · 3 unmodified lines
6162 __BLK_TN_PROCESS = 0, /* establish pid/name mapping */
6263 __BLK_TN_TIMESTAMP, /* include system clock */
6364 __BLK_TN_MESSAGE, /* Character string message */
65+ __BLK_TN_CGROUP = __BLK_TA_CGROUP, /* from a cgroup */
6466 };
6567
6668
@@ -107,6 +109,7 @@ struct blk_io_trace { · 40 unmodified lines
107109 __u32 cpu; /* on what cpu did it happen */
108110 __u16 error; /* completion error */
109111 __u16 pdu_len; /* length of data after this trace */
112+ /* cgroup id will be stored here if exists */
110113 };
111114
112115 /*
include/uapi/linux/bpf.h+71−7
@@ -30,9 +30,14 @@ · 29 unmodified lines
3030 #define BPF_FROM_LE BPF_TO_LE
3131 #define BPF_FROM_BE BPF_TO_BE
3232
33+/* jmp encodings */
3334 #define BPF_JNE 0x50 /* jump != */
35+#define BPF_JLT 0xa0 /* LT is unsigned, '<' */
36+#define BPF_JLE 0xb0 /* LE is unsigned, '<=' */
3437 #define BPF_JSGT 0x60 /* SGT is signed '>', GT in x86 */
3538 #define BPF_JSGE 0x70 /* SGE is signed '>=', GE in x86 */
39+#define BPF_JSLT 0xc0 /* SLT is signed, '<' */
40+#define BPF_JSLE 0xd0 /* SLE is signed, '<=' */
3641 #define BPF_CALL 0x80 /* function call */
3742 #define BPF_EXIT 0x90 /* function return */
3843
@@ -104,6 +109,8 @@ enum bpf_map_type { · 65 unmodified lines
104109 BPF_MAP_TYPE_LPM_TRIE,
105110 BPF_MAP_TYPE_ARRAY_OF_MAPS,
106111 BPF_MAP_TYPE_HASH_OF_MAPS,
112+ BPF_MAP_TYPE_DEVMAP,
113+ BPF_MAP_TYPE_SOCKMAP,
107114 };
108115
109116 enum bpf_prog_type {
@@ -121,6 +128,7 @@ enum bpf_prog_type { · 11 unmodified lines
121128 BPF_PROG_TYPE_LWT_OUT,
122129 BPF_PROG_TYPE_LWT_XMIT,
123130 BPF_PROG_TYPE_SOCK_OPS,
131+ BPF_PROG_TYPE_SK_SKB,
124132 };
125133
126134 enum bpf_attach_type {
@@ -128,6 +136,8 @@ enum bpf_attach_type { · 1 unmodified line
128136 BPF_CGROUP_INET_EGRESS,
129137 BPF_CGROUP_INET_SOCK_CREATE,
130138 BPF_CGROUP_SOCK_OPS,
139+ BPF_SK_SKB_STREAM_PARSER,
140+ BPF_SK_SKB_STREAM_VERDICT,
131141 __MAX_BPF_ATTACH_TYPE
132142 };
133143
@@ -153,6 +163,7 @@ enum bpf_attach_type { · 19 unmodified lines
153163 #define BPF_NOEXIST 1 /* create new element if it didn't exist */
154164 #define BPF_EXIST 2 /* update existing element */
155165
166+/* flags for BPF_MAP_CREATE command */
156167 #define BPF_F_NO_PREALLOC (1U << 0)
157168 /* Instead of having one common LRU list in the
158169 * BPF_MAP_TYPE_LRU_[PERCPU_]HASH map, use a percpu LRU list
@@ -161,6 +172,8 @@ enum bpf_attach_type { · 2 unmodified lines
161172 * across different LRU lists.
162173 */
163174 #define BPF_F_NO_COMMON_LRU (1U << 1)
175+/* Specify numa node during map creation */
176+#define BPF_F_NUMA_NODE (1U << 2)
164177
165178 union bpf_attr {
166179 struct { /* anonymous struct used by BPF_MAP_CREATE command */
@@ -168,8 +181,13 @@ union bpf_attr { · 1 unmodified line
168181 __u32 key_size; /* size of key in bytes */
169182 __u32 value_size; /* size of value in bytes */
170183 __u32 max_entries; /* max number of entries in a map */
171− __u32 map_flags; /* prealloc or not */
184+ __u32 map_flags; /* BPF_MAP_CREATE related
185+ * flags defined above.
186+ */
172187 __u32 inner_map_fd; /* fd pointing to the inner map */
188+ __u32 numa_node; /* numa node (effective only if
189+ * BPF_F_NUMA_NODE is set).
190+ */
173191 };
174192
175193 struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -344,9 +362,20 @@ union bpf_attr { · 168 unmodified lines
344362 * int bpf_redirect(ifindex, flags)
345363 * redirect to another netdev
346364 * @ifindex: ifindex of the net device
347− * @flags: bit 0 - if set, redirect to ingress instead of egress
348− * other bits - reserved
349− * Return: TC_ACT_REDIRECT
365+ * @flags:
366+ * cls_bpf:
367+ * bit 0 - if set, redirect to ingress instead of egress
368+ * other bits - reserved
369+ * xdp_bpf:
370+ * all bits - reserved
371+ * Return: cls_bpf: TC_ACT_REDIRECT on success or TC_ACT_SHOT on error
372+ * xdp_bfp: XDP_REDIRECT on success or XDP_ABORT on error
373+ * int bpf_redirect_map(map, key, flags)
374+ * redirect to endpoint in map
375+ * @map: pointer to dev map
376+ * @key: index in map to lookup
377+ * @flags: --
378+ * Return: XDP_REDIRECT on success or XDP_ABORT on error
350379 *
351380 * u32 bpf_get_route_realm(skb)
352381 * retrieve a dst's tclassid
@@ -539,6 +568,20 @@ union bpf_attr { · 186 unmodified lines
539568 * @mode: operation mode (enum bpf_adj_room_mode)
540569 * @flags: reserved for future use
541570 * Return: 0 on success or negative error code
571+ *
572+ * int bpf_sk_redirect_map(map, key, flags)
573+ * Redirect skb to a sock in map using key as a lookup key for the
574+ * sock in map.
575+ * @map: pointer to sockmap
576+ * @key: key to lookup sock in map
577+ * @flags: reserved for future use
578+ * Return: SK_REDIRECT
579+ *
580+ * int bpf_sock_map_update(skops, map, key, flags)
581+ * @skops: pointer to bpf_sock_ops
582+ * @map: pointer to sockmap to update
583+ * @key: key to insert/update sock in map
584+ * @flags: same flags as map update elem
542585 */
543586 #define __BPF_FUNC_MAPPER(FN) \
544587 FN(unspec), \
@@ -591,7 +634,10 @@ union bpf_attr { · 46 unmodified lines
591634 FN(get_socket_uid), \
592635 FN(set_hash), \
593636 FN(setsockopt), \
594− FN(skb_adjust_room),
637+ FN(skb_adjust_room), \
638+ FN(redirect_map), \
639+ FN(sk_redirect_map), \
640+ FN(sock_map_update), \
595641
596642 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
597643 * function eBPF program intends to call
@@ -668,6 +714,15 @@ struct __sk_buff { · 70 unmodified lines
668714 __u32 data;
669715 __u32 data_end;
670716 __u32 napi_id;
717+
718+ /* accessed by BPF_PROG_TYPE_sk_skb types */
719+ __u32 family;
720+ __u32 remote_ip4; /* Stored in network byte order */
721+ __u32 local_ip4; /* Stored in network byte order */
722+ __u32 remote_ip6[4]; /* Stored in network byte order */
723+ __u32 local_ip6[4]; /* Stored in network byte order */
724+ __u32 remote_port; /* Stored in network byte order */
725+ __u32 local_port; /* stored in host byte order */
671726 };
672727
673728 struct bpf_tunnel_key {
@@ -703,20 +758,23 @@ struct bpf_sock { · 29 unmodified lines
703758 __u32 family;
704759 __u32 type;
705760 __u32 protocol;
761+ __u32 mark;
762+ __u32 priority;
706763 };
707764
708765 #define XDP_PACKET_HEADROOM 256
709766
710767 /* User return codes for XDP prog type.
711768 * A valid XDP program must return one of these defined values. All other
712− * return codes are reserved for future use. Unknown return codes will result
713− * in packet drop.
769+ * return codes are reserved for future use. Unknown return codes will
770+ * result in packet drops and a warning via bpf_warn_invalid_xdp_action().
714771 */
715772 enum xdp_action {
716773 XDP_ABORTED = 0,
717774 XDP_DROP,
718775 XDP_PASS,
719776 XDP_TX,
777+ XDP_REDIRECT,
720778 };
721779
722780 /* user accessible metadata for XDP packet hook
@@ -727,6 +785,12 @@ struct xdp_md { · 4 unmodified lines
727785 __u32 data_end;
728786 };
729787
788+enum sk_action {
789+ SK_ABORTED = 0,
790+ SK_DROP,
791+ SK_REDIRECT,
792+};
793+
730794 #define BPF_TAG_SIZE 8
731795
732796 struct bpf_prog_info {
include/uapi/linux/btrfs.h+1−7
@@ -255,13 +255,7 @@ struct btrfs_ioctl_fs_info_args { · 254 unmodified lines
255255 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
256256 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
257257 #define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO (1ULL << 3)
258−/*
259− * some patches floated around with a second compression method
260− * lets save that incompat here for when they do get in
261− * Note we don't actually support it, we're just reserving the
262− * number
263− */
264−#define BTRFS_FEATURE_INCOMPAT_COMPRESS_LZOv2 (1ULL << 4)
258+#define BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD (1ULL << 4)
265259
266260 /*
267261 * older kernels tried to do bigger metadata blocks, but the
include/uapi/linux/capability.h+19−3
@@ -60,9 +60,13 @@ typedef struct __user_cap_data_struct { · 59 unmodified lines
6060 #define VFS_CAP_U32_2 2
6161 #define XATTR_CAPS_SZ_2 (sizeof(__le32)*(1 + 2*VFS_CAP_U32_2))
6262
63−#define XATTR_CAPS_SZ XATTR_CAPS_SZ_2
64−#define VFS_CAP_U32 VFS_CAP_U32_2
65−#define VFS_CAP_REVISION VFS_CAP_REVISION_2
63+#define VFS_CAP_REVISION_3 0x03000000
64+#define VFS_CAP_U32_3 2
65+#define XATTR_CAPS_SZ_3 (sizeof(__le32)*(2 + 2*VFS_CAP_U32_3))
66+
67+#define XATTR_CAPS_SZ XATTR_CAPS_SZ_3
68+#define VFS_CAP_U32 VFS_CAP_U32_3
69+#define VFS_CAP_REVISION VFS_CAP_REVISION_3
6670
6771 struct vfs_cap_data {
6872 __le32 magic_etc; /* Little endian */
@@ -72,6 +76,18 @@ struct vfs_cap_data { · 3 unmodified lines
7276 } data[VFS_CAP_U32];
7377 };
7478
79+/*
80+ * same as vfs_cap_data but with a rootid at the end
81+ */
82+struct vfs_ns_cap_data {
83+ __le32 magic_etc;
84+ struct {
85+ __le32 permitted; /* Little endian */
86+ __le32 inheritable; /* Little endian */
87+ } data[VFS_CAP_U32];
88+ __le32 rootid;
89+};
90+
7591 #ifndef __KERNEL__
7692
7793 /*
include/uapi/linux/devlink.h+18−0
@@ -226,4 +226,22 @@ enum devlink_dpipe_action_type { · 225 unmodified lines
226226 DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY,
227227 };
228228
229+enum devlink_dpipe_field_ethernet_id {
230+ DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC,
231+};
232+
233+enum devlink_dpipe_field_ipv4_id {
234+ DEVLINK_DPIPE_FIELD_IPV4_DST_IP,
235+};
236+
237+enum devlink_dpipe_field_ipv6_id {
238+ DEVLINK_DPIPE_FIELD_IPV6_DST_IP,
239+};
240+
241+enum devlink_dpipe_header_id {
242+ DEVLINK_DPIPE_HEADER_ETHERNET,
243+ DEVLINK_DPIPE_HEADER_IPV4,
244+ DEVLINK_DPIPE_HEADER_IPV6,
245+};
246+
229247 #endif /* _UAPI_LINUX_DEVLINK_H_ */
include/uapi/linux/dlm_netlink.h+1−0
@@ -10,6 +10,7 @@ · 9 unmodified lines
1010 #define _DLM_NETLINK_H
1111
1212 #include <linux/types.h>
13+#include <linux/dlmconstants.h>
1314
1415 enum {
1516 DLM_STATUS_WAITING = 1,
include/uapi/linux/errqueue.h+3−0
@@ -18,10 +18,13 @@ struct sock_extended_err { · 17 unmodified lines
1818 #define SO_EE_ORIGIN_ICMP 2
1919 #define SO_EE_ORIGIN_ICMP6 3
2020 #define SO_EE_ORIGIN_TXSTATUS 4
21+#define SO_EE_ORIGIN_ZEROCOPY 5
2122 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
2223
2324 #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
2425
26+#define SO_EE_CODE_ZEROCOPY_COPIED 1
27+
2528 /**
2629 * struct scm_timestamping - timestamps exposed through cmsg
2730 *
include/uapi/linux/ethtool.h+52−2
@@ -1238,6 +1238,47 @@ struct ethtool_per_queue_op { · 1237 unmodified lines
12381238 char data[];
12391239 };
12401240
1241+/**
1242+ * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
1243+ * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
1244+ * @active_fec: FEC mode which is active on porte
1245+ * @fec: Bitmask of supported/configured FEC modes
1246+ * @rsvd: Reserved for future extensions. i.e FEC bypass feature.
1247+ *
1248+ * Drivers should reject a non-zero setting of @autoneg when
1249+ * autoneogotiation is disabled (or not supported) for the link.
1250+ *
1251+ */
1252+struct ethtool_fecparam {
1253+ __u32 cmd;
1254+ /* bitmask of FEC modes */
1255+ __u32 active_fec;
1256+ __u32 fec;
1257+ __u32 reserved;
1258+};
1259+
1260+/**
1261+ * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
1262+ * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
1263+ * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
1264+ * @ETHTOOL_FEC_OFF: No FEC Mode
1265+ * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
1266+ * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
1267+ */
1268+enum ethtool_fec_config_bits {
1269+ ETHTOOL_FEC_NONE_BIT,
1270+ ETHTOOL_FEC_AUTO_BIT,
1271+ ETHTOOL_FEC_OFF_BIT,
1272+ ETHTOOL_FEC_RS_BIT,
1273+ ETHTOOL_FEC_BASER_BIT,
1274+};
1275+
1276+#define ETHTOOL_FEC_NONE (1 << ETHTOOL_FEC_NONE_BIT)
1277+#define ETHTOOL_FEC_AUTO (1 << ETHTOOL_FEC_AUTO_BIT)
1278+#define ETHTOOL_FEC_OFF (1 << ETHTOOL_FEC_OFF_BIT)
1279+#define ETHTOOL_FEC_RS (1 << ETHTOOL_FEC_RS_BIT)
1280+#define ETHTOOL_FEC_BASER (1 << ETHTOOL_FEC_BASER_BIT)
1281+
12411282 /* CMDs currently supported */
12421283 #define ETHTOOL_GSET 0x00000001 /* DEPRECATED, Get settings.
12431284 * Please use ETHTOOL_GLINKSETTINGS
@@ -1330,6 +1371,8 @@ struct ethtool_per_queue_op { · 86 unmodified lines
13301371 #define ETHTOOL_SLINKSETTINGS 0x0000004d /* Set ethtool_link_settings */
13311372 #define ETHTOOL_PHY_GTUNABLE 0x0000004e /* Get PHY tunable configuration */
13321373 #define ETHTOOL_PHY_STUNABLE 0x0000004f /* Set PHY tunable configuration */
1374+#define ETHTOOL_GFECPARAM 0x00000050 /* Get FEC settings */
1375+#define ETHTOOL_SFECPARAM 0x00000051 /* Set FEC settings */
13331376
13341377 /* compatibility with older code */
13351378 #define SPARC_ETH_GSET ETHTOOL_GSET
@@ -1387,6 +1430,9 @@ enum ethtool_link_mode_bit_indices { · 51 unmodified lines
13871430 ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47,
13881431 ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48,
13891432
1433+ ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
1434+ ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
1435+ ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
13901436
13911437 /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
13921438 * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
@@ -1395,7 +1441,7 @@ enum ethtool_link_mode_bit_indices { · 2 unmodified lines
13951441 */
13961442
13971443 __ETHTOOL_LINK_MODE_LAST
1398− = ETHTOOL_LINK_MODE_5000baseT_Full_BIT,
1444+ = ETHTOOL_LINK_MODE_FEC_BASER_BIT,
13991445 };
14001446
14011447 #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
@@ -1707,6 +1753,8 @@ enum ethtool_reset_flags { · 305 unmodified lines
17071753 * %ethtool_link_mode_bit_indices for the link modes, and other
17081754 * link features that the link partner advertised through
17091755 * autonegotiation; 0 if unknown or not applicable. Read-only.
1756+ * @transceiver: Used to distinguish different possible PHY types,
1757+ * reported consistently by PHYLIB. Read-only.
17101758 *
17111759 * If autonegotiation is disabled, the speed and @duplex represent the
17121760 * fixed link mode and are writable if the driver supports multiple
@@ -1758,7 +1806,9 @@ struct ethtool_link_settings { · 45 unmodified lines
17581806 __u8 eth_tp_mdix;
17591807 __u8 eth_tp_mdix_ctrl;
17601808 __s8 link_mode_masks_nwords;
1761− __u32 reserved[8];
1809+ __u8 transceiver;
1810+ __u8 reserved1[3];
1811+ __u32 reserved[7];
17621812 __u32 link_mode_masks[0];
17631813 /* layout of link_mode_masks fields:
17641814 * __u32 map_supported[link_mode_masks_nwords];
include/uapi/linux/fs.h+20−8
@@ -358,13 +358,25 @@ struct fscrypt_key { · 357 unmodified lines
358358 #define SYNC_FILE_RANGE_WRITE 2
359359 #define SYNC_FILE_RANGE_WAIT_AFTER 4
360360
361−/* flags for preadv2/pwritev2: */
362−#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */
363−#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */
364−#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */
365−#define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */
366−
367−#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\
368− RWF_NOWAIT)
361+/*
362+ * Flags for preadv2/pwritev2:
363+ */
364+
365+typedef int __bitwise __kernel_rwf_t;
366+
367+/* high priority request, poll if possible */
368+#define RWF_HIPRI ((__force __kernel_rwf_t)0x00000001)
369+
370+/* per-IO O_DSYNC */
371+#define RWF_DSYNC ((__force __kernel_rwf_t)0x00000002)
372+
373+/* per-IO O_SYNC */
374+#define RWF_SYNC ((__force __kernel_rwf_t)0x00000004)
375+
376+/* per-IO, return -EAGAIN if operation would block */
377+#define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008)
378+
379+/* mask of flags supported by the kernel */
380+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
369381
370382 #endif /* _UAPI_LINUX_FS_H */
include/uapi/linux/fsmap.h+1−1
@@ -96,7 +96,7 @@ fsmap_advance( · 95 unmodified lines
9696 #define FMR_OF_EXTENT_MAP 0x4 /* segment = extent map */
9797 #define FMR_OF_SHARED 0x8 /* segment = shared with another file */
9898 #define FMR_OF_SPECIAL_OWNER 0x10 /* owner is a special value */
99−#define FMR_OF_LAST 0x20 /* segment is the last in the FS */
99+#define FMR_OF_LAST 0x20 /* segment is the last in the dataset */
100100
101101 /* Each FS gets to define its own special owner codes. */
102102 #define FMR_OWNER(type, code) (((__u64)type << 32) | \
include/uapi/linux/if_arp.h+1−0
@@ -59,6 +59,7 @@ · 58 unmodified lines
5959 #define ARPHRD_LAPB 516 /* LAPB */
6060 #define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */
6161 #define ARPHRD_RAWHDLC 518 /* Raw HDLC */
62+#define ARPHRD_RAWIP 519 /* Raw IP */
6263
6364 #define ARPHRD_TUNNEL 768 /* IPIP tunnel */
6465 #define ARPHRD_TUNNEL6 769 /* IP6IP6 tunnel */
include/uapi/linux/if_ether.h+6−0
@@ -66,6 +66,7 @@ · 65 unmodified lines
6666 #define ETH_P_ATALK 0x809B /* Appletalk DDP */
6767 #define ETH_P_AARP 0x80F3 /* Appletalk AARP */
6868 #define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
69+#define ETH_P_ERSPAN 0x88BE /* ERSPAN type II */
6970 #define ETH_P_IPX 0x8137 /* IPX over DIX */
7071 #define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
7172 #define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
@@ -98,11 +99,13 @@ · 26 unmodified lines
9899 #define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
99100 #define ETH_P_80221 0x8917 /* IEEE 802.21 Media Independent Handover Protocol */
100101 #define ETH_P_HSR 0x892F /* IEC 62439-3 HSRv1 */
102+#define ETH_P_NSH 0x894F /* Network Service Header */
101103 #define ETH_P_LOOPBACK 0x9000 /* Ethernet loopback packet, per IEEE 802.3 */
102104 #define ETH_P_QINQ1 0x9100 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
103105 #define ETH_P_QINQ2 0x9200 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
104106 #define ETH_P_QINQ3 0x9300 /* deprecated QinQ VLAN [ NOT AN OFFICIALLY REGISTERED ID ] */
105107 #define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
108+#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
106109 #define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
107110
108111 #define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value
@@ -137,6 +140,9 @@ · 28 unmodified lines
137140 #define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
138141 #define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
139142 #define ETH_P_XDSA 0x00F8 /* Multiplexed DSA protocol */
143+#define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and
144+ * aggregation protocol
145+ */
140146
141147 /*
142148 * This is an Ethernet frame header.
include/uapi/linux/if_tunnel.h+1−0
@@ -134,6 +134,7 @@ enum { · 133 unmodified lines
134134 IFLA_GRE_COLLECT_METADATA,
135135 IFLA_GRE_IGNORE_DF,
136136 IFLA_GRE_FWMARK,
137+ IFLA_GRE_ERSPAN_INDEX,
137138 __IFLA_GRE_MAX,
138139 };
139140
include/uapi/linux/inet_diag.h+2−0
@@ -142,6 +142,8 @@ enum { · 141 unmodified lines
142142 INET_DIAG_PAD,
143143 INET_DIAG_MARK,
144144 INET_DIAG_BBRINFO,
145+ INET_DIAG_CLASS_ID,
146+ INET_DIAG_MD5SIG,
145147 __INET_DIAG_MAX,
146148 };
147149
include/uapi/linux/kfd_ioctl.h+122−87
@@ -23,15 +23,15 @@ · 22 unmodified lines
2323 #ifndef KFD_IOCTL_H_INCLUDED
2424 #define KFD_IOCTL_H_INCLUDED
2525
26−#include <linux/types.h>
26+#include <drm/drm.h>
2727 #include <linux/ioctl.h>
2828
2929 #define KFD_IOCTL_MAJOR_VERSION 1
3030 #define KFD_IOCTL_MINOR_VERSION 1
3131
3232 struct kfd_ioctl_get_version_args {
33− uint32_t major_version; /* from KFD */
34− uint32_t minor_version; /* from KFD */
33+ __u32 major_version; /* from KFD */
34+ __u32 minor_version; /* from KFD */
3535 };
3636
3737 /* For kfd_ioctl_create_queue_args.queue_type. */
@@ -43,36 +43,36 @@ struct kfd_ioctl_get_version_args { · 5 unmodified lines
4343 #define KFD_MAX_QUEUE_PRIORITY 15
4444
4545 struct kfd_ioctl_create_queue_args {
46− uint64_t ring_base_address; /* to KFD */
47− uint64_t write_pointer_address; /* from KFD */
48− uint64_t read_pointer_address; /* from KFD */
49− uint64_t doorbell_offset; /* from KFD */
50−
51− uint32_t ring_size; /* to KFD */
52− uint32_t gpu_id; /* to KFD */
53− uint32_t queue_type; /* to KFD */
54− uint32_t queue_percentage; /* to KFD */
55− uint32_t queue_priority; /* to KFD */
56− uint32_t queue_id; /* from KFD */
57−
58− uint64_t eop_buffer_address; /* to KFD */
59− uint64_t eop_buffer_size; /* to KFD */
60− uint64_t ctx_save_restore_address; /* to KFD */
61− uint64_t ctx_save_restore_size; /* to KFD */
46+ __u64 ring_base_address; /* to KFD */
47+ __u64 write_pointer_address; /* from KFD */
48+ __u64 read_pointer_address; /* from KFD */
49+ __u64 doorbell_offset; /* from KFD */
50+
51+ __u32 ring_size; /* to KFD */
52+ __u32 gpu_id; /* to KFD */
53+ __u32 queue_type; /* to KFD */
54+ __u32 queue_percentage; /* to KFD */
55+ __u32 queue_priority; /* to KFD */
56+ __u32 queue_id; /* from KFD */
57+
58+ __u64 eop_buffer_address; /* to KFD */
59+ __u64 eop_buffer_size; /* to KFD */
60+ __u64 ctx_save_restore_address; /* to KFD */
61+ __u64 ctx_save_restore_size; /* to KFD */
6262 };
6363
6464 struct kfd_ioctl_destroy_queue_args {
65− uint32_t queue_id; /* to KFD */
66− uint32_t pad;
65+ __u32 queue_id; /* to KFD */
66+ __u32 pad;
6767 };
6868
6969 struct kfd_ioctl_update_queue_args {
70− uint64_t ring_base_address; /* to KFD */
70+ __u64 ring_base_address; /* to KFD */
7171
72− uint32_t queue_id; /* to KFD */
73− uint32_t ring_size; /* to KFD */
74− uint32_t queue_percentage; /* to KFD */
75− uint32_t queue_priority; /* to KFD */
72+ __u32 queue_id; /* to KFD */
73+ __u32 ring_size; /* to KFD */
74+ __u32 queue_percentage; /* to KFD */
75+ __u32 queue_priority; /* to KFD */
7676 };
7777
7878 /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */
@@ -80,13 +80,13 @@ struct kfd_ioctl_update_queue_args { · 1 unmodified line
8080 #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
8181
8282 struct kfd_ioctl_set_memory_policy_args {
83− uint64_t alternate_aperture_base; /* to KFD */
84− uint64_t alternate_aperture_size; /* to KFD */
83+ __u64 alternate_aperture_base; /* to KFD */
84+ __u64 alternate_aperture_size; /* to KFD */
8585
86− uint32_t gpu_id; /* to KFD */
87− uint32_t default_policy; /* to KFD */
88− uint32_t alternate_policy; /* to KFD */
89− uint32_t pad;
86+ __u32 gpu_id; /* to KFD */
87+ __u32 default_policy; /* to KFD */
88+ __u32 alternate_policy; /* to KFD */
89+ __u32 pad;
9090 };
9191
9292 /*
@@ -97,26 +97,26 @@ struct kfd_ioctl_set_memory_policy_args { · 4 unmodified lines
9797 */
9898
9999 struct kfd_ioctl_get_clock_counters_args {
100− uint64_t gpu_clock_counter; /* from KFD */
101− uint64_t cpu_clock_counter; /* from KFD */
102− uint64_t system_clock_counter; /* from KFD */
103− uint64_t system_clock_freq; /* from KFD */
100+ __u64 gpu_clock_counter; /* from KFD */
101+ __u64 cpu_clock_counter; /* from KFD */
102+ __u64 system_clock_counter; /* from KFD */
103+ __u64 system_clock_freq; /* from KFD */
104104
105− uint32_t gpu_id; /* to KFD */
106− uint32_t pad;
105+ __u32 gpu_id; /* to KFD */
106+ __u32 pad;
107107 };
108108
109109 #define NUM_OF_SUPPORTED_GPUS 7
110110
111111 struct kfd_process_device_apertures {
112− uint64_t lds_base; /* from KFD */
113− uint64_t lds_limit; /* from KFD */
114− uint64_t scratch_base; /* from KFD */
115− uint64_t scratch_limit; /* from KFD */
116− uint64_t gpuvm_base; /* from KFD */
117− uint64_t gpuvm_limit; /* from KFD */
118− uint32_t gpu_id; /* from KFD */
119− uint32_t pad;
112+ __u64 lds_base; /* from KFD */
113+ __u64 lds_limit; /* from KFD */
114+ __u64 scratch_base; /* from KFD */
115+ __u64 scratch_limit; /* from KFD */
116+ __u64 gpuvm_base; /* from KFD */
117+ __u64 gpuvm_limit; /* from KFD */
118+ __u32 gpu_id; /* from KFD */
119+ __u32 pad;
120120 };
121121
122122 struct kfd_ioctl_get_process_apertures_args {
@@ -124,8 +124,8 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line
124124 process_apertures[NUM_OF_SUPPORTED_GPUS];/* from KFD */
125125
126126 /* from KFD, should be in the range [1 - NUM_OF_SUPPORTED_GPUS] */
127− uint32_t num_of_nodes;
128− uint32_t pad;
127+ __u32 num_of_nodes;
128+ __u32 pad;
129129 };
130130
131131 #define MAX_ALLOWED_NUM_POINTS 100
@@ -133,25 +133,25 @@ struct kfd_ioctl_get_process_apertures_args { · 1 unmodified line
133133 #define MAX_ALLOWED_WAC_BUFF_SIZE 128
134134
135135 struct kfd_ioctl_dbg_register_args {
136− uint32_t gpu_id; /* to KFD */
137− uint32_t pad;
136+ __u32 gpu_id; /* to KFD */
137+ __u32 pad;
138138 };
139139
140140 struct kfd_ioctl_dbg_unregister_args {
141− uint32_t gpu_id; /* to KFD */
142− uint32_t pad;
141+ __u32 gpu_id; /* to KFD */
142+ __u32 pad;
143143 };
144144
145145 struct kfd_ioctl_dbg_address_watch_args {
146− uint64_t content_ptr; /* a pointer to the actual content */
147− uint32_t gpu_id; /* to KFD */
148− uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */
146+ __u64 content_ptr; /* a pointer to the actual content */
147+ __u32 gpu_id; /* to KFD */
148+ __u32 buf_size_in_bytes; /*including gpu_id and buf_size */
149149 };
150150
151151 struct kfd_ioctl_dbg_wave_control_args {
152− uint64_t content_ptr; /* a pointer to the actual content */
153− uint32_t gpu_id; /* to KFD */
154− uint32_t buf_size_in_bytes; /*including gpu_id and buf_size */
152+ __u64 content_ptr; /* a pointer to the actual content */
153+ __u32 gpu_id; /* to KFD */
154+ __u32 buf_size_in_bytes; /*including gpu_id and buf_size */
155155 };
156156
157157 /* Matching HSA_EVENTTYPE */
@@ -172,44 +172,44 @@ struct kfd_ioctl_dbg_wave_control_args { · 14 unmodified lines
172172 #define KFD_SIGNAL_EVENT_LIMIT 256
173173
174174 struct kfd_ioctl_create_event_args {
175− uint64_t event_page_offset; /* from KFD */
176− uint32_t event_trigger_data; /* from KFD - signal events only */
177− uint32_t event_type; /* to KFD */
178− uint32_t auto_reset; /* to KFD */
179− uint32_t node_id; /* to KFD - only valid for certain
175+ __u64 event_page_offset; /* from KFD */
176+ __u32 event_trigger_data; /* from KFD - signal events only */
177+ __u32 event_type; /* to KFD */
178+ __u32 auto_reset; /* to KFD */
179+ __u32 node_id; /* to KFD - only valid for certain
180180 event types */
181− uint32_t event_id; /* from KFD */
182− uint32_t event_slot_index; /* from KFD */
181+ __u32 event_id; /* from KFD */
182+ __u32 event_slot_index; /* from KFD */
183183 };
184184
185185 struct kfd_ioctl_destroy_event_args {
186− uint32_t event_id; /* to KFD */
187− uint32_t pad;
186+ __u32 event_id; /* to KFD */
187+ __u32 pad;
188188 };
189189
190190 struct kfd_ioctl_set_event_args {
191− uint32_t event_id; /* to KFD */
192− uint32_t pad;
191+ __u32 event_id; /* to KFD */
192+ __u32 pad;
193193 };
194194
195195 struct kfd_ioctl_reset_event_args {
196− uint32_t event_id; /* to KFD */
197− uint32_t pad;
196+ __u32 event_id; /* to KFD */
197+ __u32 pad;
198198 };
199199
200200 struct kfd_memory_exception_failure {
201− uint32_t NotPresent; /* Page not present or supervisor privilege */
202− uint32_t ReadOnly; /* Write access to a read-only page */
203− uint32_t NoExecute; /* Execute access to a page marked NX */
204− uint32_t pad;
201+ __u32 NotPresent; /* Page not present or supervisor privilege */
202+ __u32 ReadOnly; /* Write access to a read-only page */
203+ __u32 NoExecute; /* Execute access to a page marked NX */
204+ __u32 pad;
205205 };
206206
207207 /* memory exception data*/
208208 struct kfd_hsa_memory_exception_data {
209209 struct kfd_memory_exception_failure failure;
210− uint64_t va;
211− uint32_t gpu_id;
212− uint32_t pad;
210+ __u64 va;
211+ __u32 gpu_id;
212+ __u32 pad;
213213 };
214214
215215 /* Event data*/
@@ -217,19 +217,48 @@ struct kfd_event_data { · 1 unmodified line
217217 union {
218218 struct kfd_hsa_memory_exception_data memory_exception_data;
219219 }; /* From KFD */
220− uint64_t kfd_event_data_ext; /* pointer to an extension structure
220+ __u64 kfd_event_data_ext; /* pointer to an extension structure
221221 for future exception types */
222− uint32_t event_id; /* to KFD */
223− uint32_t pad;
222+ __u32 event_id; /* to KFD */
223+ __u32 pad;
224224 };
225225
226226 struct kfd_ioctl_wait_events_args {
227− uint64_t events_ptr; /* pointed to struct
227+ __u64 events_ptr; /* pointed to struct
228228 kfd_event_data array, to KFD */
229− uint32_t num_events; /* to KFD */
230− uint32_t wait_for_all; /* to KFD */
231− uint32_t timeout; /* to KFD */
232− uint32_t wait_result; /* from KFD */
229+ __u32 num_events; /* to KFD */
230+ __u32 wait_for_all; /* to KFD */
231+ __u32 timeout; /* to KFD */
232+ __u32 wait_result; /* from KFD */
233+};
234+
235+struct kfd_ioctl_set_scratch_backing_va_args {
236+ uint64_t va_addr; /* to KFD */
237+ uint32_t gpu_id; /* to KFD */
238+ uint32_t pad;
239+};
240+
241+struct kfd_ioctl_get_tile_config_args {
242+ /* to KFD: pointer to tile array */
243+ uint64_t tile_config_ptr;
244+ /* to KFD: pointer to macro tile array */
245+ uint64_t macro_tile_config_ptr;
246+ /* to KFD: array size allocated by user mode
247+ * from KFD: array size filled by kernel
248+ */
249+ uint32_t num_tile_configs;
250+ /* to KFD: array size allocated by user mode
251+ * from KFD: array size filled by kernel
252+ */
253+ uint32_t num_macro_tile_configs;
254+
255+ uint32_t gpu_id; /* to KFD */
256+ uint32_t gb_addr_config; /* from KFD */
257+ uint32_t num_banks; /* from KFD */
258+ uint32_t num_ranks; /* from KFD */
259+ /* struct size can be extended later if needed
260+ * without breaking ABI compatibility
261+ */
233262 };
234263
235264 #define AMDKFD_IOCTL_BASE 'K'
@@ -286,7 +315,13 @@ struct kfd_ioctl_wait_events_args { · 50 unmodified lines
286315 #define AMDKFD_IOC_DBG_WAVE_CONTROL \
287316 AMDKFD_IOW(0x10, struct kfd_ioctl_dbg_wave_control_args)
288317
318+#define AMDKFD_IOC_SET_SCRATCH_BACKING_VA \
319+ AMDKFD_IOWR(0x11, struct kfd_ioctl_set_scratch_backing_va_args)
320+
321+#define AMDKFD_IOC_GET_TILE_CONFIG \
322+ AMDKFD_IOWR(0x12, struct kfd_ioctl_get_tile_config_args)
323+
289324 #define AMDKFD_COMMAND_START 0x01
290−#define AMDKFD_COMMAND_END 0x11
325+#define AMDKFD_COMMAND_END 0x13
291326
292327 #endif
include/uapi/linux/kvm.h+2−1
@@ -711,7 +711,8 @@ struct kvm_ppc_one_seg_page_size { · 710 unmodified lines
711711 struct kvm_ppc_smmu_info {
712712 __u64 flags;
713713 __u32 slb_size;
714− __u32 pad;
714+ __u16 data_keys; /* # storage keys supported for data */
715+ __u16 instr_keys; /* # storage keys supported for instructions */
715716 struct kvm_ppc_one_seg_page_size sps[KVM_PPC_PAGE_SIZES_MAX_SZ];
716717 };
717718
include/uapi/linux/loop.h+1−3
@@ -22,7 +22,6 @@ enum { · 21 unmodified lines
2222 LO_FLAGS_AUTOCLEAR = 4,
2323 LO_FLAGS_PARTSCAN = 8,
2424 LO_FLAGS_DIRECT_IO = 16,
25− LO_FLAGS_BLOCKSIZE = 32,
2625 };
2726
2827 #include <asm/posix_types.h> /* for __kernel_old_dev_t */
@@ -60,8 +59,6 @@ struct loop_info64 { · 31 unmodified lines
6059 __u64 lo_init[2];
6160 };
6261
63−#define LO_INFO_BLOCKSIZE(l) (l)->lo_init[0]
64−
6562 /*
6663 * Loop filter types
6764 */
@@ -91,6 +88,7 @@ struct loop_info64 { · 23 unmodified lines
9188 #define LOOP_CHANGE_FD 0x4C06
9289 #define LOOP_SET_CAPACITY 0x4C07
9390 #define LOOP_SET_DIRECT_IO 0x4C08
91+#define LOOP_SET_BLOCK_SIZE 0x4C09
9492
9593 /* /dev/loop-control interface */
9694 #define LOOP_CTL_ADD 0x4C80
include/uapi/linux/lwtunnel.h+1−0
@@ -11,6 +11,7 @@ enum lwtunnel_encap_types { · 10 unmodified lines
1111 LWTUNNEL_ENCAP_IP6,
1212 LWTUNNEL_ENCAP_SEG6,
1313 LWTUNNEL_ENCAP_BPF,
14+ LWTUNNEL_ENCAP_SEG6_LOCAL,
1415 __LWTUNNEL_ENCAP_MAX,
1516 };
1617
include/uapi/linux/membarrier.h+21−2
@@ -40,14 +40,33 @@ · 39 unmodified lines
4040 * (non-running threads are de facto in such a
4141 * state). This covers threads from all processes
4242 * running on the system. This command returns 0.
43+ * @MEMBARRIER_CMD_PRIVATE_EXPEDITED:
44+ * Execute a memory barrier on each running
45+ * thread belonging to the same process as the current
46+ * thread. Upon return from system call, the
47+ * caller thread is ensured that all its running
48+ * threads siblings have passed through a state
49+ * where all memory accesses to user-space
50+ * addresses match program order between entry
51+ * to and return from the system call
52+ * (non-running threads are de facto in such a
53+ * state). This only covers threads from the
54+ * same processes as the caller thread. This
55+ * command returns 0. The "expedited" commands
56+ * complete faster than the non-expedited ones,
57+ * they never block, but have the downside of
58+ * causing extra overhead.
4359 *
4460 * Command to be passed to the membarrier system call. The commands need to
4561 * be a single bit each, except for MEMBARRIER_CMD_QUERY which is assigned to
4662 * the value 0.
4763 */
4864 enum membarrier_cmd {
49− MEMBARRIER_CMD_QUERY = 0,
50− MEMBARRIER_CMD_SHARED = (1 << 0),
65+ MEMBARRIER_CMD_QUERY = 0,
66+ MEMBARRIER_CMD_SHARED = (1 << 0),
67+ /* reserved for MEMBARRIER_CMD_SHARED_EXPEDITED (1 << 1) */
68+ /* reserved for MEMBARRIER_CMD_PRIVATE (1 << 2) */
69+ MEMBARRIER_CMD_PRIVATE_EXPEDITED = (1 << 3),
5170 };
5271
5372 #endif /* _UAPI_LINUX_MEMBARRIER_H */
include/uapi/linux/memfd.h+24−0
@@ -1,8 +1,32 @@
11 #ifndef _UAPI_LINUX_MEMFD_H
22 #define _UAPI_LINUX_MEMFD_H
33
4+#include <asm-generic/hugetlb_encode.h>
5+
46 /* flags for memfd_create(2) (unsigned int) */
57 #define MFD_CLOEXEC 0x0001U
68 #define MFD_ALLOW_SEALING 0x0002U
9+#define MFD_HUGETLB 0x0004U
10+
11+/*
12+ * Huge page size encoding when MFD_HUGETLB is specified, and a huge page
13+ * size other than the default is desired. See hugetlb_encode.h.
14+ * All known huge page size encodings are provided here. It is the
15+ * responsibility of the application to know which sizes are supported on
16+ * the running system. See mmap(2) man page for details.
17+ */
18+#define MFD_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
19+#define MFD_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
20+
21+#define MFD_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
22+#define MFD_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
23+#define MFD_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
24+#define MFD_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
25+#define MFD_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
26+#define MFD_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
27+#define MFD_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
28+#define MFD_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
29+#define MFD_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
30+#define MFD_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
731
832 #endif /* _UAPI_LINUX_MEMFD_H */
include/uapi/linux/mman.h+22−0
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #define _UAPI_LINUX_MMAN_H
33
44 #include <asm/mman.h>
5+#include <asm-generic/hugetlb_encode.h>
56
67 #define MREMAP_MAYMOVE 1
78 #define MREMAP_FIXED 2
@@ -10,4 +11,25 @@ · 2 unmodified lines
1011 #define OVERCOMMIT_ALWAYS 1
1112 #define OVERCOMMIT_NEVER 2
1213
14+/*
15+ * Huge page size encoding when MAP_HUGETLB is specified, and a huge page
16+ * size other than the default is desired. See hugetlb_encode.h.
17+ * All known huge page size encodings are provided here. It is the
18+ * responsibility of the application to know which sizes are supported on
19+ * the running system. See mmap(2) man page for details.
20+ */
21+#define MAP_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
22+#define MAP_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
23+
24+#define MAP_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
25+#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
26+#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
27+#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
28+#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
29+#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
30+#define MAP_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
31+#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
32+#define MAP_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
33+#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
34+
1335 #endif /* _UAPI_LINUX_MMAN_H */
include/uapi/linux/ndctl.h+0−37
@@ -145,43 +145,6 @@ struct nd_cmd_clear_error { · 144 unmodified lines
145145 __u64 cleared;
146146 } __packed;
147147
148−struct nd_cmd_trans_spa {
149− __u64 spa;
150− __u32 status;
151− __u8 flags;
152− __u8 _reserved[3];
153− __u64 trans_length;
154− __u32 num_nvdimms;
155− struct nd_nvdimm_device {
156− __u32 nfit_device_handle;
157− __u32 _reserved;
158− __u64 dpa;
159− } __packed devices[0];
160−
161−} __packed;
162−
163−struct nd_cmd_ars_err_inj {
164− __u64 err_inj_spa_range_base;
165− __u64 err_inj_spa_range_length;
166− __u8 err_inj_options;
167− __u32 status;
168−} __packed;
169−
170−struct nd_cmd_ars_err_inj_clr {
171− __u64 err_inj_clr_spa_range_base;
172− __u64 err_inj_clr_spa_range_length;
173− __u32 status;
174−} __packed;
175−
176−struct nd_cmd_ars_err_inj_stat {
177− __u32 status;
178− __u32 inj_err_rec_count;
179− struct nd_error_stat_query_record {
180− __u64 err_inj_stat_spa_range_base;
181− __u64 err_inj_stat_spa_range_length;
182− } __packed record[0];
183−} __packed;
184−
185148 enum {
186149 ND_CMD_IMPLEMENTED = 0,
187150
include/uapi/linux/netfilter/nf_tables.h+14−6
@@ -1,10 +1,11 @@
11 #ifndef _LINUX_NF_TABLES_H
22 #define _LINUX_NF_TABLES_H
33
4−#define NFT_TABLE_MAXNAMELEN 32
5−#define NFT_CHAIN_MAXNAMELEN 32
6−#define NFT_SET_MAXNAMELEN 32
7−#define NFT_OBJ_MAXNAMELEN 32
4+#define NFT_NAME_MAXLEN 256
5+#define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN
6+#define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN
7+#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
8+#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
89 #define NFT_USERDATA_MAXLEN 256
910
1011 /**
@@ -731,7 +732,8 @@ enum nft_exthdr_op { · 720 unmodified lines
731732 * @NFTA_EXTHDR_OFFSET: extension header offset (NLA_U32)
732733 * @NFTA_EXTHDR_LEN: extension header length (NLA_U32)
733734 * @NFTA_EXTHDR_FLAGS: extension header flags (NLA_U32)
734− * @NFTA_EXTHDR_OP: option match type (NLA_U8)
735+ * @NFTA_EXTHDR_OP: option match type (NLA_U32)
736+ * @NFTA_EXTHDR_SREG: option match type (NLA_U32)
735737 */
736738 enum nft_exthdr_attributes {
737739 NFTA_EXTHDR_UNSPEC,
@@ -741,6 +743,7 @@ enum nft_exthdr_attributes { · 3 unmodified lines
741743 NFTA_EXTHDR_LEN,
742744 NFTA_EXTHDR_FLAGS,
743745 NFTA_EXTHDR_OP,
746+ NFTA_EXTHDR_SREG,
744747 __NFTA_EXTHDR_MAX
745748 };
746749 #define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
@@ -808,11 +811,13 @@ enum nft_meta_keys { · 61 unmodified lines
808811 * @NFT_RT_CLASSID: realm value of packet's route (skb->dst->tclassid)
809812 * @NFT_RT_NEXTHOP4: routing nexthop for IPv4
810813 * @NFT_RT_NEXTHOP6: routing nexthop for IPv6
814+ * @NFT_RT_TCPMSS: fetch current path tcp mss
811815 */
812816 enum nft_rt_keys {
813817 NFT_RT_CLASSID,
814818 NFT_RT_NEXTHOP4,
815819 NFT_RT_NEXTHOP6,
820+ NFT_RT_TCPMSS,
816821 };
817822
818823 /**
@@ -1221,6 +1226,8 @@ enum nft_objref_attributes { · 402 unmodified lines
12211226 enum nft_gen_attributes {
12221227 NFTA_GEN_UNSPEC,
12231228 NFTA_GEN_ID,
1229+ NFTA_GEN_PROC_PID,
1230+ NFTA_GEN_PROC_NAME,
12241231 __NFTA_GEN_MAX
12251232 };
12261233 #define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
@@ -1275,7 +1282,8 @@ enum nft_ct_helper_attributes { · 48 unmodified lines
12751282 #define NFT_OBJECT_COUNTER 1
12761283 #define NFT_OBJECT_QUOTA 2
12771284 #define NFT_OBJECT_CT_HELPER 3
1278−#define __NFT_OBJECT_MAX 4
1285+#define NFT_OBJECT_LIMIT 4
1286+#define __NFT_OBJECT_MAX 5
12791287 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
12801288
12811289 /**
include/uapi/linux/netfilter/xt_hashlimit.h+30−6
@@ -19,12 +19,13 @@ · 18 unmodified lines
1919 struct xt_hashlimit_htable;
2020
2121 enum {
22− XT_HASHLIMIT_HASH_DIP = 1 << 0,
23− XT_HASHLIMIT_HASH_DPT = 1 << 1,
24− XT_HASHLIMIT_HASH_SIP = 1 << 2,
25− XT_HASHLIMIT_HASH_SPT = 1 << 3,
26− XT_HASHLIMIT_INVERT = 1 << 4,
27− XT_HASHLIMIT_BYTES = 1 << 5,
22+ XT_HASHLIMIT_HASH_DIP = 1 << 0,
23+ XT_HASHLIMIT_HASH_DPT = 1 << 1,
24+ XT_HASHLIMIT_HASH_SIP = 1 << 2,
25+ XT_HASHLIMIT_HASH_SPT = 1 << 3,
26+ XT_HASHLIMIT_INVERT = 1 << 4,
27+ XT_HASHLIMIT_BYTES = 1 << 5,
28+ XT_HASHLIMIT_RATE_MATCH = 1 << 6,
2829 };
2930
3031 struct hashlimit_cfg {
@@ -79,6 +80,21 @@ struct hashlimit_cfg2 { · 48 unmodified lines
7980 __u8 srcmask, dstmask;
8081 };
8182
83+struct hashlimit_cfg3 {
84+ __u64 avg; /* Average secs between packets * scale */
85+ __u64 burst; /* Period multiplier for upper limit. */
86+ __u32 mode; /* bitmask of XT_HASHLIMIT_HASH_* */
87+
88+ /* user specified */
89+ __u32 size; /* how many buckets */
90+ __u32 max; /* max number of entries */
91+ __u32 gc_interval; /* gc interval */
92+ __u32 expire; /* when do entries expire? */
93+
94+ __u32 interval;
95+ __u8 srcmask, dstmask;
96+};
97+
8298 struct xt_hashlimit_mtinfo1 {
8399 char name[IFNAMSIZ];
84100 struct hashlimit_cfg1 cfg;
@@ -95,4 +111,12 @@ struct xt_hashlimit_mtinfo2 { · 10 unmodified lines
95111 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
96112 };
97113
114+struct xt_hashlimit_mtinfo3 {
115+ char name[NAME_MAX];
116+ struct hashlimit_cfg3 cfg;
117+
118+ /* Used internally by the kernel */
119+ struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
120+};
121+
98122 #endif /* _UAPI_XT_HASHLIMIT_H */
include/uapi/linux/netlink.h+20−0
@@ -69,6 +69,9 @@ struct nlmsghdr { · 68 unmodified lines
6969 #define NLM_F_CREATE 0x400 /* Create, if it does not exist */
7070 #define NLM_F_APPEND 0x800 /* Add to end of list */
7171
72+/* Modifiers to DELETE request */
73+#define NLM_F_NONREC 0x100 /* Do not delete recursively */
74+
7275 /* Flags for ACK message */
7376 #define NLM_F_CAPPED 0x100 /* request was capped */
7477 #define NLM_F_ACK_TLVS 0x200 /* extended ACK TVLs were included */
@@ -226,5 +229,22 @@ struct nlattr { · 151 unmodified lines
226229 #define NLA_ALIGN(len) (((len) + NLA_ALIGNTO - 1) & ~(NLA_ALIGNTO - 1))
227230 #define NLA_HDRLEN ((int) NLA_ALIGN(sizeof(struct nlattr)))
228231
232+/* Generic 32 bitflags attribute content sent to the kernel.
233+ *
234+ * The value is a bitmap that defines the values being set
235+ * The selector is a bitmask that defines which value is legit
236+ *
237+ * Examples:
238+ * value = 0x0, and selector = 0x1
239+ * implies we are selecting bit 1 and we want to set its value to 0.
240+ *
241+ * value = 0x2, and selector = 0x2
242+ * implies we are selecting bit 2 and we want to set its value to 1.
243+ *
244+ */
245+struct nla_bitfield32 {
246+ __u32 value;
247+ __u32 selector;
248+};
229249
230250 #endif /* _UAPI__LINUX_NETLINK_H */
include/uapi/linux/pci_regs.h+24−18
@@ -513,6 +513,7 @@ · 512 unmodified lines
513513 #define PCI_EXP_DEVSTA_URD 0x0008 /* Unsupported Request Detected */
514514 #define PCI_EXP_DEVSTA_AUXPD 0x0010 /* AUX Power Detected */
515515 #define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */
516+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */
516517 #define PCI_EXP_LNKCAP 12 /* Link Capabilities */
517518 #define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
518519 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
@@ -556,7 +557,7 @@ · 37 unmodified lines
556557 #define PCI_EXP_LNKSTA_DLLLA 0x2000 /* Data Link Layer Link Active */
557558 #define PCI_EXP_LNKSTA_LBMS 0x4000 /* Link Bandwidth Management Status */
558559 #define PCI_EXP_LNKSTA_LABS 0x8000 /* Link Autonomous Bandwidth Status */
559−#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints end here */
560+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20 /* v1 endpoints with link end here */
560561 #define PCI_EXP_SLTCAP 20 /* Slot Capabilities */
561562 #define PCI_EXP_SLTCAP_ABP 0x00000001 /* Attention Button Present */
562563 #define PCI_EXP_SLTCAP_PCP 0x00000002 /* Power Controller Present */
@@ -639,7 +640,7 @@ · 76 unmodified lines
639640 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000 /* Enable OBFF Message type B */
640641 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000 /* OBFF using WAKE# signaling */
641642 #define PCI_EXP_DEVSTA2 42 /* Device Status 2 */
642−#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints end here */
643+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44 /* v2 endpoints without link end here */
643644 #define PCI_EXP_LNKCAP2 44 /* Link Capabilities 2 */
644645 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002 /* Supported Speed 2.5GT/s */
645646 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004 /* Supported Speed 5.0GT/s */
@@ -647,6 +648,7 @@ · 1 unmodified line
647648 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100 /* Crosslink supported */
648649 #define PCI_EXP_LNKCTL2 48 /* Link Control 2 */
649650 #define PCI_EXP_LNKSTA2 50 /* Link Status 2 */
651+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52 /* v2 endpoints with link end here */
650652 #define PCI_EXP_SLTCAP2 52 /* Slot Capabilities 2 */
651653 #define PCI_EXP_SLTCTL2 56 /* Slot Control 2 */
652654 #define PCI_EXP_SLTSTA2 58 /* Slot Status 2 */
@@ -733,23 +735,17 @@ · 80 unmodified lines
733735 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
734736 #define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */
735737 #define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */
736−/* Correctable Err Reporting Enable */
737−#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
738−/* Non-fatal Err Reporting Enable */
739−#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
740−/* Fatal Err Reporting Enable */
741−#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
738+#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
739+#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002 /* Non-Fatal Err Reporting Enable */
740+#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004 /* Fatal Err Reporting Enable */
742741 #define PCI_ERR_ROOT_STATUS 48
743−#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
744−/* Multi ERR_COR Received */
745−#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
746−/* ERR_FATAL/NONFATAL Received */
747−#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
748−/* Multi ERR_FATAL/NONFATAL Received */
749−#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
750−#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
751−#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
752−#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
742+#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
743+#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002 /* Multiple ERR_COR */
744+#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004 /* ERR_FATAL/NONFATAL */
745+#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008 /* Multiple FATAL/NONFATAL */
746+#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First UNC is Fatal */
747+#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
748+#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
753749 #define PCI_ERR_ROOT_ERR_SRC 52 /* Error Source Identification */
754750
755751 /* Virtual Channel */
@@ -967,6 +963,7 @@ · 211 unmodified lines
967963 #define PCI_EXP_DPC_CAP_RP_EXT 0x20 /* Root Port Extensions for DPC */
968964 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x40 /* Poisoned TLP Egress Blocking Supported */
969965 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x80 /* Software Triggering Supported */
966+#define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0xF00 /* RP PIO log size */
970967 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000 /* ERR_COR signal on DL_Active supported */
971968
972969 #define PCI_EXP_DPC_CTL 6 /* DPC control */
@@ -980,6 +977,15 @@ · 7 unmodified lines
980977
981978 #define PCI_EXP_DPC_SOURCE_ID 10 /* DPC Source Identifier */
982979
980+#define PCI_EXP_DPC_RP_PIO_STATUS 0x0C /* RP PIO Status */
981+#define PCI_EXP_DPC_RP_PIO_MASK 0x10 /* RP PIO MASK */
982+#define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14 /* RP PIO Severity */
983+#define PCI_EXP_DPC_RP_PIO_SYSERROR 0x18 /* RP PIO SysError */
984+#define PCI_EXP_DPC_RP_PIO_EXCEPTION 0x1C /* RP PIO Exception */
985+#define PCI_EXP_DPC_RP_PIO_HEADER_LOG 0x20 /* RP PIO Header Log */
986+#define PCI_EXP_DPC_RP_PIO_IMPSPEC_LOG 0x30 /* RP PIO ImpSpec Log */
987+#define PCI_EXP_DPC_RP_PIO_TLPPREFIX_LOG 0x34 /* RP PIO TLP Prefix Log */
988+
983989 /* Precision Time Measurement */
984990 #define PCI_PTM_CAP 0x04 /* PTM Capability */
985991 #define PCI_PTM_CAP_REQ 0x00000001 /* Requester capable */
include/uapi/linux/perf_event.h+57−4
@@ -139,8 +139,9 @@ enum perf_event_sample_format { · 138 unmodified lines
139139 PERF_SAMPLE_IDENTIFIER = 1U << 16,
140140 PERF_SAMPLE_TRANSACTION = 1U << 17,
141141 PERF_SAMPLE_REGS_INTR = 1U << 18,
142+ PERF_SAMPLE_PHYS_ADDR = 1U << 19,
142143
143− PERF_SAMPLE_MAX = 1U << 19, /* non-ABI */
144+ PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
144145 };
145146
146147 /*
@@ -174,6 +175,8 @@ enum perf_branch_sample_type_shift { · 27 unmodified lines
174175 PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 14, /* no flags */
175176 PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 15, /* no cycles */
176177
178+ PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 16, /* save branch type */
179+
177180 PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
178181 };
179182
@@ -198,9 +201,30 @@ enum perf_branch_sample_type { · 18 unmodified lines
198201 PERF_SAMPLE_BRANCH_NO_FLAGS = 1U << PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT,
199202 PERF_SAMPLE_BRANCH_NO_CYCLES = 1U << PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT,
200203
204+ PERF_SAMPLE_BRANCH_TYPE_SAVE =
205+ 1U << PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT,
206+
201207 PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
202208 };
203209
210+/*
211+ * Common flow change classification
212+ */
213+enum {
214+ PERF_BR_UNKNOWN = 0, /* unknown */
215+ PERF_BR_COND = 1, /* conditional */
216+ PERF_BR_UNCOND = 2, /* unconditional */
217+ PERF_BR_IND = 3, /* indirect */
218+ PERF_BR_CALL = 4, /* function call */
219+ PERF_BR_IND_CALL = 5, /* indirect function call */
220+ PERF_BR_RET = 6, /* function return */
221+ PERF_BR_SYSCALL = 7, /* syscall */
222+ PERF_BR_SYSRET = 8, /* syscall return */
223+ PERF_BR_COND_CALL = 9, /* conditional function call */
224+ PERF_BR_COND_RET = 10, /* conditional function return */
225+ PERF_BR_MAX,
226+};
227+
204228 #define PERF_SAMPLE_BRANCH_PLM_ALL \
205229 (PERF_SAMPLE_BRANCH_USER|\
206230 PERF_SAMPLE_BRANCH_KERNEL|\
@@ -791,6 +815,7 @@ enum perf_event_type { · 584 unmodified lines
791815 * { u64 transaction; } && PERF_SAMPLE_TRANSACTION
792816 * { u64 abi; # enum perf_sample_regs_abi
793817 * u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
818+ * { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
794819 * };
795820 */
796821 PERF_RECORD_SAMPLE = 9,
@@ -931,14 +956,20 @@ union perf_mem_data_src { · 134 unmodified lines
931956 mem_snoop:5, /* snoop mode */
932957 mem_lock:2, /* lock instr */
933958 mem_dtlb:7, /* tlb access */
934− mem_rsvd:31;
959+ mem_lvl_num:4, /* memory hierarchy level number */
960+ mem_remote:1, /* remote */
961+ mem_snoopx:2, /* snoop mode, ext */
962+ mem_rsvd:24;
935963 };
936964 };
937965 #elif defined(__BIG_ENDIAN_BITFIELD)
938966 union perf_mem_data_src {
939967 __u64 val;
940968 struct {
941− __u64 mem_rsvd:31,
969+ __u64 mem_rsvd:24,
970+ mem_snoopx:2, /* snoop mode, ext */
971+ mem_remote:1, /* remote */
972+ mem_lvl_num:4, /* memory hierarchy level number */
942973 mem_dtlb:7, /* tlb access */
943974 mem_lock:2, /* lock instr */
944975 mem_snoop:5, /* snoop mode */
@@ -975,6 +1006,22 @@ union perf_mem_data_src { · 30 unmodified lines
9751006 #define PERF_MEM_LVL_UNC 0x2000 /* Uncached memory */
9761007 #define PERF_MEM_LVL_SHIFT 5
9771008
1009+#define PERF_MEM_REMOTE_REMOTE 0x01 /* Remote */
1010+#define PERF_MEM_REMOTE_SHIFT 37
1011+
1012+#define PERF_MEM_LVLNUM_L1 0x01 /* L1 */
1013+#define PERF_MEM_LVLNUM_L2 0x02 /* L2 */
1014+#define PERF_MEM_LVLNUM_L3 0x03 /* L3 */
1015+#define PERF_MEM_LVLNUM_L4 0x04 /* L4 */
1016+/* 5-0xa available */
1017+#define PERF_MEM_LVLNUM_ANY_CACHE 0x0b /* Any cache */
1018+#define PERF_MEM_LVLNUM_LFB 0x0c /* LFB */
1019+#define PERF_MEM_LVLNUM_RAM 0x0d /* RAM */
1020+#define PERF_MEM_LVLNUM_PMEM 0x0e /* PMEM */
1021+#define PERF_MEM_LVLNUM_NA 0x0f /* N/A */
1022+
1023+#define PERF_MEM_LVLNUM_SHIFT 33
1024+
9781025 /* snoop mode */
9791026 #define PERF_MEM_SNOOP_NA 0x01 /* not available */
9801027 #define PERF_MEM_SNOOP_NONE 0x02 /* no snoop */
@@ -983,6 +1030,10 @@ union perf_mem_data_src { · 2 unmodified lines
9831030 #define PERF_MEM_SNOOP_HITM 0x10 /* snoop hit modified */
9841031 #define PERF_MEM_SNOOP_SHIFT 19
9851032
1033+#define PERF_MEM_SNOOPX_FWD 0x01 /* forward */
1034+/* 1 free */
1035+#define PERF_MEM_SNOOPX_SHIFT 37
1036+
9861037 /* locked instruction */
9871038 #define PERF_MEM_LOCK_NA 0x01 /* not available */
9881039 #define PERF_MEM_LOCK_LOCKED 0x02 /* locked transaction */
@@ -1015,6 +1066,7 @@ union perf_mem_data_src { · 26 unmodified lines
10151066 * in_tx: running in a hardware transaction
10161067 * abort: aborting a hardware transaction
10171068 * cycles: cycles from last branch (or 0 if not supported)
1069+ * type: branch type
10181070 */
10191071 struct perf_branch_entry {
10201072 __u64 from;
@@ -1024,7 +1076,8 @@ struct perf_branch_entry { · 3 unmodified lines
10241076 in_tx:1, /* in transaction */
10251077 abort:1, /* transaction abort */
10261078 cycles:16, /* cycle count to last branch */
1027− reserved:44;
1079+ type:4, /* branch type */
1080+ reserved:40;
10281081 };
10291082
10301083 #endif /* _UAPI_LINUX_PERF_EVENT_H */
include/uapi/linux/pps.h+2−2
@@ -95,8 +95,8 @@ struct pps_kparams { · 94 unmodified lines
9595 #define PPS_CAPTURECLEAR 0x02 /* capture clear events */
9696 #define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
9797
98−#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
99−#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
98+#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert event */
99+#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear event */
100100
101101 #define PPS_CANWAIT 0x100 /* can we wait for an event? */
102102 #define PPS_CANPOLL 0x200 /* bit reserved for future use */
include/uapi/linux/quota.h+0−1
@@ -33,7 +33,6 @@ · 32 unmodified lines
3333 #ifndef _UAPI_LINUX_QUOTA_
3434 #define _UAPI_LINUX_QUOTA_
3535
36−#include <linux/errno.h>
3736 #include <linux/types.h>
3837
3938 #define __DQUOT_VERSION__ "dquot_6.6.0"
include/uapi/linux/raid/md_p.h+3−1
@@ -324,9 +324,10 @@ struct mdp_superblock_1 { · 323 unmodified lines
324324 #define MD_FEATURE_RECOVERY_BITMAP 128 /* recovery that is happening
325325 * is guided by bitmap.
326326 */
327−#define MD_FEATURE_CLUSTERED 256 /* clustered MD */
327+#define MD_FEATURE_CLUSTERED 256 /* clustered MD */
328328 #define MD_FEATURE_JOURNAL 512 /* support write cache */
329329 #define MD_FEATURE_PPL 1024 /* support PPL */
330+#define MD_FEATURE_MULTIPLE_PPLS 2048 /* support for multiple PPLs */
330331 #define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET \
331332 |MD_FEATURE_RECOVERY_OFFSET \
332333 |MD_FEATURE_RESHAPE_ACTIVE \
@@ -338,6 +339,7 @@ struct mdp_superblock_1 { · 5 unmodified lines
338339 |MD_FEATURE_CLUSTERED \
339340 |MD_FEATURE_JOURNAL \
340341 |MD_FEATURE_PPL \
342+ |MD_FEATURE_MULTIPLE_PPLS \
341343 )
342344
343345 struct r5l_payload_header {
include/uapi/linux/rtnetlink.h+21−2
@@ -683,10 +683,29 @@ struct tcamsg { · 682 unmodified lines
683683 unsigned char tca__pad1;
684684 unsigned short tca__pad2;
685685 };
686+
687+enum {
688+ TCA_ROOT_UNSPEC,
689+ TCA_ROOT_TAB,
690+#define TCA_ACT_TAB TCA_ROOT_TAB
691+#define TCAA_MAX TCA_ROOT_TAB
692+ TCA_ROOT_FLAGS,
693+ TCA_ROOT_COUNT,
694+ TCA_ROOT_TIME_DELTA, /* in msecs */
695+ __TCA_ROOT_MAX,
696+#define TCA_ROOT_MAX (__TCA_ROOT_MAX - 1)
697+};
698+
686699 #define TA_RTA(r) ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct tcamsg))))
687700 #define TA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct tcamsg))
688−#define TCA_ACT_TAB 1 /* attr type must be >=1 */
689−#define TCAA_MAX 1
701+/* tcamsg flags stored in attribute TCA_ROOT_FLAGS
702+ *
703+ * TCA_FLAG_LARGE_DUMP_ON user->kernel to request for larger than TCA_ACT_MAX_PRIO
704+ * actions in a dump. All dump responses will contain the number of actions
705+ * being dumped stored in for user app's consumption in TCA_ROOT_COUNT
706+ *
707+ */
708+#define TCA_FLAG_LARGE_DUMP_ON (1 << 0)
690709
691710 /* New extended info filters for IFLA_EXT_MASK */
692711 #define RTEXT_FILTER_VF (1 << 0)
include/uapi/linux/rxrpc.h+124−0
@@ -0,0 +1,124 @@
1+/* Types and definitions for AF_RXRPC.
2+ *
3+ * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
4+ * Written by David Howells (dhowells@redhat.com)
5+ *
6+ * This program is free software; you can redistribute it and/or
7+ * modify it under the terms of the GNU General Public Licence
8+ * as published by the Free Software Foundation; either version
9+ * 2 of the Licence, or (at your option) any later version.
10+ */
11+
12+#ifndef _UAPI_LINUX_RXRPC_H
13+#define _UAPI_LINUX_RXRPC_H
14+
15+#include <linux/types.h>
16+#include <linux/in.h>
17+#include <linux/in6.h>
18+
19+/*
20+ * RxRPC socket address
21+ */
22+struct sockaddr_rxrpc {
23+ sa_family_t srx_family; /* address family */
24+ u16 srx_service; /* service desired */
25+ u16 transport_type; /* type of transport socket (SOCK_DGRAM) */
26+ u16 transport_len; /* length of transport address */
27+ union {
28+ sa_family_t family; /* transport address family */
29+ struct sockaddr_in sin; /* IPv4 transport address */
30+ struct sockaddr_in6 sin6; /* IPv6 transport address */
31+ } transport;
32+};
33+
34+/*
35+ * RxRPC socket options
36+ */
37+#define RXRPC_SECURITY_KEY 1 /* [clnt] set client security key */
38+#define RXRPC_SECURITY_KEYRING 2 /* [srvr] set ring of server security keys */
39+#define RXRPC_EXCLUSIVE_CONNECTION 3 /* Deprecated; use RXRPC_EXCLUSIVE_CALL instead */
40+#define RXRPC_MIN_SECURITY_LEVEL 4 /* minimum security level */
41+#define RXRPC_UPGRADEABLE_SERVICE 5 /* Upgrade service[0] -> service[1] */
42+#define RXRPC_SUPPORTED_CMSG 6 /* Get highest supported control message type */
43+
44+/*
45+ * RxRPC control messages
46+ * - If neither abort or accept are specified, the message is a data message.
47+ * - terminal messages mean that a user call ID tag can be recycled
48+ * - s/r/- indicate whether these are applicable to sendmsg() and/or recvmsg()
49+ */
50+enum rxrpc_cmsg_type {
51+ RXRPC_USER_CALL_ID = 1, /* sr: user call ID specifier */
52+ RXRPC_ABORT = 2, /* sr: abort request / notification [terminal] */
53+ RXRPC_ACK = 3, /* -r: [Service] RPC op final ACK received [terminal] */
54+ RXRPC_NET_ERROR = 5, /* -r: network error received [terminal] */
55+ RXRPC_BUSY = 6, /* -r: server busy received [terminal] */
56+ RXRPC_LOCAL_ERROR = 7, /* -r: local error generated [terminal] */
57+ RXRPC_NEW_CALL = 8, /* -r: [Service] new incoming call notification */
58+ RXRPC_ACCEPT = 9, /* s-: [Service] accept request */
59+ RXRPC_EXCLUSIVE_CALL = 10, /* s-: Call should be on exclusive connection */
60+ RXRPC_UPGRADE_SERVICE = 11, /* s-: Request service upgrade for client call */
61+ RXRPC_TX_LENGTH = 12, /* s-: Total length of Tx data */
62+ RXRPC__SUPPORTED
63+};
64+
65+/*
66+ * RxRPC security levels
67+ */
68+#define RXRPC_SECURITY_PLAIN 0 /* plain secure-checksummed packets only */
69+#define RXRPC_SECURITY_AUTH 1 /* authenticated packets */
70+#define RXRPC_SECURITY_ENCRYPT 2 /* encrypted packets */
71+
72+/*
73+ * RxRPC security indices
74+ */
75+#define RXRPC_SECURITY_NONE 0 /* no security protocol */
76+#define RXRPC_SECURITY_RXKAD 2 /* kaserver or kerberos 4 */
77+#define RXRPC_SECURITY_RXGK 4 /* gssapi-based */
78+#define RXRPC_SECURITY_RXK5 5 /* kerberos 5 */
79+
80+/*
81+ * RxRPC-level abort codes
82+ */
83+#define RX_CALL_DEAD -1 /* call/conn has been inactive and is shut down */
84+#define RX_INVALID_OPERATION -2 /* invalid operation requested / attempted */
85+#define RX_CALL_TIMEOUT -3 /* call timeout exceeded */
86+#define RX_EOF -4 /* unexpected end of data on read op */
87+#define RX_PROTOCOL_ERROR -5 /* low-level protocol error */
88+#define RX_USER_ABORT -6 /* generic user abort */
89+#define RX_ADDRINUSE -7 /* UDP port in use */
90+#define RX_DEBUGI_BADTYPE -8 /* bad debugging packet type */
91+
92+/*
93+ * (un)marshalling abort codes (rxgen)
94+ */
95+#define RXGEN_CC_MARSHAL -450
96+#define RXGEN_CC_UNMARSHAL -451
97+#define RXGEN_SS_MARSHAL -452
98+#define RXGEN_SS_UNMARSHAL -453
99+#define RXGEN_DECODE -454
100+#define RXGEN_OPCODE -455
101+#define RXGEN_SS_XDRFREE -456
102+#define RXGEN_CC_XDRFREE -457
103+
104+/*
105+ * Rx kerberos security abort codes
106+ * - unfortunately we have no generalised security abort codes to say things
107+ * like "unsupported security", so we have to use these instead and hope the
108+ * other side understands
109+ */
110+#define RXKADINCONSISTENCY 19270400 /* security module structure inconsistent */
111+#define RXKADPACKETSHORT 19270401 /* packet too short for security challenge */
112+#define RXKADLEVELFAIL 19270402 /* security level negotiation failed */
113+#define RXKADTICKETLEN 19270403 /* ticket length too short or too long */
114+#define RXKADOUTOFSEQUENCE 19270404 /* packet had bad sequence number */
115+#define RXKADNOAUTH 19270405 /* caller not authorised */
116+#define RXKADBADKEY 19270406 /* illegal key: bad parity or weak */
117+#define RXKADBADTICKET 19270407 /* security object was passed a bad ticket */
118+#define RXKADUNKNOWNKEY 19270408 /* ticket contained unknown key version number */
119+#define RXKADEXPIRED 19270409 /* authentication expired */
120+#define RXKADSEALEDINCON 19270410 /* sealed data inconsistent */
121+#define RXKADDATALEN 19270411 /* user data too long */
122+#define RXKADILLEGALLEVEL 19270412 /* caller not authorised to use encrypted conns */
123+
124+#endif /* _UAPI_LINUX_RXRPC_H */
include/uapi/linux/seccomp.h+15−8
@@ -11,27 +11,34 @@ · 10 unmodified lines
1111 #define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */
1212
1313 /* Valid operations for seccomp syscall. */
14−#define SECCOMP_SET_MODE_STRICT 0
15−#define SECCOMP_SET_MODE_FILTER 1
14+#define SECCOMP_SET_MODE_STRICT 0
15+#define SECCOMP_SET_MODE_FILTER 1
16+#define SECCOMP_GET_ACTION_AVAIL 2
1617
1718 /* Valid flags for SECCOMP_SET_MODE_FILTER */
1819 #define SECCOMP_FILTER_FLAG_TSYNC 1
20+#define SECCOMP_FILTER_FLAG_LOG 2
1921
2022 /*
2123 * All BPF programs must return a 32-bit value.
2224 * The bottom 16-bits are for optional return data.
23− * The upper 16-bits are ordered from least permissive values to most.
25+ * The upper 16-bits are ordered from least permissive values to most,
26+ * as a signed value (so 0x8000000 is negative).
2427 *
2528 * The ordering ensures that a min_t() over composed return values always
2629 * selects the least permissive choice.
2730 */
28−#define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */
29−#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */
30−#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */
31−#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */
32−#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */
31+#define SECCOMP_RET_KILL_PROCESS 0x80000000U /* kill the process */
32+#define SECCOMP_RET_KILL_THREAD 0x00000000U /* kill the thread */
33+#define SECCOMP_RET_KILL SECCOMP_RET_KILL_THREAD
34+#define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */
35+#define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */
36+#define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */
37+#define SECCOMP_RET_LOG 0x7ffc0000U /* allow after logging */
38+#define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */
3339
3440 /* Masks for the return value sections. */
41+#define SECCOMP_RET_ACTION_FULL 0xffff0000U
3542 #define SECCOMP_RET_ACTION 0x7fff0000U
3643 #define SECCOMP_RET_DATA 0x0000ffffU
3744
include/uapi/linux/seg6_iptunnel.h+14−4
@@ -33,16 +33,26 @@ struct seg6_iptunnel_encap { · 32 unmodified lines
3333 enum {
3434 SEG6_IPTUN_MODE_INLINE,
3535 SEG6_IPTUN_MODE_ENCAP,
36+ SEG6_IPTUN_MODE_L2ENCAP,
3637 };
3738
3839 #ifdef __KERNEL__
3940
4041 static inline size_t seg6_lwt_headroom(struct seg6_iptunnel_encap *tuninfo)
4142 {
42− int encap = (tuninfo->mode == SEG6_IPTUN_MODE_ENCAP);
43−
44− return ((tuninfo->srh->hdrlen + 1) << 3) +
45− (encap * sizeof(struct ipv6hdr));
43+ int head = 0;
44+
45+ switch (tuninfo->mode) {
46+ case SEG6_IPTUN_MODE_INLINE:
47+ break;
48+ case SEG6_IPTUN_MODE_ENCAP:
49+ head = sizeof(struct ipv6hdr);
50+ break;
51+ case SEG6_IPTUN_MODE_L2ENCAP:
52+ return 0;
53+ }
54+
55+ return ((tuninfo->srh->hdrlen + 1) << 3) + head;
4656 }
4757
4858 #endif
include/uapi/linux/seg6_local.h+68−0
@@ -0,0 +1,68 @@
1+/*
2+ * SR-IPv6 implementation
3+ *
4+ * Author:
5+ * David Lebrun <david.lebrun@uclouvain.be>
6+ *
7+ *
8+ * This program is free software; you can redistribute it and/or
9+ * modify it under the terms of the GNU General Public License
10+ * as published by the Free Software Foundation; either version
11+ * 2 of the License, or (at your option) any later version.
12+ */
13+
14+#ifndef _UAPI_LINUX_SEG6_LOCAL_H
15+#define _UAPI_LINUX_SEG6_LOCAL_H
16+
17+#include <linux/seg6.h>
18+
19+enum {
20+ SEG6_LOCAL_UNSPEC,
21+ SEG6_LOCAL_ACTION,
22+ SEG6_LOCAL_SRH,
23+ SEG6_LOCAL_TABLE,
24+ SEG6_LOCAL_NH4,
25+ SEG6_LOCAL_NH6,
26+ SEG6_LOCAL_IIF,
27+ SEG6_LOCAL_OIF,
28+ __SEG6_LOCAL_MAX,
29+};
30+#define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
31+
32+enum {
33+ SEG6_LOCAL_ACTION_UNSPEC = 0,
34+ /* node segment */
35+ SEG6_LOCAL_ACTION_END = 1,
36+ /* adjacency segment (IPv6 cross-connect) */
37+ SEG6_LOCAL_ACTION_END_X = 2,
38+ /* lookup of next seg NH in table */
39+ SEG6_LOCAL_ACTION_END_T = 3,
40+ /* decap and L2 cross-connect */
41+ SEG6_LOCAL_ACTION_END_DX2 = 4,
42+ /* decap and IPv6 cross-connect */
43+ SEG6_LOCAL_ACTION_END_DX6 = 5,
44+ /* decap and IPv4 cross-connect */
45+ SEG6_LOCAL_ACTION_END_DX4 = 6,
46+ /* decap and lookup of DA in v6 table */
47+ SEG6_LOCAL_ACTION_END_DT6 = 7,
48+ /* decap and lookup of DA in v4 table */
49+ SEG6_LOCAL_ACTION_END_DT4 = 8,
50+ /* binding segment with insertion */
51+ SEG6_LOCAL_ACTION_END_B6 = 9,
52+ /* binding segment with encapsulation */
53+ SEG6_LOCAL_ACTION_END_B6_ENCAP = 10,
54+ /* binding segment with MPLS encap */
55+ SEG6_LOCAL_ACTION_END_BM = 11,
56+ /* lookup last seg in table */
57+ SEG6_LOCAL_ACTION_END_S = 12,
58+ /* forward to SR-unaware VNF with static proxy */
59+ SEG6_LOCAL_ACTION_END_AS = 13,
60+ /* forward to SR-unaware VNF with masquerading */
61+ SEG6_LOCAL_ACTION_END_AM = 14,
62+
63+ __SEG6_LOCAL_ACTION_MAX,
64+};
65+
66+#define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
67+
68+#endif
include/uapi/linux/serial_core.h+10−4
@@ -56,8 +56,6 @@ · 55 unmodified lines
5656 #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
5757 #define PORT_RT2880 29 /* Ralink RT2880 internal UART */
5858 #define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */
59−#define PORT_DA830 31 /* TI DA8xx/66AK2x */
60−#define PORT_MAX_8250 31 /* max port ID */
6159
6260 /*
6361 * ARM specific type numbers. These are not currently guaranteed
@@ -70,12 +68,17 @@ · 6 unmodified lines
7068 #define PORT_CLPS711X 33
7169 #define PORT_SA1100 34
7270 #define PORT_UART00 35
71+#define PORT_OWL 36
7372 #define PORT_21285 37
7473
7574 /* Sparc type numbers. */
7675 #define PORT_SUNZILOG 38
7776 #define PORT_SUNSAB 39
7877
78+/* Intel EG20 */
79+#define PORT_PCH_8LINE 44
80+#define PORT_PCH_2LINE 45
81+
7982 /* DEC */
8083 #define PORT_DZ 46
8184 #define PORT_ZS 47
@@ -205,8 +208,8 @@ · 123 unmodified lines
205208 /* MAX310X */
206209 #define PORT_MAX310X 94
207210
208−/* High Speed UART for Medfield */
209−#define PORT_MFD 95
211+/* TI DA8xx/66AK2x */
212+#define PORT_DA830 95
210213
211214 /* TI OMAP-UART */
212215 #define PORT_OMAP 96
@@ -271,4 +274,7 @@ · 58 unmodified lines
271274 /* MPS2 UART */
272275 #define PORT_MPS2UART 116
273276
277+/* MediaTek BTIF */
278+#define PORT_MTK_BTIF 117
279+
274280 #endif /* _UAPILINUX_SERIAL_CORE_H */
include/uapi/linux/shm.h+29−2
@@ -3,6 +3,7 @@ · 2 unmodified lines
33
44 #include <linux/ipc.h>
55 #include <linux/errno.h>
6+#include <asm-generic/hugetlb_encode.h>
67 #ifndef __KERNEL__
78 #include <unistd.h>
89 #endif
@@ -40,11 +41,37 @@ struct shmid_ds { · 31 unmodified lines
4041 /* Include the definition of shmid64_ds and shminfo64 */
4142 #include <asm/shmbuf.h>
4243
43−/* permission flag for shmget */
44+/*
45+ * shmget() shmflg values.
46+ */
47+/* The bottom nine bits are the same as open(2) mode flags */
4448 #define SHM_R 0400 /* or S_IRUGO from <linux/stat.h> */
4549 #define SHM_W 0200 /* or S_IWUGO from <linux/stat.h> */
50+/* Bits 9 & 10 are IPC_CREAT and IPC_EXCL */
51+#define SHM_HUGETLB 04000 /* segment will use huge TLB pages */
52+#define SHM_NORESERVE 010000 /* don't check for reservations */
53+
54+/*
55+ * Huge page size encoding when SHM_HUGETLB is specified, and a huge page
56+ * size other than the default is desired. See hugetlb_encode.h
57+ */
58+#define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
59+#define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
60+
61+#define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
62+#define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
63+#define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
64+#define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
65+#define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
66+#define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
67+#define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
68+#define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
69+#define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
70+#define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
4671
47−/* mode for attach */
72+/*
73+ * shmat() shmflg values
74+ */
4875 #define SHM_RDONLY 010000 /* read-only access */
4976 #define SHM_RND 020000 /* round attach address to SHMLBA boundary */
5077 #define SHM_REMAP 040000 /* take-over region on attach */
include/uapi/linux/snmp.h+0−7
@@ -184,12 +184,7 @@ enum · 183 unmodified lines
184184 LINUX_MIB_DELAYEDACKLOST, /* DelayedACKLost */
185185 LINUX_MIB_LISTENOVERFLOWS, /* ListenOverflows */
186186 LINUX_MIB_LISTENDROPS, /* ListenDrops */
187− LINUX_MIB_TCPPREQUEUED, /* TCPPrequeued */
188− LINUX_MIB_TCPDIRECTCOPYFROMBACKLOG, /* TCPDirectCopyFromBacklog */
189− LINUX_MIB_TCPDIRECTCOPYFROMPREQUEUE, /* TCPDirectCopyFromPrequeue */
190− LINUX_MIB_TCPPREQUEUEDROPPED, /* TCPPrequeueDropped */
191187 LINUX_MIB_TCPHPHITS, /* TCPHPHits */
192− LINUX_MIB_TCPHPHITSTOUSER, /* TCPHPHitsToUser */
193188 LINUX_MIB_TCPPUREACKS, /* TCPPureAcks */
194189 LINUX_MIB_TCPHPACKS, /* TCPHPAcks */
195190 LINUX_MIB_TCPRENORECOVERY, /* TCPRenoRecovery */
@@ -208,14 +203,12 @@ enum · 12 unmodified lines
208203 LINUX_MIB_TCPSACKFAILURES, /* TCPSackFailures */
209204 LINUX_MIB_TCPLOSSFAILURES, /* TCPLossFailures */
210205 LINUX_MIB_TCPFASTRETRANS, /* TCPFastRetrans */
211− LINUX_MIB_TCPFORWARDRETRANS, /* TCPForwardRetrans */
212206 LINUX_MIB_TCPSLOWSTARTRETRANS, /* TCPSlowStartRetrans */
213207 LINUX_MIB_TCPTIMEOUTS, /* TCPTimeouts */
214208 LINUX_MIB_TCPLOSSPROBES, /* TCPLossProbes */
215209 LINUX_MIB_TCPLOSSPROBERECOVERY, /* TCPLossProbeRecovery */
216210 LINUX_MIB_TCPRENORECOVERYFAIL, /* TCPRenoRecoveryFail */
217211 LINUX_MIB_TCPSACKRECOVERYFAIL, /* TCPSackRecoveryFail */
218− LINUX_MIB_TCPSCHEDULERFAILED, /* TCPSchedulerFailed */
219212 LINUX_MIB_TCPRCVCOLLAPSED, /* TCPRcvCollapsed */
220213 LINUX_MIB_TCPDSACKOLDSENT, /* TCPDSACKOldSent */
221214 LINUX_MIB_TCPDSACKOFOSENT, /* TCPDSACKOfoSent */
include/uapi/linux/tcp.h+17−0
@@ -231,6 +231,14 @@ enum { · 230 unmodified lines
231231 TCP_NLA_SNDBUF_LIMITED, /* Time (usec) limited by send buffer */
232232 TCP_NLA_DATA_SEGS_OUT, /* Data pkts sent including retransmission */
233233 TCP_NLA_TOTAL_RETRANS, /* Data pkts retransmitted */
234+ TCP_NLA_PACING_RATE, /* Pacing rate in bytes per second */
235+ TCP_NLA_DELIVERY_RATE, /* Delivery rate in bytes per second */
236+ TCP_NLA_SND_CWND, /* Sending congestion window */
237+ TCP_NLA_REORDERING, /* Reordering metric */
238+ TCP_NLA_MIN_RTT, /* minimum RTT */
239+ TCP_NLA_RECUR_RETRANS, /* Recurring retransmits for the current pkt */
240+ TCP_NLA_DELIVERY_RATE_APP_LMT, /* delivery rate application limited ? */
241+
234242 };
235243
236244 /* for TCP_MD5SIG socket option */
@@ -248,4 +256,13 @@ struct tcp_md5sig { · 11 unmodified lines
248256 __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* key (binary) */
249257 };
250258
259+/* INET_DIAG_MD5SIG */
260+struct tcp_diag_md5sig {
261+ __u8 tcpm_family;
262+ __u8 tcpm_prefixlen;
263+ __u16 tcpm_keylen;
264+ __be32 tcpm_addr[4];
265+ __u8 tcpm_key[TCP_MD5SIG_MAXKEYLEN];
266+};
267+
251268 #endif /* _UAPI_LINUX_TCP_H */
include/uapi/linux/tee.h+1−0
@@ -49,6 +49,7 @@ · 48 unmodified lines
4949 #define TEE_MAX_ARG_SIZE 1024
5050
5151 #define TEE_GEN_CAP_GP (1 << 0)/* GlobalPlatform compliant TEE */
52+#define TEE_GEN_CAP_PRIVILEGED (1 << 1)/* Privileged device (for supplicant) */
5253
5354 /*
5455 * TEE Implementation ID
include/uapi/linux/usb/charger.h+31−0
@@ -0,0 +1,31 @@
1+/*
2+ * This file defines the USB charger type and state that are needed for
3+ * USB device APIs.
4+ */
5+
6+#ifndef _UAPI__LINUX_USB_CHARGER_H
7+#define _UAPI__LINUX_USB_CHARGER_H
8+
9+/*
10+ * USB charger type:
11+ * SDP (Standard Downstream Port)
12+ * DCP (Dedicated Charging Port)
13+ * CDP (Charging Downstream Port)
14+ * ACA (Accessory Charger Adapters)
15+ */
16+enum usb_charger_type {
17+ UNKNOWN_TYPE,
18+ SDP_TYPE,
19+ DCP_TYPE,
20+ CDP_TYPE,
21+ ACA_TYPE,
22+};
23+
24+/* USB charger state */
25+enum usb_charger_state {
26+ USB_CHARGER_DEFAULT,
27+ USB_CHARGER_PRESENT,
28+ USB_CHARGER_ABSENT,
29+};
30+
31+#endif /* _UAPI__LINUX_USB_CHARGER_H */
include/uapi/linux/userfaultfd.h+15−1
@@ -23,7 +23,9 @@ · 22 unmodified lines
2323 UFFD_FEATURE_EVENT_REMOVE | \
2424 UFFD_FEATURE_EVENT_UNMAP | \
2525 UFFD_FEATURE_MISSING_HUGETLBFS | \
26− UFFD_FEATURE_MISSING_SHMEM)
26+ UFFD_FEATURE_MISSING_SHMEM | \
27+ UFFD_FEATURE_SIGBUS | \
28+ UFFD_FEATURE_THREAD_ID)
2729 #define UFFD_API_IOCTLS \
2830 ((__u64)1 << _UFFDIO_REGISTER | \
2931 (__u64)1 << _UFFDIO_UNREGISTER | \
@@ -78,6 +80,9 @@ struct uffd_msg { · 48 unmodified lines
7880 struct {
7981 __u64 flags;
8082 __u64 address;
83+ union {
84+ __u32 ptid;
85+ } feat;
8186 } pagefault;
8287
8388 struct {
@@ -153,6 +158,13 @@ struct uffdio_api { · 69 unmodified lines
153158 * UFFD_FEATURE_MISSING_SHMEM works the same as
154159 * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
155160 * (i.e. tmpfs and other shmem based APIs).
161+ *
162+ * UFFD_FEATURE_SIGBUS feature means no page-fault
163+ * (UFFD_EVENT_PAGEFAULT) event will be delivered, instead
164+ * a SIGBUS signal will be sent to the faulting process.
165+ *
166+ * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will
167+ * be returned, if feature is not requested 0 will be returned.
156168 */
157169 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
158170 #define UFFD_FEATURE_EVENT_FORK (1<<1)
@@ -161,6 +173,8 @@ struct uffdio_api { · 2 unmodified lines
161173 #define UFFD_FEATURE_MISSING_HUGETLBFS (1<<4)
162174 #define UFFD_FEATURE_MISSING_SHMEM (1<<5)
163175 #define UFFD_FEATURE_EVENT_UNMAP (1<<6)
176+#define UFFD_FEATURE_SIGBUS (1<<7)
177+#define UFFD_FEATURE_THREAD_ID (1<<8)
164178 __u64 features;
165179
166180 __u64 ioctls;
include/uapi/linux/virtio_ring.h+2−2
@@ -1,7 +1,7 @@
11 #ifndef _UAPI_LINUX_VIRTIO_RING_H
22 #define _UAPI_LINUX_VIRTIO_RING_H
3−/* An interface for efficient virtio implementation, currently for use by KVM
4− * and lguest, but hopefully others soon. Do NOT change this since it will
3+/* An interface for efficient virtio implementation, currently for use by KVM,
4+ * but hopefully others soon. Do NOT change this since it will
55 * break existing servers and clients.
66 *
77 * This header is BSD licensed so anyone can use the definitions to implement
include/uapi/linux/xfrm.h+1−0
@@ -304,6 +304,7 @@ enum xfrm_attr_type_t { · 303 unmodified lines
304304 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
305305 XFRMA_PAD,
306306 XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
307+ XFRMA_OUTPUT_MARK, /* __u32 */
307308 __XFRMA_MAX
308309
309310 #define XFRMA_MAX (__XFRMA_MAX - 1)
include/uapi/rdma/ib_user_ioctl_verbs.h+84−0
@@ -0,0 +1,84 @@
1+/*
2+ * Copyright (c) 2017, Mellanox Technologies inc. All rights reserved.
3+ *
4+ * This software is available to you under a choice of one of two
5+ * licenses. You may choose to be licensed under the terms of the GNU
6+ * General Public License (GPL) Version 2, available from the file
7+ * COPYING in the main directory of this source tree, or the
8+ * OpenIB.org BSD license below:
9+ *
10+ * Redistribution and use in source and binary forms, with or
11+ * without modification, are permitted provided that the following
12+ * conditions are met:
13+ *
14+ * - Redistributions of source code must retain the above
15+ * copyright notice, this list of conditions and the following
16+ * disclaimer.
17+ *
18+ * - Redistributions in binary form must reproduce the above
19+ * copyright notice, this list of conditions and the following
20+ * disclaimer in the documentation and/or other materials
21+ * provided with the distribution.
22+ *
23+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
27+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
29+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30+ * SOFTWARE.
31+ */
32+
33+#ifndef IB_USER_IOCTL_VERBS_H
34+#define IB_USER_IOCTL_VERBS_H
35+
36+#include <rdma/rdma_user_ioctl.h>
37+
38+#define UVERBS_UDATA_DRIVER_DATA_NS 1
39+#define UVERBS_UDATA_DRIVER_DATA_FLAG (1UL << UVERBS_ID_NS_SHIFT)
40+
41+enum uverbs_default_objects {
42+ UVERBS_OBJECT_DEVICE, /* No instances of DEVICE are allowed */
43+ UVERBS_OBJECT_PD,
44+ UVERBS_OBJECT_COMP_CHANNEL,
45+ UVERBS_OBJECT_CQ,
46+ UVERBS_OBJECT_QP,
47+ UVERBS_OBJECT_SRQ,
48+ UVERBS_OBJECT_AH,
49+ UVERBS_OBJECT_MR,
50+ UVERBS_OBJECT_MW,
51+ UVERBS_OBJECT_FLOW,
52+ UVERBS_OBJECT_XRCD,
53+ UVERBS_OBJECT_RWQ_IND_TBL,
54+ UVERBS_OBJECT_WQ,
55+ UVERBS_OBJECT_LAST,
56+};
57+
58+enum {
59+ UVERBS_UHW_IN = UVERBS_UDATA_DRIVER_DATA_FLAG,
60+ UVERBS_UHW_OUT,
61+};
62+
63+enum uverbs_create_cq_cmd_attr_ids {
64+ CREATE_CQ_HANDLE,
65+ CREATE_CQ_CQE,
66+ CREATE_CQ_USER_HANDLE,
67+ CREATE_CQ_COMP_CHANNEL,
68+ CREATE_CQ_COMP_VECTOR,
69+ CREATE_CQ_FLAGS,
70+ CREATE_CQ_RESP_CQE,
71+};
72+
73+enum uverbs_destroy_cq_cmd_attr_ids {
74+ DESTROY_CQ_HANDLE,
75+ DESTROY_CQ_RESP,
76+};
77+
78+enum uverbs_actions_cq_ops {
79+ UVERBS_CQ_CREATE,
80+ UVERBS_CQ_DESTROY,
81+};
82+
83+#endif
84+
include/uapi/rdma/ib_user_verbs.h+17−2
@@ -236,6 +236,20 @@ struct ib_uverbs_rss_caps { · 235 unmodified lines
236236 __u32 reserved;
237237 };
238238
239+struct ib_uverbs_tm_caps {
240+ /* Max size of rendezvous request message */
241+ __u32 max_rndv_hdr_size;
242+ /* Max number of entries in tag matching list */
243+ __u32 max_num_tags;
244+ /* TM flags */
245+ __u32 flags;
246+ /* Max number of outstanding list operations */
247+ __u32 max_ops;
248+ /* Max number of SGE in tag matching entry */
249+ __u32 max_sge;
250+ __u32 reserved;
251+};
252+
239253 struct ib_uverbs_ex_query_device_resp {
240254 struct ib_uverbs_query_device_resp base;
241255 __u32 comp_mask;
@@ -247,6 +261,7 @@ struct ib_uverbs_ex_query_device_resp { · 5 unmodified lines
247261 struct ib_uverbs_rss_caps rss_caps;
248262 __u32 max_wq_type_rq;
249263 __u32 raw_packet_caps;
264+ struct ib_uverbs_tm_caps xrq_caps;
250265 };
251266
252267 struct ib_uverbs_query_port {
@@ -578,7 +593,7 @@ struct ib_uverbs_ex_create_qp { · 325 unmodified lines
578593 __u32 comp_mask;
579594 __u32 create_flags;
580595 __u32 rwq_ind_tbl_handle;
581− __u32 reserved1;
596+ __u32 source_qpn;
582597 };
583598
584599 struct ib_uverbs_open_qp {
@@ -1024,7 +1039,7 @@ struct ib_uverbs_create_xsrq { · 439 unmodified lines
10241039 __u32 max_wr;
10251040 __u32 max_sge;
10261041 __u32 srq_limit;
1027− __u32 reserved;
1042+ __u32 max_num_tags;
10281043 __u32 xrcd_handle;
10291044 __u32 cq_handle;
10301045 __u64 driver_data[0];
include/uapi/rdma/mlx4-abi.h+51−1
@@ -95,13 +95,63 @@ struct mlx4_ib_create_srq_resp { · 94 unmodified lines
9595 __u32 reserved;
9696 };
9797
98+struct mlx4_ib_create_qp_rss {
99+ __u64 rx_hash_fields_mask;
100+ __u8 rx_hash_function;
101+ __u8 reserved[7];
102+ __u8 rx_hash_key[40];
103+ __u32 comp_mask;
104+ __u32 reserved1;
105+};
106+
98107 struct mlx4_ib_create_qp {
99108 __u64 buf_addr;
100109 __u64 db_addr;
101110 __u8 log_sq_bb_count;
102111 __u8 log_sq_stride;
103112 __u8 sq_no_prefetch;
104− __u8 reserved[5];
113+ __u8 reserved;
114+ __u32 inl_recv_sz;
115+};
116+
117+struct mlx4_ib_create_wq {
118+ __u64 buf_addr;
119+ __u64 db_addr;
120+ __u8 log_range_size;
121+ __u8 reserved[3];
122+ __u32 comp_mask;
123+};
124+
125+struct mlx4_ib_modify_wq {
126+ __u32 comp_mask;
127+ __u32 reserved;
128+};
129+
130+struct mlx4_ib_create_rwq_ind_tbl_resp {
131+ __u32 response_length;
132+ __u32 reserved;
133+};
134+
135+/* RX Hash function flags */
136+enum mlx4_ib_rx_hash_function_flags {
137+ MLX4_IB_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
138+};
139+
140+/*
141+ * RX Hash flags, these flags allows to set which incoming packet's field should
142+ * participates in RX Hash. Each flag represent certain packet's field,
143+ * when the flag is set the field that is represented by the flag will
144+ * participate in RX Hash calculation.
145+ */
146+enum mlx4_ib_rx_hash_fields {
147+ MLX4_IB_RX_HASH_SRC_IPV4 = 1 << 0,
148+ MLX4_IB_RX_HASH_DST_IPV4 = 1 << 1,
149+ MLX4_IB_RX_HASH_SRC_IPV6 = 1 << 2,
150+ MLX4_IB_RX_HASH_DST_IPV6 = 1 << 3,
151+ MLX4_IB_RX_HASH_SRC_PORT_TCP = 1 << 4,
152+ MLX4_IB_RX_HASH_DST_PORT_TCP = 1 << 5,
153+ MLX4_IB_RX_HASH_SRC_PORT_UDP = 1 << 6,
154+ MLX4_IB_RX_HASH_DST_PORT_UDP = 1 << 7
105155 };
106156
107157 #endif /* MLX4_ABI_USER_H */
include/uapi/rdma/mlx5-abi.h+23−0
@@ -168,6 +168,28 @@ struct mlx5_packet_pacing_caps { · 167 unmodified lines
168168 __u32 reserved;
169169 };
170170
171+enum mlx5_ib_mpw_caps {
172+ MPW_RESERVED = 1 << 0,
173+ MLX5_IB_ALLOW_MPW = 1 << 1,
174+ MLX5_IB_SUPPORT_EMPW = 1 << 2,
175+};
176+
177+enum mlx5_ib_sw_parsing_offloads {
178+ MLX5_IB_SW_PARSING = 1 << 0,
179+ MLX5_IB_SW_PARSING_CSUM = 1 << 1,
180+ MLX5_IB_SW_PARSING_LSO = 1 << 2,
181+};
182+
183+struct mlx5_ib_sw_parsing_caps {
184+ __u32 sw_parsing_offloads; /* enum mlx5_ib_sw_parsing_offloads */
185+
186+ /* Corresponding bit will be set if qp type from
187+ * 'enum ib_qp_type' is supported, e.g.
188+ * supported_qpts |= 1 << IB_QPT_RAW_PACKET
189+ */
190+ __u32 supported_qpts;
191+};
192+
171193 struct mlx5_ib_query_device_resp {
172194 __u32 comp_mask;
173195 __u32 response_length;
@@ -177,6 +199,7 @@ struct mlx5_ib_query_device_resp { · 3 unmodified lines
177199 struct mlx5_packet_pacing_caps packet_pacing_caps;
178200 __u32 mlx5_ib_support_multi_pkt_send_wqes;
179201 __u32 reserved;
202+ struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
180203 };
181204
182205 struct mlx5_ib_create_cq {
include/uapi/rdma/qedr-abi.h+3−0
@@ -49,6 +49,9 @@ struct qedr_alloc_ucontext_resp { · 48 unmodified lines
4949 __u32 sges_per_recv_wr;
5050 __u32 sges_per_srq_wr;
5151 __u32 max_cqes;
52+ __u8 dpm_enabled;
53+ __u8 wids_enabled;
54+ __u16 wid_count;
5255 };
5356
5457 struct qedr_alloc_pd_ureq {
include/uapi/rdma/rdma_netlink.h+83−1
@@ -8,7 +8,7 @@ enum { · 7 unmodified lines
88 RDMA_NL_IWCM,
99 RDMA_NL_RSVD,
1010 RDMA_NL_LS, /* RDMA Local Services */
11− RDMA_NL_I40IW,
11+ RDMA_NL_NLDEV, /* RDMA device interface */
1212 RDMA_NL_NUM_CLIENTS
1313 };
1414
@@ -222,4 +222,86 @@ struct rdma_nla_ls_gid { · 207 unmodified lines
222222 __u8 gid[16];
223223 };
224224
225+enum rdma_nldev_command {
226+ RDMA_NLDEV_CMD_UNSPEC,
227+
228+ RDMA_NLDEV_CMD_GET, /* can dump */
229+ RDMA_NLDEV_CMD_SET,
230+ RDMA_NLDEV_CMD_NEW,
231+ RDMA_NLDEV_CMD_DEL,
232+
233+ RDMA_NLDEV_CMD_PORT_GET, /* can dump */
234+ RDMA_NLDEV_CMD_PORT_SET,
235+ RDMA_NLDEV_CMD_PORT_NEW,
236+ RDMA_NLDEV_CMD_PORT_DEL,
237+
238+ RDMA_NLDEV_NUM_OPS
239+};
240+
241+enum rdma_nldev_attr {
242+ /* don't change the order or add anything between, this is ABI! */
243+ RDMA_NLDEV_ATTR_UNSPEC,
244+
245+ /* Identifier for ib_device */
246+ RDMA_NLDEV_ATTR_DEV_INDEX, /* u32 */
247+
248+ RDMA_NLDEV_ATTR_DEV_NAME, /* string */
249+ /*
250+ * Device index together with port index are identifiers
251+ * for port/link properties.
252+ *
253+ * For RDMA_NLDEV_CMD_GET commamnd, port index will return number
254+ * of available ports in ib_device, while for port specific operations,
255+ * it will be real port index as it appears in sysfs. Port index follows
256+ * sysfs notation and starts from 1 for the first port.
257+ */
258+ RDMA_NLDEV_ATTR_PORT_INDEX, /* u32 */
259+
260+ /*
261+ * Device and port capabilities
262+ */
263+ RDMA_NLDEV_ATTR_CAP_FLAGS, /* u64 */
264+
265+ /*
266+ * FW version
267+ */
268+ RDMA_NLDEV_ATTR_FW_VERSION, /* string */
269+
270+ /*
271+ * Node GUID (in host byte order) associated with the RDMA device.
272+ */
273+ RDMA_NLDEV_ATTR_NODE_GUID, /* u64 */
274+
275+ /*
276+ * System image GUID (in host byte order) associated with
277+ * this RDMA device and other devices which are part of a
278+ * single system.
279+ */
280+ RDMA_NLDEV_ATTR_SYS_IMAGE_GUID, /* u64 */
281+
282+ /*
283+ * Subnet prefix (in host byte order)
284+ */
285+ RDMA_NLDEV_ATTR_SUBNET_PREFIX, /* u64 */
286+
287+ /*
288+ * Local Identifier (LID),
289+ * According to IB specification, It is 16-bit address assigned
290+ * by the Subnet Manager. Extended to be 32-bit for OmniPath users.
291+ */
292+ RDMA_NLDEV_ATTR_LID, /* u32 */
293+ RDMA_NLDEV_ATTR_SM_LID, /* u32 */
294+
295+ /*
296+ * LID mask control (LMC)
297+ */
298+ RDMA_NLDEV_ATTR_LMC, /* u8 */
299+
300+ RDMA_NLDEV_ATTR_PORT_STATE, /* u8 */
301+ RDMA_NLDEV_ATTR_PORT_PHYS_STATE, /* u8 */
302+
303+ RDMA_NLDEV_ATTR_DEV_NODE_TYPE, /* u8 */
304+
305+ RDMA_NLDEV_ATTR_MAX
306+};
225307 #endif /* _UAPI_RDMA_NETLINK_H */
include/uapi/rdma/rdma_user_ioctl.h+33−0
@@ -43,6 +43,39 @@ · 42 unmodified lines
4343 /* Legacy name, for user space application which already use it */
4444 #define IB_IOCTL_MAGIC RDMA_IOCTL_MAGIC
4545
46+#define RDMA_VERBS_IOCTL \
47+ _IOWR(RDMA_IOCTL_MAGIC, 1, struct ib_uverbs_ioctl_hdr)
48+
49+#define UVERBS_ID_NS_MASK 0xF000
50+#define UVERBS_ID_NS_SHIFT 12
51+
52+enum {
53+ /* User input */
54+ UVERBS_ATTR_F_MANDATORY = 1U << 0,
55+ /*
56+ * Valid output bit should be ignored and considered set in
57+ * mandatory fields. This bit is kernel output.
58+ */
59+ UVERBS_ATTR_F_VALID_OUTPUT = 1U << 1,
60+};
61+
62+struct ib_uverbs_attr {
63+ __u16 attr_id; /* command specific type attribute */
64+ __u16 len; /* only for pointers */
65+ __u16 flags; /* combination of UVERBS_ATTR_F_XXXX */
66+ __u16 reserved;
67+ __u64 data; /* ptr to command, inline data or idr/fd */
68+};
69+
70+struct ib_uverbs_ioctl_hdr {
71+ __u16 length;
72+ __u16 object_id;
73+ __u16 method_id;
74+ __u16 num_attrs;
75+ __u64 reserved;
76+ struct ib_uverbs_attr attrs[0];
77+};
78+
4679 /*
4780 * General blocks assignments
4881 * It is closed on purpose do not expose it it user space
include/uapi/rdma/vmw_pvrdma-abi.h+4−2
@@ -125,7 +125,8 @@ enum pvrdma_wc_flags { · 124 unmodified lines
125125 PVRDMA_WC_IP_CSUM_OK = 1 << 3,
126126 PVRDMA_WC_WITH_SMAC = 1 << 4,
127127 PVRDMA_WC_WITH_VLAN = 1 << 5,
128− PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_VLAN,
128+ PVRDMA_WC_WITH_NETWORK_HDR_TYPE = 1 << 6,
129+ PVRDMA_WC_FLAGS_MAX = PVRDMA_WC_WITH_NETWORK_HDR_TYPE,
129130 };
130131
131132 struct pvrdma_alloc_ucontext_resp {
@@ -283,7 +284,8 @@ struct pvrdma_cqe { · 151 unmodified lines
283284 __u8 dlid_path_bits;
284285 __u8 port_num;
285286 __u8 smac[6];
286− __u8 reserved2[7]; /* Pad to next power of 2 (64). */
287+ __u8 network_hdr_type;
288+ __u8 reserved2[6]; /* Pad to next power of 2 (64). */
287289 };
288290
289291 #endif /* __VMW_PVRDMA_ABI_H__ */
include/uapi/sound/snd_sst_tokens.h+91−1
@@ -163,8 +163,71 @@ · 162 unmodified lines
163163 *
164164 * %SKL_TKN_U32_DMA_BUF_SIZE: DMA buffer size in millisec
165165 *
166+ * %SKL_TKN_U32_PIPE_DIR: Specifies pipe direction. Can be
167+ * playback/capture.
168+ *
169+ * %SKL_TKN_U32_NUM_CONFIGS: Number of pipe configs
170+ *
171+ * %SKL_TKN_U32_PATH_MEM_PGS: Size of memory (in pages) required for pipeline
172+ * and its data
173+ *
174+ * %SKL_TKN_U32_PIPE_CONFIG_ID: Config id for the modules in the pipe
175+ * and PCM params supported by that pipe
176+ * config. This is used as index to fill
177+ * up the pipe config and module config
178+ * structure.
179+ *
180+ * %SKL_TKN_U32_CFG_FREQ:
181+ * %SKL_TKN_U8_CFG_CHAN:
182+ * %SKL_TKN_U8_CFG_BPS: PCM params (freq, channels, bits per sample)
183+ * supported for each of the pipe configs.
184+ *
185+ * %SKL_TKN_CFG_MOD_RES_ID: Module's resource index for each of the
186+ * pipe config
187+ *
188+ * %SKL_TKN_CFG_MOD_FMT_ID: Module's interface index for each of the
189+ * pipe config
190+ *
191+ * %SKL_TKN_U8_NUM_MOD: Number of modules in the manifest
192+ *
193+ * %SKL_TKN_MM_U8_MOD_IDX: Current index of the module in the manifest
194+ *
195+ * %SKL_TKN_MM_U8_NUM_RES: Number of resources for the module
196+ *
197+ * %SKL_TKN_MM_U8_NUM_INTF: Number of interfaces for the module
198+ *
199+ * %SKL_TKN_MM_U32_RES_ID: Resource index for the resource info to
200+ * be filled into.
201+ * A module can support multiple resource
202+ * configuration and is represnted as a
203+ * resource table. This index is used to
204+ * fill information into appropriate index.
205+ *
206+ * %SKL_TKN_MM_U32_CPS: DSP cycles per second
207+ *
208+ * %SKL_TKN_MM_U32_DMA_SIZE: Allocated buffer size for gateway DMA
209+ *
210+ * %SKL_TKN_MM_U32_CPC: DSP cycles allocated per frame
211+ *
212+ * %SKL_TKN_MM_U32_RES_PIN_ID: Resource pin index in the module
213+ *
214+ * %SKL_TKN_MM_U32_INTF_PIN_ID: Interface index in the module
215+ *
216+ * %SKL_TKN_MM_U32_PIN_BUF: Buffer size of the module pin
217+ *
218+ * %SKL_TKN_MM_U32_FMT_ID: Format index for each of the interface/
219+ * format information to be filled into.
220+ *
221+ * %SKL_TKN_MM_U32_NUM_IN_FMT: Number of input formats
222+ * %SKL_TKN_MM_U32_NUM_OUT_FMT: Number of output formats
223+ *
166224 * module_id and loadable flags dont have tokens as these values will be
167225 * read from the DSP FW manifest
226+ *
227+ * Tokens defined can be used either in the manifest or widget private data.
228+ *
229+ * SKL_TKN_MM is used as a suffix for all tokens that represent
230+ * module data in the manifest.
168231 */
169232 enum SKL_TKNS {
170233 SKL_TKN_UUID = 1,
@@ -218,7 +281,34 @@ enum SKL_TKNS { · 47 unmodified lines
218281 SKL_TKL_U32_D0I3_CAPS, /* Typo added at v4.10 */
219282 SKL_TKN_U32_D0I3_CAPS = SKL_TKL_U32_D0I3_CAPS,
220283 SKL_TKN_U32_DMA_BUF_SIZE,
221− SKL_TKN_MAX = SKL_TKN_U32_DMA_BUF_SIZE,
284+
285+ SKL_TKN_U32_PIPE_DIRECTION,
286+ SKL_TKN_U32_PIPE_CONFIG_ID,
287+ SKL_TKN_U32_NUM_CONFIGS,
288+ SKL_TKN_U32_PATH_MEM_PGS,
289+
290+ SKL_TKN_U32_CFG_FREQ,
291+ SKL_TKN_U8_CFG_CHAN,
292+ SKL_TKN_U8_CFG_BPS,
293+ SKL_TKN_CFG_MOD_RES_ID,
294+ SKL_TKN_CFG_MOD_FMT_ID,
295+ SKL_TKN_U8_NUM_MOD,
296+
297+ SKL_TKN_MM_U8_MOD_IDX,
298+ SKL_TKN_MM_U8_NUM_RES,
299+ SKL_TKN_MM_U8_NUM_INTF,
300+ SKL_TKN_MM_U32_RES_ID,
301+ SKL_TKN_MM_U32_CPS,
302+ SKL_TKN_MM_U32_DMA_SIZE,
303+ SKL_TKN_MM_U32_CPC,
304+ SKL_TKN_MM_U32_RES_PIN_ID,
305+ SKL_TKN_MM_U32_INTF_PIN_ID,
306+ SKL_TKN_MM_U32_PIN_BUF,
307+ SKL_TKN_MM_U32_FMT_ID,
308+ SKL_TKN_MM_U32_NUM_IN_FMT,
309+ SKL_TKN_MM_U32_NUM_OUT_FMT,
310+
311+ SKL_TKN_MAX = SKL_TKN_MM_U32_NUM_OUT_FMT,
222312 };
223313
224314 #endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t