History

Merge drm/drm-next into drm-intel-next-queued

This is needed to get the fourcc code merged without conflicts.

Joonas Lahtinen committed 7 years ago

Commit 0e2f54f2 parents 96fd2c6 0bec62110350 files · +471792 −219424Browse files

Showing the changes to include/uapi (79 of 10350 files). Show all

Unified · Split

79 files
  1. include/uapi/asm-generic/Kbuild +3 −1
  2. include/uapi/asm-generic/mman-common.h +1 −3
  3. include/uapi/asm-generic/socket.h +41 −9
  4. include/uapi/asm-generic/unistd.h +125 −33
  5. include/uapi/drm/drm_fourcc.h +29 −7
  6. include/uapi/linux/android/binder.h +19 −0
  7. include/uapi/linux/auto_fs.h +1 −1
  8. include/uapi/linux/batadv_packet.h +2 −2
  9. include/uapi/linux/batman_adv.h +186 −6
  10. include/uapi/linux/binfmts.h +1 −1
  11. include/uapi/linux/bpf.h +107 −9
  12. include/uapi/linux/btrfs.h +2 −0
  13. include/uapi/linux/devlink.h +47 −0
  14. include/uapi/linux/dm-ioctl.h +2 −2
  15. include/uapi/linux/elf.h +2 −0
  16. include/uapi/linux/errqueue.h +5 −0
  17. include/uapi/linux/ethtool.h +26 −9
  18. include/uapi/linux/fanotify.h +29 −0
  19. include/uapi/linux/fcntl.h +1 −0
  20. include/uapi/linux/fuse.h +6 −1
  21. include/uapi/linux/icmpv6.h +2 −0
  22. include/uapi/linux/if_bonding.h +24 −0
  23. include/uapi/linux/if_link.h +1 −0
  24. include/uapi/linux/igmp.h +1 −0
  25. include/uapi/linux/iio/types.h +7 −0
  26. include/uapi/linux/in.h +5 −4
  27. include/uapi/linux/in6.h +1 −0
  28. include/uapi/linux/io_uring.h +137 −0
  29. include/uapi/linux/kernel-page-flags.h +1 −1
  30. include/uapi/linux/limits.h +2 −2
  31. include/uapi/linux/lirc.h +6 −0
  32. include/uapi/linux/mdio.h +19 −0
  33. include/uapi/linux/mman.h +4 −0
  34. include/uapi/linux/mroute.h +8 −1
  35. include/uapi/linux/mroute6.h +8 −1
  36. include/uapi/linux/ndctl.h +1 −0
  37. include/uapi/linux/netfilter/nf_tables.h +17 −2
  38. include/uapi/linux/nl80211.h +39 −5
  39. include/uapi/linux/nvme_ioctl.h +0 −9
  40. include/uapi/linux/pci_regs.h +2 −0
  41. include/uapi/linux/perf_event.h +52 −3
  42. include/uapi/linux/pkt_cls.h +54 −4
  43. include/uapi/linux/pkt_sched.h +2 −1
  44. include/uapi/linux/pmu.h +2 −0
  45. include/uapi/linux/prctl.h +1 −0
  46. include/uapi/linux/rds.h +11 −0
  47. include/uapi/linux/sctp.h +4 −0
  48. include/uapi/linux/serial_core.h +3 −0
  49. include/uapi/linux/tc_act/tc_bpf.h +0 −2
  50. include/uapi/linux/tc_act/tc_connmark.h +0 −2
  51. include/uapi/linux/tc_act/tc_csum.h +0 −2
  52. include/uapi/linux/tc_act/tc_gact.h +0 −1
  53. include/uapi/linux/tc_act/tc_ife.h +0 −1
  54. include/uapi/linux/tc_act/tc_ipt.h +0 −3
  55. include/uapi/linux/tc_act/tc_mirred.h +0 −1
  56. include/uapi/linux/tc_act/tc_nat.h +0 −2
  57. include/uapi/linux/tc_act/tc_pedit.h +0 −2
  58. include/uapi/linux/tc_act/tc_sample.h +0 −2
  59. include/uapi/linux/tc_act/tc_skbedit.h +0 −2
  60. include/uapi/linux/tc_act/tc_skbmod.h +0 −2
  61. include/uapi/linux/tc_act/tc_tunnel_key.h +0 −2
  62. include/uapi/linux/tc_act/tc_vlan.h +0 −2
  63. include/uapi/linux/time.h +1 −28
  64. include/uapi/linux/time_types.h +36 −0
  65. include/uapi/linux/timex.h +39 −0
  66. include/uapi/linux/tls.h +19 −0
  67. include/uapi/linux/v4l2-controls.h +2 −0
  68. include/uapi/linux/videodev2.h +25 −1
  69. include/uapi/linux/xdp_diag.h +72 −0
  70. include/uapi/misc/fastrpc.h +41 −0
  71. include/uapi/misc/habanalabs.h +450 −0
  72. include/uapi/mtd/ubi-user.h +5 −0
  73. include/uapi/rdma/bnxt_re-abi.h +11 −0
  74. include/uapi/rdma/ib_user_verbs.h +2 −0
  75. include/uapi/rdma/mlx5_user_ioctl_cmds.h +18 −0
  76. include/uapi/rdma/mlx5_user_ioctl_verbs.h +5 −0
  77. include/uapi/rdma/rdma_netlink.h +58 −16
  78. include/uapi/rdma/rdma_user_cm.h +4 −0
  79. include/uapi/rdma/rdma_user_rxe.h +1 −2
include/uapi/asm-generic/Kbuildrenamed from include/uapi/asm-generic/Kbuild.asm+3−1
@@ -1,6 +1,8 @@
1+# SPDX-License-Identifier: GPL-2.0
12 #
23 # Headers that are mandatory in usr/include/asm/
3−#
4+# (This file is not included when SRCARCH=um since UML does not support UAPI.)
5+
46 mandatory-y += auxvec.h
57 mandatory-y += bitsperlong.h
68 mandatory-y += bpf_perf_event.h
include/uapi/asm-generic/mman-common.h+1−3
@@ -15,9 +15,7 @@ · 14 unmodified lines
1515 #define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */
1616 #define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */
1717
18−#define MAP_SHARED 0x01 /* Share changes */
19−#define MAP_PRIVATE 0x02 /* Changes are private */
20−#define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */
18+/* 0x01 - 0x03 are defined in linux/mman.h */
2119 #define MAP_TYPE 0x0f /* Mask for type of mapping */
2220 #define MAP_FIXED 0x10 /* Interpret addr exactly */
2321 #define MAP_ANONYMOUS 0x20 /* don't use a file */
include/uapi/asm-generic/socket.h+41−9
@@ -2,6 +2,7 @@ · 1 unmodified line
22 #ifndef __ASM_GENERIC_SOCKET_H
33 #define __ASM_GENERIC_SOCKET_H
44
5+#include <linux/posix_types.h>
56 #include <asm/sockios.h>
67
78 /* For setsockopt(2) */
@@ -29,8 +30,8 @@ · 21 unmodified lines
2930 #define SO_PEERCRED 17
3031 #define SO_RCVLOWAT 18
3132 #define SO_SNDLOWAT 19
32−#define SO_RCVTIMEO 20
33−#define SO_SNDTIMEO 21
33+#define SO_RCVTIMEO_OLD 20
34+#define SO_SNDTIMEO_OLD 21
3435 #endif
3536
3637 /* Security levels - as per NRL IPv6 - don't actually do anything */
@@ -46,21 +47,14 @@ · 9 unmodified lines
4647 #define SO_GET_FILTER SO_ATTACH_FILTER
4748
4849 #define SO_PEERNAME 28
49−#define SO_TIMESTAMP 29
50−#define SCM_TIMESTAMP SO_TIMESTAMP
5150
5251 #define SO_ACCEPTCONN 30
5352
5453 #define SO_PEERSEC 31
5554 #define SO_PASSSEC 34
56−#define SO_TIMESTAMPNS 35
57−#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
5855
5956 #define SO_MARK 36
6057
61−#define SO_TIMESTAMPING 37
62−#define SCM_TIMESTAMPING SO_TIMESTAMPING
63−
6458 #define SO_PROTOCOL 38
6559 #define SO_DOMAIN 39
6660
@@ -110,4 +104,42 @@ · 43 unmodified lines
110104 #define SO_TXTIME 61
111105 #define SCM_TXTIME SO_TXTIME
112106
107+#define SO_BINDTOIFINDEX 62
108+
109+#define SO_TIMESTAMP_OLD 29
110+#define SO_TIMESTAMPNS_OLD 35
111+#define SO_TIMESTAMPING_OLD 37
112+
113+#define SO_TIMESTAMP_NEW 63
114+#define SO_TIMESTAMPNS_NEW 64
115+#define SO_TIMESTAMPING_NEW 65
116+
117+#define SO_RCVTIMEO_NEW 66
118+#define SO_SNDTIMEO_NEW 67
119+
120+#if !defined(__KERNEL__)
121+
122+#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
123+/* on 64-bit and x32, avoid the ?: operator */
124+#define SO_TIMESTAMP SO_TIMESTAMP_OLD
125+#define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
126+#define SO_TIMESTAMPING SO_TIMESTAMPING_OLD
127+
128+#define SO_RCVTIMEO SO_RCVTIMEO_OLD
129+#define SO_SNDTIMEO SO_SNDTIMEO_OLD
130+#else
131+#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
132+#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
133+#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
134+
135+#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
136+#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
137+#endif
138+
139+#define SCM_TIMESTAMP SO_TIMESTAMP
140+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
141+#define SCM_TIMESTAMPING SO_TIMESTAMPING
142+
143+#endif
144+
113145 #endif /* __ASM_GENERIC_SOCKET_H */
include/uapi/asm-generic/unistd.h+125−33
@@ -38,8 +38,10 @@ __SYSCALL(__NR_io_destroy, sys_io_destroy) · 37 unmodified lines
3838 __SC_COMP(__NR_io_submit, sys_io_submit, compat_sys_io_submit)
3939 #define __NR_io_cancel 3
4040 __SYSCALL(__NR_io_cancel, sys_io_cancel)
41+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
4142 #define __NR_io_getevents 4
42−__SC_COMP(__NR_io_getevents, sys_io_getevents, compat_sys_io_getevents)
43+__SC_3264(__NR_io_getevents, sys_io_getevents_time32, sys_io_getevents)
44+#endif
4345
4446 /* fs/xattr.c */
4547 #define __NR_setxattr 5
@@ -179,7 +181,7 @@ __SYSCALL(__NR_fchownat, sys_fchownat) · 133 unmodified lines
179181 #define __NR_fchown 55
180182 __SYSCALL(__NR_fchown, sys_fchown)
181183 #define __NR_openat 56
182−__SC_COMP(__NR_openat, sys_openat, compat_sys_openat)
184+__SYSCALL(__NR_openat, sys_openat)
183185 #define __NR_close 57
184186 __SYSCALL(__NR_close, sys_close)
185187 #define __NR_vhangup 58
@@ -222,10 +224,12 @@ __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev) · 36 unmodified lines
222224 __SYSCALL(__NR3264_sendfile, sys_sendfile64)
223225
224226 /* fs/select.c */
227+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
225228 #define __NR_pselect6 72
226−__SC_COMP(__NR_pselect6, sys_pselect6, compat_sys_pselect6)
229+__SC_COMP_3264(__NR_pselect6, sys_pselect6_time32, sys_pselect6, compat_sys_pselect6_time32)
227230 #define __NR_ppoll 73
228−__SC_COMP(__NR_ppoll, sys_ppoll, compat_sys_ppoll)
231+__SC_COMP_3264(__NR_ppoll, sys_ppoll_time32, sys_ppoll, compat_sys_ppoll_time32)
232+#endif
229233
230234 /* fs/signalfd.c */
231235 #define __NR_signalfd4 74
@@ -269,16 +273,20 @@ __SC_COMP(__NR_sync_file_range, sys_sync_file_range, \ · 37 unmodified lines
269273 /* fs/timerfd.c */
270274 #define __NR_timerfd_create 85
271275 __SYSCALL(__NR_timerfd_create, sys_timerfd_create)
276+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
272277 #define __NR_timerfd_settime 86
273−__SC_COMP(__NR_timerfd_settime, sys_timerfd_settime, \
274− compat_sys_timerfd_settime)
278+__SC_3264(__NR_timerfd_settime, sys_timerfd_settime32, \
279+ sys_timerfd_settime)
275280 #define __NR_timerfd_gettime 87
276−__SC_COMP(__NR_timerfd_gettime, sys_timerfd_gettime, \
277− compat_sys_timerfd_gettime)
281+__SC_3264(__NR_timerfd_gettime, sys_timerfd_gettime32, \
282+ sys_timerfd_gettime)
283+#endif
278284
279285 /* fs/utimes.c */
286+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
280287 #define __NR_utimensat 88
281−__SC_COMP(__NR_utimensat, sys_utimensat, compat_sys_utimensat)
288+__SC_3264(__NR_utimensat, sys_utimensat_time32, sys_utimensat)
289+#endif
282290
283291 /* kernel/acct.c */
284292 #define __NR_acct 89
@@ -309,8 +317,10 @@ __SYSCALL(__NR_set_tid_address, sys_set_tid_address) · 24 unmodified lines
309317 __SYSCALL(__NR_unshare, sys_unshare)
310318
311319 /* kernel/futex.c */
320+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
312321 #define __NR_futex 98
313−__SC_COMP(__NR_futex, sys_futex, compat_sys_futex)
322+__SC_3264(__NR_futex, sys_futex_time32, sys_futex)
323+#endif
314324 #define __NR_set_robust_list 99
315325 __SC_COMP(__NR_set_robust_list, sys_set_robust_list, \
316326 compat_sys_set_robust_list)
@@ -319,8 +329,10 @@ __SC_COMP(__NR_get_robust_list, sys_get_robust_list, \ · 2 unmodified lines
319329 compat_sys_get_robust_list)
320330
321331 /* kernel/hrtimer.c */
332+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
322333 #define __NR_nanosleep 101
323−__SC_COMP(__NR_nanosleep, sys_nanosleep, compat_sys_nanosleep)
334+__SC_3264(__NR_nanosleep, sys_nanosleep_time32, sys_nanosleep)
335+#endif
324336
325337 /* kernel/itimer.c */
326338 #define __NR_getitimer 102
@@ -341,23 +353,29 @@ __SYSCALL(__NR_delete_module, sys_delete_module) · 14 unmodified lines
341353 /* kernel/posix-timers.c */
342354 #define __NR_timer_create 107
343355 __SC_COMP(__NR_timer_create, sys_timer_create, compat_sys_timer_create)
356+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
344357 #define __NR_timer_gettime 108
345−__SC_COMP(__NR_timer_gettime, sys_timer_gettime, compat_sys_timer_gettime)
358+__SC_3264(__NR_timer_gettime, sys_timer_gettime32, sys_timer_gettime)
359+#endif
346360 #define __NR_timer_getoverrun 109
347361 __SYSCALL(__NR_timer_getoverrun, sys_timer_getoverrun)
362+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
348363 #define __NR_timer_settime 110
349−__SC_COMP(__NR_timer_settime, sys_timer_settime, compat_sys_timer_settime)
364+__SC_3264(__NR_timer_settime, sys_timer_settime32, sys_timer_settime)
365+#endif
350366 #define __NR_timer_delete 111
351367 __SYSCALL(__NR_timer_delete, sys_timer_delete)
368+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
352369 #define __NR_clock_settime 112
353−__SC_COMP(__NR_clock_settime, sys_clock_settime, compat_sys_clock_settime)
370+__SC_3264(__NR_clock_settime, sys_clock_settime32, sys_clock_settime)
354371 #define __NR_clock_gettime 113
355−__SC_COMP(__NR_clock_gettime, sys_clock_gettime, compat_sys_clock_gettime)
372+__SC_3264(__NR_clock_gettime, sys_clock_gettime32, sys_clock_gettime)
356373 #define __NR_clock_getres 114
357−__SC_COMP(__NR_clock_getres, sys_clock_getres, compat_sys_clock_getres)
374+__SC_3264(__NR_clock_getres, sys_clock_getres_time32, sys_clock_getres)
358375 #define __NR_clock_nanosleep 115
359−__SC_COMP(__NR_clock_nanosleep, sys_clock_nanosleep, \
360− compat_sys_clock_nanosleep)
376+__SC_3264(__NR_clock_nanosleep, sys_clock_nanosleep_time32, \
377+ sys_clock_nanosleep)
378+#endif
361379
362380 /* kernel/printk.c */
363381 #define __NR_syslog 116
@@ -388,9 +406,11 @@ __SYSCALL(__NR_sched_yield, sys_sched_yield) · 24 unmodified lines
388406 __SYSCALL(__NR_sched_get_priority_max, sys_sched_get_priority_max)
389407 #define __NR_sched_get_priority_min 126
390408 __SYSCALL(__NR_sched_get_priority_min, sys_sched_get_priority_min)
409+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
391410 #define __NR_sched_rr_get_interval 127
392−__SC_COMP(__NR_sched_rr_get_interval, sys_sched_rr_get_interval, \
393− compat_sys_sched_rr_get_interval)
411+__SC_3264(__NR_sched_rr_get_interval, sys_sched_rr_get_interval_time32, \
412+ sys_sched_rr_get_interval)
413+#endif
394414
395415 /* kernel/signal.c */
396416 #define __NR_restart_syscall 128
@@ -411,9 +431,11 @@ __SC_COMP(__NR_rt_sigaction, sys_rt_sigaction, compat_sys_rt_sigaction) · 14 unmodified lines
411431 __SC_COMP(__NR_rt_sigprocmask, sys_rt_sigprocmask, compat_sys_rt_sigprocmask)
412432 #define __NR_rt_sigpending 136
413433 __SC_COMP(__NR_rt_sigpending, sys_rt_sigpending, compat_sys_rt_sigpending)
434+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
414435 #define __NR_rt_sigtimedwait 137
415−__SC_COMP(__NR_rt_sigtimedwait, sys_rt_sigtimedwait, \
416− compat_sys_rt_sigtimedwait)
436+__SC_COMP_3264(__NR_rt_sigtimedwait, sys_rt_sigtimedwait_time32, \
437+ sys_rt_sigtimedwait, compat_sys_rt_sigtimedwait_time32)
438+#endif
417439 #define __NR_rt_sigqueueinfo 138
418440 __SC_COMP(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, \
419441 compat_sys_rt_sigqueueinfo)
@@ -467,10 +489,15 @@ __SYSCALL(__NR_uname, sys_newuname) · 47 unmodified lines
467489 __SYSCALL(__NR_sethostname, sys_sethostname)
468490 #define __NR_setdomainname 162
469491 __SYSCALL(__NR_setdomainname, sys_setdomainname)
492+
493+#ifdef __ARCH_WANT_SET_GET_RLIMIT
494+/* getrlimit and setrlimit are superseded with prlimit64 */
470495 #define __NR_getrlimit 163
471496 __SC_COMP(__NR_getrlimit, sys_getrlimit, compat_sys_getrlimit)
472497 #define __NR_setrlimit 164
473498 __SC_COMP(__NR_setrlimit, sys_setrlimit, compat_sys_setrlimit)
499+#endif
500+
474501 #define __NR_getrusage 165
475502 __SC_COMP(__NR_getrusage, sys_getrusage, compat_sys_getrusage)
476503 #define __NR_umask 166
@@ -481,12 +508,14 @@ __SYSCALL(__NR_prctl, sys_prctl) · 4 unmodified lines
481508 __SYSCALL(__NR_getcpu, sys_getcpu)
482509
483510 /* kernel/time.c */
511+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
484512 #define __NR_gettimeofday 169
485513 __SC_COMP(__NR_gettimeofday, sys_gettimeofday, compat_sys_gettimeofday)
486514 #define __NR_settimeofday 170
487515 __SC_COMP(__NR_settimeofday, sys_settimeofday, compat_sys_settimeofday)
488516 #define __NR_adjtimex 171
489−__SC_COMP(__NR_adjtimex, sys_adjtimex, compat_sys_adjtimex)
517+__SC_3264(__NR_adjtimex, sys_adjtimex_time32, sys_adjtimex)
518+#endif
490519
491520 /* kernel/timer.c */
492521 #define __NR_getpid 172
@@ -511,11 +540,13 @@ __SC_COMP(__NR_sysinfo, sys_sysinfo, compat_sys_sysinfo) · 18 unmodified lines
511540 __SC_COMP(__NR_mq_open, sys_mq_open, compat_sys_mq_open)
512541 #define __NR_mq_unlink 181
513542 __SYSCALL(__NR_mq_unlink, sys_mq_unlink)
543+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
514544 #define __NR_mq_timedsend 182
515−__SC_COMP(__NR_mq_timedsend, sys_mq_timedsend, compat_sys_mq_timedsend)
545+__SC_3264(__NR_mq_timedsend, sys_mq_timedsend_time32, sys_mq_timedsend)
516546 #define __NR_mq_timedreceive 183
517−__SC_COMP(__NR_mq_timedreceive, sys_mq_timedreceive, \
518− compat_sys_mq_timedreceive)
547+__SC_3264(__NR_mq_timedreceive, sys_mq_timedreceive_time32, \
548+ sys_mq_timedreceive)
549+#endif
519550 #define __NR_mq_notify 184
520551 __SC_COMP(__NR_mq_notify, sys_mq_notify, compat_sys_mq_notify)
521552 #define __NR_mq_getsetattr 185
@@ -536,8 +567,10 @@ __SC_COMP(__NR_msgsnd, sys_msgsnd, compat_sys_msgsnd) · 14 unmodified lines
536567 __SYSCALL(__NR_semget, sys_semget)
537568 #define __NR_semctl 191
538569 __SC_COMP(__NR_semctl, sys_semctl, compat_sys_semctl)
570+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
539571 #define __NR_semtimedop 192
540−__SC_COMP(__NR_semtimedop, sys_semtimedop, compat_sys_semtimedop)
572+__SC_COMP(__NR_semtimedop, sys_semtimedop, sys_semtimedop_time32)
573+#endif
541574 #define __NR_semop 193
542575 __SYSCALL(__NR_semop, sys_semop)
543576
@@ -658,8 +691,10 @@ __SC_COMP(__NR_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, \ · 114 unmodified lines
658691 __SYSCALL(__NR_perf_event_open, sys_perf_event_open)
659692 #define __NR_accept4 242
660693 __SYSCALL(__NR_accept4, sys_accept4)
694+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
661695 #define __NR_recvmmsg 243
662−__SC_COMP(__NR_recvmmsg, sys_recvmmsg, compat_sys_recvmmsg)
696+__SC_COMP_3264(__NR_recvmmsg, sys_recvmmsg_time32, sys_recvmmsg, compat_sys_recvmmsg_time32)
697+#endif
663698
664699 /*
665700 * Architectures may provide up to 16 syscalls of their own
@@ -667,8 +702,10 @@ __SC_COMP(__NR_recvmmsg, sys_recvmmsg, compat_sys_recvmmsg) · 1 unmodified line
667702 */
668703 #define __NR_arch_specific_syscall 244
669704
705+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
670706 #define __NR_wait4 260
671707 __SC_COMP(__NR_wait4, sys_wait4, compat_sys_wait4)
708+#endif
672709 #define __NR_prlimit64 261
673710 __SYSCALL(__NR_prlimit64, sys_prlimit64)
674711 #define __NR_fanotify_init 262
@@ -678,10 +715,11 @@ __SYSCALL(__NR_fanotify_mark, sys_fanotify_mark) · 3 unmodified lines
678715 #define __NR_name_to_handle_at 264
679716 __SYSCALL(__NR_name_to_handle_at, sys_name_to_handle_at)
680717 #define __NR_open_by_handle_at 265
681−__SC_COMP(__NR_open_by_handle_at, sys_open_by_handle_at, \
682− compat_sys_open_by_handle_at)
718+__SYSCALL(__NR_open_by_handle_at, sys_open_by_handle_at)
719+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
683720 #define __NR_clock_adjtime 266
684−__SC_COMP(__NR_clock_adjtime, sys_clock_adjtime, compat_sys_clock_adjtime)
721+__SC_3264(__NR_clock_adjtime, sys_clock_adjtime32, sys_clock_adjtime)
722+#endif
685723 #define __NR_syncfs 267
686724 __SYSCALL(__NR_syncfs, sys_syncfs)
687725 #define __NR_setns 268
@@ -734,15 +772,69 @@ __SYSCALL(__NR_pkey_alloc, sys_pkey_alloc) · 46 unmodified lines
734772 __SYSCALL(__NR_pkey_free, sys_pkey_free)
735773 #define __NR_statx 291
736774 __SYSCALL(__NR_statx, sys_statx)
775+#if defined(__ARCH_WANT_TIME32_SYSCALLS) || __BITS_PER_LONG != 32
737776 #define __NR_io_pgetevents 292
738−__SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents)
777+__SC_COMP_3264(__NR_io_pgetevents, sys_io_pgetevents_time32, sys_io_pgetevents, compat_sys_io_pgetevents)
778+#endif
739779 #define __NR_rseq 293
740780 __SYSCALL(__NR_rseq, sys_rseq)
741781 #define __NR_kexec_file_load 294
742782 __SYSCALL(__NR_kexec_file_load, sys_kexec_file_load)
783+/* 295 through 402 are unassigned to sync up with generic numbers, don't use */
784+#if __BITS_PER_LONG == 32
785+#define __NR_clock_gettime64 403
786+__SYSCALL(__NR_clock_gettime64, sys_clock_gettime)
787+#define __NR_clock_settime64 404
788+__SYSCALL(__NR_clock_settime64, sys_clock_settime)
789+#define __NR_clock_adjtime64 405
790+__SYSCALL(__NR_clock_adjtime64, sys_clock_adjtime)
791+#define __NR_clock_getres_time64 406
792+__SYSCALL(__NR_clock_getres_time64, sys_clock_getres)
793+#define __NR_clock_nanosleep_time64 407
794+__SYSCALL(__NR_clock_nanosleep_time64, sys_clock_nanosleep)
795+#define __NR_timer_gettime64 408
796+__SYSCALL(__NR_timer_gettime64, sys_timer_gettime)
797+#define __NR_timer_settime64 409
798+__SYSCALL(__NR_timer_settime64, sys_timer_settime)
799+#define __NR_timerfd_gettime64 410
800+__SYSCALL(__NR_timerfd_gettime64, sys_timerfd_gettime)
801+#define __NR_timerfd_settime64 411
802+__SYSCALL(__NR_timerfd_settime64, sys_timerfd_settime)
803+#define __NR_utimensat_time64 412
804+__SYSCALL(__NR_utimensat_time64, sys_utimensat)
805+#define __NR_pselect6_time64 413
806+__SC_COMP(__NR_pselect6_time64, sys_pselect6, compat_sys_pselect6_time64)
807+#define __NR_ppoll_time64 414
808+__SC_COMP(__NR_ppoll_time64, sys_ppoll, compat_sys_ppoll_time64)
809+#define __NR_io_pgetevents_time64 416
810+__SYSCALL(__NR_io_pgetevents_time64, sys_io_pgetevents)
811+#define __NR_recvmmsg_time64 417
812+__SC_COMP(__NR_recvmmsg_time64, sys_recvmmsg, compat_sys_recvmmsg_time64)
813+#define __NR_mq_timedsend_time64 418
814+__SYSCALL(__NR_mq_timedsend_time64, sys_mq_timedsend)
815+#define __NR_mq_timedreceive_time64 419
816+__SYSCALL(__NR_mq_timedreceive_time64, sys_mq_timedreceive)
817+#define __NR_semtimedop_time64 420
818+__SYSCALL(__NR_semtimedop_time64, sys_semtimedop)
819+#define __NR_rt_sigtimedwait_time64 421
820+__SC_COMP(__NR_rt_sigtimedwait_time64, sys_rt_sigtimedwait, compat_sys_rt_sigtimedwait_time64)
821+#define __NR_futex_time64 422
822+__SYSCALL(__NR_futex_time64, sys_futex)
823+#define __NR_sched_rr_get_interval_time64 423
824+__SYSCALL(__NR_sched_rr_get_interval_time64, sys_sched_rr_get_interval)
825+#endif
826+
827+#define __NR_pidfd_send_signal 424
828+__SYSCALL(__NR_pidfd_send_signal, sys_pidfd_send_signal)
829+#define __NR_io_uring_setup 425
830+__SYSCALL(__NR_io_uring_setup, sys_io_uring_setup)
831+#define __NR_io_uring_enter 426
832+__SYSCALL(__NR_io_uring_enter, sys_io_uring_enter)
833+#define __NR_io_uring_register 427
834+__SYSCALL(__NR_io_uring_register, sys_io_uring_register)
743835
744836 #undef __NR_syscalls
745−#define __NR_syscalls 295
837+#define __NR_syscalls 428
746838
747839 /*
748840 * 32 bit systems traditionally used different
include/uapi/drm/drm_fourcc.h+29−7
@@ -162,23 +162,29 @@ extern "C" { · 161 unmodified lines
162162 #define DRM_FORMAT_VYUY fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
163163
164164 #define DRM_FORMAT_AYUV fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
165−#define DRM_FORMAT_XYUV8888 fourcc_code('X', 'Y', 'U', 'V') /* [31:0] X:Y:Cb:Cr 8:8:8:8 little endian */
165+#define DRM_FORMAT_XYUV8888 fourcc_code('X', 'Y', 'U', 'V') /* [31:0] X:Y:Cb:Cr 8:8:8:8 little endian */
166+#define DRM_FORMAT_VUY888 fourcc_code('V', 'U', '2', '4') /* [23:0] Cr:Cb:Y 8:8:8 little endian */
167+#define DRM_FORMAT_VUY101010 fourcc_code('V', 'U', '3', '0') /* Y followed by U then V, 10:10:10. Non-linear modifier only */
166168
167169 /*
168170 * packed Y2xx indicate for each component, xx valid data occupy msb
169171 * 16-xx padding occupy lsb
170172 */
171−#define DRM_FORMAT_Y210 fourcc_code('Y', '2', '1', '0') /* [63:0] Y0:x:Cb0:x:Y1:x:Cr1:x 10:6:10:6:10:6:10:6 little endian per 2 Y pixels */
172−#define DRM_FORMAT_Y212 fourcc_code('Y', '2', '1', '2') /* [63:0] Y0:x:Cb0:x:Y1:x:Cr1:x 12:4:12:4:12:4:12:4 little endian per 2 Y pixels */
173−#define DRM_FORMAT_Y216 fourcc_code('Y', '2', '1', '6') /* [63:0] Y0:Cb0:Y1:Cr1 16:16:16:16 little endian per 2 Y pixels */
173+#define DRM_FORMAT_Y210 fourcc_code('Y', '2', '1', '0') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 10:6:10:6:10:6:10:6 little endian per 2 Y pixels */
174+#define DRM_FORMAT_Y212 fourcc_code('Y', '2', '1', '2') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 12:4:12:4:12:4:12:4 little endian per 2 Y pixels */
175+#define DRM_FORMAT_Y216 fourcc_code('Y', '2', '1', '6') /* [63:0] Cr0:Y1:Cb0:Y0 16:16:16:16 little endian per 2 Y pixels */
174176
175177 /*
176178 * packed Y4xx indicate for each component, xx valid data occupy msb
177179 * 16-xx padding occupy lsb except Y410
178180 */
179−#define DRM_FORMAT_Y410 fourcc_code('Y', '4', '1', '0') /* [31:0] X:V:Y:U 2:10:10:10 little endian */
180−#define DRM_FORMAT_Y412 fourcc_code('Y', '4', '1', '2') /* [63:0] X:x:V:x:Y:x:U:x 12:4:12:4:12:4:12:4 little endian */
181−#define DRM_FORMAT_Y416 fourcc_code('Y', '4', '1', '6') /* [63:0] X:V:Y:U 16:16:16:16 little endian */
181+#define DRM_FORMAT_Y410 fourcc_code('Y', '4', '1', '0') /* [31:0] A:Cr:Y:Cb 2:10:10:10 little endian */
182+#define DRM_FORMAT_Y412 fourcc_code('Y', '4', '1', '2') /* [63:0] A:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
183+#define DRM_FORMAT_Y416 fourcc_code('Y', '4', '1', '6') /* [63:0] A:Cr:Y:Cb 16:16:16:16 little endian */
184+
185+#define DRM_FORMAT_XVYU2101010 fourcc_code('X', 'V', '3', '0') /* [31:0] X:Cr:Y:Cb 2:10:10:10 little endian */
186+#define DRM_FORMAT_XVYU12_16161616 fourcc_code('X', 'V', '3', '6') /* [63:0] X:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
187+#define DRM_FORMAT_XVYU16161616 fourcc_code('X', 'V', '4', '8') /* [63:0] X:Cr:Y:Cb 16:16:16:16 little endian */
182188
183189 /*
184190 * packed YCbCr420 2x2 tiled formats
@@ -194,6 +200,15 @@ extern "C" { · 9 unmodified lines
194200 /* [63:0] X3:X2:Y3:Cr0:Y2:X1:X0:Y1:Cb0:Y0 1:1:10:10:10:1:1:10:10:10 little endian */
195201 #define DRM_FORMAT_X0L2 fourcc_code('X', '0', 'L', '2')
196202
203+/*
204+ * 1-plane YUV 4:2:0
205+ * In these formats, the component ordering is specified (Y, followed by U
206+ * then V), but the exact Linear layout is undefined.
207+ * These formats can only be used with a non-Linear modifier.
208+ */
209+#define DRM_FORMAT_YUV420_8BIT fourcc_code('Y', 'U', '0', '8')
210+#define DRM_FORMAT_YUV420_10BIT fourcc_code('Y', 'U', '1', '0')
211+
197212 /*
198213 * 2 plane RGB + A
199214 * index 0 = RGB plane, same format as the corresponding non _A8 format has
@@ -222,6 +237,13 @@ extern "C" { · 22 unmodified lines
222237 #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
223238 #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
224239
240+/*
241+ * 2 plane YCbCr MSB aligned
242+ * index 0 = Y plane, [15:0] Y:x [10:6] little endian
243+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
244+ */
245+#define DRM_FORMAT_P210 fourcc_code('P', '2', '1', '0') /* 2x1 subsampled Cr:Cb plane, 10 bit per channel */
246+
225247 /*
226248 * 2 plane YCbCr MSB aligned
227249 * index 0 = Y plane, [15:0] Y:x [10:6] little endian
include/uapi/linux/android/binder.h+19−0
@@ -41,6 +41,14 @@ enum { · 40 unmodified lines
4141 enum {
4242 FLAT_BINDER_FLAG_PRIORITY_MASK = 0xff,
4343 FLAT_BINDER_FLAG_ACCEPTS_FDS = 0x100,
44+
45+ /**
46+ * @FLAT_BINDER_FLAG_TXN_SECURITY_CTX: request security contexts
47+ *
48+ * Only when set, causes senders to include their security
49+ * context
50+ */
51+ FLAT_BINDER_FLAG_TXN_SECURITY_CTX = 0x1000,
4452 };
4553
4654 #ifdef BINDER_IPC_32BIT
@@ -218,6 +226,7 @@ struct binder_node_info_for_ref { · 171 unmodified lines
218226 #define BINDER_VERSION _IOWR('b', 9, struct binder_version)
219227 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
220228 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
229+#define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
221230
222231 /*
223232 * NOTE: Two special error codes you should check for when calling
@@ -276,6 +285,11 @@ struct binder_transaction_data { · 52 unmodified lines
276285 } data;
277286 };
278287
288+struct binder_transaction_data_secctx {
289+ struct binder_transaction_data transaction_data;
290+ binder_uintptr_t secctx;
291+};
292+
279293 struct binder_transaction_data_sg {
280294 struct binder_transaction_data transaction_data;
281295 binder_size_t buffers_size;
@@ -311,6 +325,11 @@ enum binder_driver_return_protocol { · 29 unmodified lines
311325 BR_OK = _IO('r', 1),
312326 /* No parameters! */
313327
328+ BR_TRANSACTION_SEC_CTX = _IOR('r', 2,
329+ struct binder_transaction_data_secctx),
330+ /*
331+ * binder_transaction_data_secctx: the received command.
332+ */
314333 BR_TRANSACTION = _IOR('r', 2, struct binder_transaction_data),
315334 BR_REPLY = _IOR('r', 3, struct binder_transaction_data),
316335 /*
include/uapi/linux/auto_fs.h+1−1
@@ -23,7 +23,7 @@ · 22 unmodified lines
2323 #define AUTOFS_MIN_PROTO_VERSION 3
2424 #define AUTOFS_MAX_PROTO_VERSION 5
2525
26−#define AUTOFS_PROTO_SUBVERSION 4
26+#define AUTOFS_PROTO_SUBVERSION 5
2727
2828 /*
2929 * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
include/uapi/linux/batadv_packet.h+2−2
@@ -1,5 +1,5 @@
11 /* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) */
2−/* Copyright (C) 2007-2018 B.A.T.M.A.N. contributors:
2+/* Copyright (C) 2007-2019 B.A.T.M.A.N. contributors:
33 *
44 * Marek Lindner, Simon Wunderlich
55 *
@@ -229,7 +229,7 @@ struct batadv_ogm_packet { · 223 unmodified lines
229229 * @packet_type: batman-adv packet type, part of the general header
230230 * @version: batman-adv protocol version, part of the general header
231231 * @ttl: time to live for this packet, part of the general header
232− * @flags: reseved for routing relevant flags - currently always 0
232+ * @flags: reserved for routing relevant flags - currently always 0
233233 * @seqno: sequence number
234234 * @orig: originator mac address
235235 * @tvlv_len: length of the appended tvlv buffer (in bytes)
include/uapi/linux/batman_adv.h+186−6
@@ -1,5 +1,5 @@
11 /* SPDX-License-Identifier: MIT */
2−/* Copyright (C) 2016-2018 B.A.T.M.A.N. contributors:
2+/* Copyright (C) 2016-2019 B.A.T.M.A.N. contributors:
33 *
44 * Matthias Schiffer
55 *
@@ -27,6 +27,7 @@ · 21 unmodified lines
2727
2828 #define BATADV_NL_NAME "batadv"
2929
30+#define BATADV_NL_MCAST_GROUP_CONFIG "config"
3031 #define BATADV_NL_MCAST_GROUP_TPMETER "tpmeter"
3132
3233 /**
@@ -138,6 +139,20 @@ enum batadv_mcast_flags_priv { · 105 unmodified lines
138139 BATADV_MCAST_FLAGS_QUERIER_IPV6_SHADOWING = (1 << 4),
139140 };
140141
142+/**
143+ * enum batadv_gw_modes - gateway mode of node
144+ */
145+enum batadv_gw_modes {
146+ /** @BATADV_GW_MODE_OFF: gw mode disabled */
147+ BATADV_GW_MODE_OFF,
148+
149+ /** @BATADV_GW_MODE_CLIENT: send DHCP requests to gw servers */
150+ BATADV_GW_MODE_CLIENT,
151+
152+ /** @BATADV_GW_MODE_SERVER: announce itself as gatway server */
153+ BATADV_GW_MODE_SERVER,
154+};
155+
141156 /**
142157 * enum batadv_nl_attrs - batman-adv netlink attributes
143158 */
@@ -344,6 +359,138 @@ enum batadv_nl_attrs { · 200 unmodified lines
344359 */
345360 BATADV_ATTR_MCAST_FLAGS_PRIV,
346361
362+ /**
363+ * @BATADV_ATTR_VLANID: VLAN id on top of soft interface
364+ */
365+ BATADV_ATTR_VLANID,
366+
367+ /**
368+ * @BATADV_ATTR_AGGREGATED_OGMS_ENABLED: whether the batman protocol
369+ * messages of the mesh interface shall be aggregated or not.
370+ */
371+ BATADV_ATTR_AGGREGATED_OGMS_ENABLED,
372+
373+ /**
374+ * @BATADV_ATTR_AP_ISOLATION_ENABLED: whether the data traffic going
375+ * from a wireless client to another wireless client will be silently
376+ * dropped.
377+ */
378+ BATADV_ATTR_AP_ISOLATION_ENABLED,
379+
380+ /**
381+ * @BATADV_ATTR_ISOLATION_MARK: the isolation mark which is used to
382+ * classify clients as "isolated" by the Extended Isolation feature.
383+ */
384+ BATADV_ATTR_ISOLATION_MARK,
385+
386+ /**
387+ * @BATADV_ATTR_ISOLATION_MASK: the isolation (bit)mask which is used to
388+ * classify clients as "isolated" by the Extended Isolation feature.
389+ */
390+ BATADV_ATTR_ISOLATION_MASK,
391+
392+ /**
393+ * @BATADV_ATTR_BONDING_ENABLED: whether the data traffic going through
394+ * the mesh will be sent using multiple interfaces at the same time.
395+ */
396+ BATADV_ATTR_BONDING_ENABLED,
397+
398+ /**
399+ * @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED: whether the bridge loop
400+ * avoidance feature is enabled. This feature detects and avoids loops
401+ * between the mesh and devices bridged with the soft interface
402+ */
403+ BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED,
404+
405+ /**
406+ * @BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED: whether the distributed
407+ * arp table feature is enabled. This feature uses a distributed hash
408+ * table to answer ARP requests without flooding the request through
409+ * the whole mesh.
410+ */
411+ BATADV_ATTR_DISTRIBUTED_ARP_TABLE_ENABLED,
412+
413+ /**
414+ * @BATADV_ATTR_FRAGMENTATION_ENABLED: whether the data traffic going
415+ * through the mesh will be fragmented or silently discarded if the
416+ * packet size exceeds the outgoing interface MTU.
417+ */
418+ BATADV_ATTR_FRAGMENTATION_ENABLED,
419+
420+ /**
421+ * @BATADV_ATTR_GW_BANDWIDTH_DOWN: defines the download bandwidth which
422+ * is propagated by this node if %BATADV_ATTR_GW_BANDWIDTH_MODE was set
423+ * to 'server'.
424+ */
425+ BATADV_ATTR_GW_BANDWIDTH_DOWN,
426+
427+ /**
428+ * @BATADV_ATTR_GW_BANDWIDTH_UP: defines the upload bandwidth which
429+ * is propagated by this node if %BATADV_ATTR_GW_BANDWIDTH_MODE was set
430+ * to 'server'.
431+ */
432+ BATADV_ATTR_GW_BANDWIDTH_UP,
433+
434+ /**
435+ * @BATADV_ATTR_GW_MODE: defines the state of the gateway features.
436+ * Possible values are specified in enum batadv_gw_modes
437+ */
438+ BATADV_ATTR_GW_MODE,
439+
440+ /**
441+ * @BATADV_ATTR_GW_SEL_CLASS: defines the selection criteria this node
442+ * will use to choose a gateway if gw_mode was set to 'client'.
443+ */
444+ BATADV_ATTR_GW_SEL_CLASS,
445+
446+ /**
447+ * @BATADV_ATTR_HOP_PENALTY: defines the penalty which will be applied
448+ * to an originator message's tq-field on every hop.
449+ */
450+ BATADV_ATTR_HOP_PENALTY,
451+
452+ /**
453+ * @BATADV_ATTR_LOG_LEVEL: bitmask with to define which debug messages
454+ * should be send to the debug log/trace ring buffer
455+ */
456+ BATADV_ATTR_LOG_LEVEL,
457+
458+ /**
459+ * @BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED: whether multicast
460+ * optimizations should be replaced by simple broadcast-like flooding
461+ * of multicast packets. If set to non-zero then all nodes in the mesh
462+ * are going to use classic flooding for any multicast packet with no
463+ * optimizations.
464+ */
465+ BATADV_ATTR_MULTICAST_FORCEFLOOD_ENABLED,
466+
467+ /**
468+ * @BATADV_ATTR_NETWORK_CODING_ENABLED: whether Network Coding (using
469+ * some magic to send fewer wifi packets but still the same content) is
470+ * enabled or not.
471+ */
472+ BATADV_ATTR_NETWORK_CODING_ENABLED,
473+
474+ /**
475+ * @BATADV_ATTR_ORIG_INTERVAL: defines the interval in milliseconds in
476+ * which batman sends its protocol messages.
477+ */
478+ BATADV_ATTR_ORIG_INTERVAL,
479+
480+ /**
481+ * @BATADV_ATTR_ELP_INTERVAL: defines the interval in milliseconds in
482+ * which batman emits probing packets for neighbor sensing (ELP).
483+ */
484+ BATADV_ATTR_ELP_INTERVAL,
485+
486+ /**
487+ * @BATADV_ATTR_THROUGHPUT_OVERRIDE: defines the throughput value to be
488+ * used by B.A.T.M.A.N. V when estimating the link throughput using
489+ * this interface. If the value is set to 0 then batman-adv will try to
490+ * estimate the throughput by itself.
491+ */
492+ BATADV_ATTR_THROUGHPUT_OVERRIDE,
493+
347494 /* add attributes above here, update the policy in netlink.c */
348495
349496 /**
@@ -372,10 +519,14 @@ enum batadv_nl_commands { · 22 unmodified lines
372519 BATADV_CMD_UNSPEC,
373520
374521 /**
375− * @BATADV_CMD_GET_MESH_INFO: Query basic information about batman-adv
376− * device
522+ * @BATADV_CMD_GET_MESH: Get attributes from softif/mesh
523+ */
524+ BATADV_CMD_GET_MESH,
525+
526+ /**
527+ * @BATADV_CMD_GET_MESH_INFO: Alias for @BATADV_CMD_GET_MESH
377528 */
378− BATADV_CMD_GET_MESH_INFO,
529+ BATADV_CMD_GET_MESH_INFO = BATADV_CMD_GET_MESH,
379530
380531 /**
381532 * @BATADV_CMD_TP_METER: Start a tp meter session
@@ -393,9 +544,15 @@ enum batadv_nl_commands { · 11 unmodified lines
393544 BATADV_CMD_GET_ROUTING_ALGOS,
394545
395546 /**
396− * @BATADV_CMD_GET_HARDIFS: Query list of hard interfaces
547+ * @BATADV_CMD_GET_HARDIF: Get attributes from a hardif of the
548+ * current softif
397549 */
398− BATADV_CMD_GET_HARDIFS,
550+ BATADV_CMD_GET_HARDIF,
551+
552+ /**
553+ * @BATADV_CMD_GET_HARDIFS: Alias for @BATADV_CMD_GET_HARDIF
554+ */
555+ BATADV_CMD_GET_HARDIFS = BATADV_CMD_GET_HARDIF,
399556
400557 /**
401558 * @BATADV_CMD_GET_TRANSTABLE_LOCAL: Query list of local translations
@@ -443,6 +600,29 @@ enum batadv_nl_commands { · 41 unmodified lines
443600 */
444601 BATADV_CMD_GET_MCAST_FLAGS,
445602
603+ /**
604+ * @BATADV_CMD_SET_MESH: Set attributes for softif/mesh
605+ */
606+ BATADV_CMD_SET_MESH,
607+
608+ /**
609+ * @BATADV_CMD_SET_HARDIF: Set attributes for hardif of the
610+ * current softif
611+ */
612+ BATADV_CMD_SET_HARDIF,
613+
614+ /**
615+ * @BATADV_CMD_GET_VLAN: Get attributes from a VLAN of the
616+ * current softif
617+ */
618+ BATADV_CMD_GET_VLAN,
619+
620+ /**
621+ * @BATADV_CMD_SET_VLAN: Set attributes for VLAN of the
622+ * current softif
623+ */
624+ BATADV_CMD_SET_VLAN,
625+
446626 /* add new commands above here */
447627
448628 /**
include/uapi/linux/binfmts.h+1−1
@@ -16,6 +16,6 @@ struct pt_regs; · 15 unmodified lines
1616 #define MAX_ARG_STRINGS 0x7FFFFFFF
1717
1818 /* sizeof(linux_binprm->buf) */
19−#define BINPRM_BUF_SIZE 128
19+#define BINPRM_BUF_SIZE 256
2020
2121 #endif /* _UAPI_LINUX_BINFMTS_H */
include/uapi/linux/bpf.h+107−9
@@ -14,6 +14,7 @@ · 13 unmodified lines
1414 /* Extended instruction set based on top of classic BPF */
1515
1616 /* instruction classes */
17+#define BPF_JMP32 0x06 /* jmp mode in word width */
1718 #define BPF_ALU64 0x07 /* alu mode in double word width */
1819
1920 /* ld/ldx fields */
@@ -266,6 +267,7 @@ enum bpf_attach_type { · 246 unmodified lines
266267 #define BPF_ANY 0 /* create new element or update existing */
267268 #define BPF_NOEXIST 1 /* create new element if it didn't exist */
268269 #define BPF_EXIST 2 /* update existing element */
270+#define BPF_F_LOCK 4 /* spin_lock-ed map_lookup/map_update */
269271
270272 /* flags for BPF_MAP_CREATE command */
271273 #define BPF_F_NO_PREALLOC (1U << 0)
@@ -2014,6 +2016,19 @@ union bpf_attr { · 1742 unmodified lines
20142016 * Only works if *skb* contains an IPv6 packet. Insert a
20152017 * Segment Routing Header (**struct ipv6_sr_hdr**) inside
20162018 * the IPv6 header.
2019+ * **BPF_LWT_ENCAP_IP**
2020+ * IP encapsulation (GRE/GUE/IPIP/etc). The outer header
2021+ * must be IPv4 or IPv6, followed by zero or more
2022+ * additional headers, up to LWT_BPF_MAX_HEADROOM total
2023+ * bytes in all prepended headers. Please note that
2024+ * if skb_is_gso(skb) is true, no more than two headers
2025+ * can be prepended, and the inner header, if present,
2026+ * should be either GRE or UDP/GUE.
2027+ *
2028+ * BPF_LWT_ENCAP_SEG6*** types can be called by bpf programs of
2029+ * type BPF_PROG_TYPE_LWT_IN; BPF_LWT_ENCAP_IP type can be called
2030+ * by bpf programs of types BPF_PROG_TYPE_LWT_IN and
2031+ * BPF_PROG_TYPE_LWT_XMIT.
20172032 *
20182033 * A call to this helper is susceptible to change the underlaying
20192034 * packet buffer. Therefore, at load time, all checks on pointers
@@ -2327,6 +2342,30 @@ union bpf_attr { · 307 unmodified lines
23272342 * "**y**".
23282343 * Return
23292344 * 0
2345+ *
2346+ * struct bpf_sock *bpf_sk_fullsock(struct bpf_sock *sk)
2347+ * Description
2348+ * This helper gets a **struct bpf_sock** pointer such
2349+ * that all the fields in bpf_sock can be accessed.
2350+ * Return
2351+ * A **struct bpf_sock** pointer on success, or NULL in
2352+ * case of failure.
2353+ *
2354+ * struct bpf_tcp_sock *bpf_tcp_sock(struct bpf_sock *sk)
2355+ * Description
2356+ * This helper gets a **struct bpf_tcp_sock** pointer from a
2357+ * **struct bpf_sock** pointer.
2358+ *
2359+ * Return
2360+ * A **struct bpf_tcp_sock** pointer on success, or NULL in
2361+ * case of failure.
2362+ *
2363+ * int bpf_skb_ecn_set_ce(struct sk_buf *skb)
2364+ * Description
2365+ * Sets ECN of IP header to ce (congestion encountered) if
2366+ * current value is ect (ECN capable). Works with IPv6 and IPv4.
2367+ * Return
2368+ * 1 if set, 0 if not set.
23302369 */
23312370 #define __BPF_FUNC_MAPPER(FN) \
23322371 FN(unspec), \
@@ -2421,7 +2460,12 @@ union bpf_attr { · 88 unmodified lines
24212460 FN(map_peek_elem), \
24222461 FN(msg_push_data), \
24232462 FN(msg_pop_data), \
2424− FN(rc_pointer_rel),
2463+ FN(rc_pointer_rel), \
2464+ FN(spin_lock), \
2465+ FN(spin_unlock), \
2466+ FN(sk_fullsock), \
2467+ FN(tcp_sock), \
2468+ FN(skb_ecn_set_ce),
24252469
24262470 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
24272471 * function eBPF program intends to call
@@ -2494,7 +2538,8 @@ enum bpf_hdr_start_off { · 66 unmodified lines
24942538 /* Encapsulation type for BPF_FUNC_lwt_push_encap helper. */
24952539 enum bpf_lwt_encap_mode {
24962540 BPF_LWT_ENCAP_SEG6,
2497− BPF_LWT_ENCAP_SEG6_INLINE
2541+ BPF_LWT_ENCAP_SEG6_INLINE,
2542+ BPF_LWT_ENCAP_IP,
24982543 };
24992544
25002545 #define __bpf_md_ptr(type, name) \
@@ -2540,6 +2585,8 @@ struct __sk_buff { · 39 unmodified lines
25402585 __bpf_md_ptr(struct bpf_flow_keys *, flow_keys);
25412586 __u64 tstamp;
25422587 __u32 wire_len;
2588+ __u32 gso_segs;
2589+ __bpf_md_ptr(struct bpf_sock *, sk);
25432590 };
25442591
25452592 struct bpf_tunnel_key {
@@ -2581,7 +2628,15 @@ enum bpf_ret_code { · 35 unmodified lines
25812628 BPF_DROP = 2,
25822629 /* 3-6 reserved */
25832630 BPF_REDIRECT = 7,
2584− /* >127 are reserved for prog type specific return codes */
2631+ /* >127 are reserved for prog type specific return codes.
2632+ *
2633+ * BPF_LWT_REROUTE: used by BPF_PROG_TYPE_LWT_IN and
2634+ * BPF_PROG_TYPE_LWT_XMIT to indicate that skb had been
2635+ * changed and should be routed based on its new L3 header.
2636+ * (This is an L3 redirect, as opposed to L2 redirect
2637+ * represented by BPF_REDIRECT above).
2638+ */
2639+ BPF_LWT_REROUTE = 128,
25852640 };
25862641
25872642 struct bpf_sock {
@@ -2591,14 +2646,52 @@ struct bpf_sock { · 3 unmodified lines
25912646 __u32 protocol;
25922647 __u32 mark;
25932648 __u32 priority;
2594− __u32 src_ip4; /* Allows 1,2,4-byte read.
2595− * Stored in network byte order.
2649+ /* IP address also allows 1 and 2 bytes access */
2650+ __u32 src_ip4;
2651+ __u32 src_ip6[4];
2652+ __u32 src_port; /* host byte order */
2653+ __u32 dst_port; /* network byte order */
2654+ __u32 dst_ip4;
2655+ __u32 dst_ip6[4];
2656+ __u32 state;
2657+};
2658+
2659+struct bpf_tcp_sock {
2660+ __u32 snd_cwnd; /* Sending congestion window */
2661+ __u32 srtt_us; /* smoothed round trip time << 3 in usecs */
2662+ __u32 rtt_min;
2663+ __u32 snd_ssthresh; /* Slow start size threshold */
2664+ __u32 rcv_nxt; /* What we want to receive next */
2665+ __u32 snd_nxt; /* Next sequence we send */
2666+ __u32 snd_una; /* First byte we want an ack for */
2667+ __u32 mss_cache; /* Cached effective mss, not including SACKS */
2668+ __u32 ecn_flags; /* ECN status bits. */
2669+ __u32 rate_delivered; /* saved rate sample: packets delivered */
2670+ __u32 rate_interval_us; /* saved rate sample: time elapsed */
2671+ __u32 packets_out; /* Packets which are "in flight" */
2672+ __u32 retrans_out; /* Retransmitted packets out */
2673+ __u32 total_retrans; /* Total retransmits for entire connection */
2674+ __u32 segs_in; /* RFC4898 tcpEStatsPerfSegsIn
2675+ * total number of segments in.
25962676 */
2597− __u32 src_ip6[4]; /* Allows 1,2,4-byte read.
2598− * Stored in network byte order.
2677+ __u32 data_segs_in; /* RFC4898 tcpEStatsPerfDataSegsIn
2678+ * total number of data segments in.
25992679 */
2600− __u32 src_port; /* Allows 4-byte read.
2601− * Stored in host byte order
2680+ __u32 segs_out; /* RFC4898 tcpEStatsPerfSegsOut
2681+ * The total number of segments sent.
2682+ */
2683+ __u32 data_segs_out; /* RFC4898 tcpEStatsPerfDataSegsOut
2684+ * total number of data segments sent.
2685+ */
2686+ __u32 lost_out; /* Lost packets */
2687+ __u32 sacked_out; /* SACK'd packets */
2688+ __u64 bytes_received; /* RFC4898 tcpEStatsAppHCThruOctetsReceived
2689+ * sum(delta(rcv_nxt)), or how many bytes
2690+ * were acked.
2691+ */
2692+ __u64 bytes_acked; /* RFC4898 tcpEStatsAppHCThruOctetsAcked
2693+ * sum(delta(snd_una)), or how many bytes
2694+ * were acked.
26022695 */
26032696 };
26042697
@@ -2728,6 +2821,8 @@ struct bpf_prog_info { · 123 unmodified lines
27282821 __u32 jited_line_info_rec_size;
27292822 __u32 nr_prog_tags;
27302823 __aligned_u64 prog_tags;
2824+ __u64 run_time_ns;
2825+ __u64 run_cnt;
27312826 } __attribute__((aligned(8)));
27322827
27332828 struct bpf_map_info {
@@ -3054,4 +3149,7 @@ struct bpf_line_info { · 320 unmodified lines
30543149 __u32 line_col;
30553150 };
30563151
3152+struct bpf_spin_lock {
3153+ __u32 val;
3154+};
30573155 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/btrfs.h+2−0
@@ -837,6 +837,8 @@ enum btrfs_err_code { · 836 unmodified lines
837837 struct btrfs_ioctl_vol_args)
838838 #define BTRFS_IOC_SCAN_DEV _IOW(BTRFS_IOCTL_MAGIC, 4, \
839839 struct btrfs_ioctl_vol_args)
840+#define BTRFS_IOC_FORGET_DEV _IOW(BTRFS_IOCTL_MAGIC, 5, \
841+ struct btrfs_ioctl_vol_args)
840842 /* trans start and trans end are dangerous, and only for
841843 * use by applications that know how to avoid the
842844 * resulting deadlocks
include/uapi/linux/devlink.h+47−0
@@ -89,6 +89,22 @@ enum devlink_command { · 88 unmodified lines
8989 DEVLINK_CMD_REGION_DEL,
9090 DEVLINK_CMD_REGION_READ,
9191
92+ DEVLINK_CMD_PORT_PARAM_GET, /* can dump */
93+ DEVLINK_CMD_PORT_PARAM_SET,
94+ DEVLINK_CMD_PORT_PARAM_NEW,
95+ DEVLINK_CMD_PORT_PARAM_DEL,
96+
97+ DEVLINK_CMD_INFO_GET, /* can dump */
98+
99+ DEVLINK_CMD_HEALTH_REPORTER_GET,
100+ DEVLINK_CMD_HEALTH_REPORTER_SET,
101+ DEVLINK_CMD_HEALTH_REPORTER_RECOVER,
102+ DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE,
103+ DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET,
104+ DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR,
105+
106+ DEVLINK_CMD_FLASH_UPDATE,
107+
92108 /* add new commands above here */
93109 __DEVLINK_CMD_MAX,
94110 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -285,6 +301,37 @@ enum devlink_attr { · 190 unmodified lines
285301 DEVLINK_ATTR_REGION_CHUNK_ADDR, /* u64 */
286302 DEVLINK_ATTR_REGION_CHUNK_LEN, /* u64 */
287303
304+ DEVLINK_ATTR_INFO_DRIVER_NAME, /* string */
305+ DEVLINK_ATTR_INFO_SERIAL_NUMBER, /* string */
306+ DEVLINK_ATTR_INFO_VERSION_FIXED, /* nested */
307+ DEVLINK_ATTR_INFO_VERSION_RUNNING, /* nested */
308+ DEVLINK_ATTR_INFO_VERSION_STORED, /* nested */
309+ DEVLINK_ATTR_INFO_VERSION_NAME, /* string */
310+ DEVLINK_ATTR_INFO_VERSION_VALUE, /* string */
311+
312+ DEVLINK_ATTR_SB_POOL_CELL_SIZE, /* u32 */
313+
314+ DEVLINK_ATTR_FMSG, /* nested */
315+ DEVLINK_ATTR_FMSG_OBJ_NEST_START, /* flag */
316+ DEVLINK_ATTR_FMSG_PAIR_NEST_START, /* flag */
317+ DEVLINK_ATTR_FMSG_ARR_NEST_START, /* flag */
318+ DEVLINK_ATTR_FMSG_NEST_END, /* flag */
319+ DEVLINK_ATTR_FMSG_OBJ_NAME, /* string */
320+ DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE, /* u8 */
321+ DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA, /* dynamic */
322+
323+ DEVLINK_ATTR_HEALTH_REPORTER, /* nested */
324+ DEVLINK_ATTR_HEALTH_REPORTER_NAME, /* string */
325+ DEVLINK_ATTR_HEALTH_REPORTER_STATE, /* u8 */
326+ DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT, /* u64 */
327+ DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT, /* u64 */
328+ DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS, /* u64 */
329+ DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD, /* u64 */
330+ DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER, /* u8 */
331+
332+ DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME, /* string */
333+ DEVLINK_ATTR_FLASH_UPDATE_COMPONENT, /* string */
334+
288335 /* add new attributes above here, update the policy in devlink.c */
289336
290337 __DEVLINK_ATTR_MAX,
include/uapi/linux/dm-ioctl.h+2−2
@@ -270,9 +270,9 @@ enum { · 269 unmodified lines
270270 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
271271
272272 #define DM_VERSION_MAJOR 4
273−#define DM_VERSION_MINOR 39
273+#define DM_VERSION_MINOR 40
274274 #define DM_VERSION_PATCHLEVEL 0
275−#define DM_VERSION_EXTRA "-ioctl (2018-04-03)"
275+#define DM_VERSION_EXTRA "-ioctl (2019-01-18)"
276276
277277 /* Status bits */
278278 #define DM_READONLY_FLAG (1 << 0) /* In/Out */
include/uapi/linux/elf.h+2−0
@@ -421,6 +421,8 @@ typedef struct elf64_shdr { · 420 unmodified lines
421421 #define NT_ARM_SYSTEM_CALL 0x404 /* ARM system call number */
422422 #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
423423 #define NT_ARM_PAC_MASK 0x406 /* ARM pointer authentication code masks */
424+#define NT_ARM_PACA_KEYS 0x407 /* ARM pointer authentication address keys */
425+#define NT_ARM_PACG_KEYS 0x408 /* ARM pointer authentication generic key */
424426 #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
425427 #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
426428 #define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
include/uapi/linux/errqueue.h+5−0
@@ -3,6 +3,7 @@ · 2 unmodified lines
33 #define _UAPI_LINUX_ERRQUEUE_H
44
55 #include <linux/types.h>
6+#include <linux/time_types.h>
67
78 struct sock_extended_err {
89 __u32 ee_errno;
@@ -41,6 +42,10 @@ struct scm_timestamping { · 32 unmodified lines
4142 struct timespec ts[3];
4243 };
4344
45+struct scm_timestamping64 {
46+ struct __kernel_timespec ts[3];
47+};
48+
4449 /* The type of scm_timestamping, passed in sock_extended_err ee_info.
4550 * This defines the type of ts[0]. For SCM_TSTAMP_SND only, if ts[0]
4651 * is zero, then this is a hardware timestamp and recorded in ts[2].
include/uapi/linux/ethtool.h+26−9
@@ -1432,6 +1432,13 @@ enum ethtool_link_mode_bit_indices { · 1431 unmodified lines
14321432 ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
14331433 ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
14341434 ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
1435+
1436+ /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
1437+ * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
1438+ * macro for bits > 31. The only way to use indices > 31 is to
1439+ * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API.
1440+ */
1441+
14351442 ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
14361443 ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
14371444 ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
@@ -1453,15 +1460,24 @@ enum ethtool_link_mode_bit_indices { · 15 unmodified lines
14531460 ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49,
14541461 ETHTOOL_LINK_MODE_FEC_RS_BIT = 50,
14551462 ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51,
1456−
1457− /* Last allowed bit for __ETHTOOL_LINK_MODE_LEGACY_MASK is bit
1458− * 31. Please do NOT define any SUPPORTED_* or ADVERTISED_*
1459− * macro for bits > 31. The only way to use indices > 31 is to
1460− * use the new ETHTOOL_GLINKSETTINGS/ETHTOOL_SLINKSETTINGS API.
1461− */
1462−
1463− __ETHTOOL_LINK_MODE_LAST
1464− = ETHTOOL_LINK_MODE_FEC_BASER_BIT,
1463+ ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52,
1464+ ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53,
1465+ ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54,
1466+ ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55,
1467+ ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56,
1468+ ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57,
1469+ ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58,
1470+ ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59,
1471+ ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60,
1472+ ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61,
1473+ ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62,
1474+ ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63,
1475+ ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64,
1476+ ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65,
1477+ ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66,
1478+
1479+ /* must be last entry */
1480+ __ETHTOOL_LINK_MODE_MASK_NBITS
14651481 };
14661482
14671483 #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
@@ -1569,6 +1585,7 @@ enum ethtool_link_mode_bit_indices { · 101 unmodified lines
15691585 #define SPEED_50000 50000
15701586 #define SPEED_56000 56000
15711587 #define SPEED_100000 100000
1588+#define SPEED_200000 200000
15721589
15731590 #define SPEED_UNKNOWN -1
15741591
include/uapi/linux/fanotify.h+29−0
@@ -7,9 +7,16 @@ · 6 unmodified lines
77 /* the following events that user-space can register for */
88 #define FAN_ACCESS 0x00000001 /* File was accessed */
99 #define FAN_MODIFY 0x00000002 /* File was modified */
10+#define FAN_ATTRIB 0x00000004 /* Metadata changed */
1011 #define FAN_CLOSE_WRITE 0x00000008 /* Writtable file closed */
1112 #define FAN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */
1213 #define FAN_OPEN 0x00000020 /* File was opened */
14+#define FAN_MOVED_FROM 0x00000040 /* File was moved from X */
15+#define FAN_MOVED_TO 0x00000080 /* File was moved to Y */
16+#define FAN_CREATE 0x00000100 /* Subfile was created */
17+#define FAN_DELETE 0x00000200 /* Subfile was deleted */
18+#define FAN_DELETE_SELF 0x00000400 /* Self was deleted */
19+#define FAN_MOVE_SELF 0x00000800 /* Self was moved */
1320 #define FAN_OPEN_EXEC 0x00001000 /* File was opened for exec */
1421
1522 #define FAN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */
@@ -24,6 +31,7 @@ · 8 unmodified lines
2431
2532 /* helper events */
2633 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE) /* close */
34+#define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO) /* moves */
2735
2836 /* flags used for fanotify_init() */
2937 #define FAN_CLOEXEC 0x00000001
@@ -44,6 +52,7 @@ · 14 unmodified lines
4452
4553 /* Flags to determine fanotify event format */
4654 #define FAN_REPORT_TID 0x00000100 /* event->pid is thread id */
55+#define FAN_REPORT_FID 0x00000200 /* Report unique file id */
4756
4857 /* Deprecated - do not use this in programs and do not add new flags here! */
4958 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | \
@@ -106,6 +115,26 @@ struct fanotify_event_metadata { · 56 unmodified lines
106115 __s32 pid;
107116 };
108117
118+#define FAN_EVENT_INFO_TYPE_FID 1
119+
120+/* Variable length info record following event metadata */
121+struct fanotify_event_info_header {
122+ __u8 info_type;
123+ __u8 pad;
124+ __u16 len;
125+};
126+
127+/* Unique file identifier info record */
128+struct fanotify_event_info_fid {
129+ struct fanotify_event_info_header hdr;
130+ __kernel_fsid_t fsid;
131+ /*
132+ * Following is an opaque struct file_handle that can be passed as
133+ * an argument to open_by_handle_at(2).
134+ */
135+ unsigned char handle[0];
136+};
137+
109138 struct fanotify_response {
110139 __s32 fd;
111140 __u32 response;
include/uapi/linux/fcntl.h+1−0
@@ -41,6 +41,7 @@ · 40 unmodified lines
4141 #define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */
4242 #define F_SEAL_GROW 0x0004 /* prevent file from growing */
4343 #define F_SEAL_WRITE 0x0008 /* prevent writes */
44+#define F_SEAL_FUTURE_WRITE 0x0010 /* prevent future writes while mapped */
4445 /* (1U << 31) is reserved for signed error codes */
4546
4647 /*
include/uapi/linux/fuse.h+6−1
@@ -122,6 +122,9 @@ · 121 unmodified lines
122122 * - add FOPEN_CACHE_DIR
123123 * - add FUSE_MAX_PAGES, add max_pages to init_out
124124 * - add FUSE_CACHE_SYMLINKS
125+ *
126+ * 7.29
127+ * - add FUSE_NO_OPENDIR_SUPPORT flag
125128 */
126129
127130 #ifndef _LINUX_FUSE_H
@@ -157,7 +160,7 @@ · 29 unmodified lines
157160 #define FUSE_KERNEL_VERSION 7
158161
159162 /** Minor version number of this interface */
160−#define FUSE_KERNEL_MINOR_VERSION 28
163+#define FUSE_KERNEL_MINOR_VERSION 29
161164
162165 /** The node ID of the root inode */
163166 #define FUSE_ROOT_ID 1
@@ -259,6 +262,7 @@ struct fuse_file_lock { · 95 unmodified lines
259262 * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED
260263 * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages
261264 * FUSE_CACHE_SYMLINKS: cache READLINK responses
265+ * FUSE_NO_OPENDIR_SUPPORT: kernel supports zero-message opendir
262266 */
263267 #define FUSE_ASYNC_READ (1 << 0)
264268 #define FUSE_POSIX_LOCKS (1 << 1)
@@ -284,6 +288,7 @@ struct fuse_file_lock { · 19 unmodified lines
284288 #define FUSE_ABORT_ERROR (1 << 21)
285289 #define FUSE_MAX_PAGES (1 << 22)
286290 #define FUSE_CACHE_SYMLINKS (1 << 23)
291+#define FUSE_NO_OPENDIR_SUPPORT (1 << 24)
287292
288293 /**
289294 * CUSE INIT request/reply flags
include/uapi/linux/icmpv6.h+2−0
@@ -108,6 +108,8 @@ struct icmp6hdr { · 107 unmodified lines
108108 #define ICMPV6_MOBILE_PREFIX_SOL 146
109109 #define ICMPV6_MOBILE_PREFIX_ADV 147
110110
111+#define ICMPV6_MRDISC_ADV 151
112+
111113 /*
112114 * Codes for Destination Unreachable
113115 */
include/uapi/linux/if_bonding.h+24−0
@@ -117,6 +117,30 @@ struct ad_info { · 116 unmodified lines
117117 __u8 partner_system[ETH_ALEN];
118118 };
119119
120+/* Embedded inside LINK_XSTATS_TYPE_BOND */
121+enum {
122+ BOND_XSTATS_UNSPEC,
123+ BOND_XSTATS_3AD,
124+ __BOND_XSTATS_MAX
125+};
126+#define BOND_XSTATS_MAX (__BOND_XSTATS_MAX - 1)
127+
128+/* Embedded inside BOND_XSTATS_3AD */
129+enum {
130+ BOND_3AD_STAT_LACPDU_RX,
131+ BOND_3AD_STAT_LACPDU_TX,
132+ BOND_3AD_STAT_LACPDU_UNKNOWN_RX,
133+ BOND_3AD_STAT_LACPDU_ILLEGAL_RX,
134+ BOND_3AD_STAT_MARKER_RX,
135+ BOND_3AD_STAT_MARKER_TX,
136+ BOND_3AD_STAT_MARKER_RESP_RX,
137+ BOND_3AD_STAT_MARKER_RESP_TX,
138+ BOND_3AD_STAT_MARKER_UNKNOWN_RX,
139+ BOND_3AD_STAT_PAD,
140+ __BOND_3AD_STAT_MAX
141+};
142+#define BOND_3AD_STAT_MAX (__BOND_3AD_STAT_MAX - 1)
143+
120144 #endif /* _LINUX_IF_BONDING_H */
121145
122146 /*
include/uapi/linux/if_link.h+1−0
@@ -925,6 +925,7 @@ enum { · 924 unmodified lines
925925 enum {
926926 LINK_XSTATS_TYPE_UNSPEC,
927927 LINK_XSTATS_TYPE_BRIDGE,
928+ LINK_XSTATS_TYPE_BOND,
928929 __LINK_XSTATS_TYPE_MAX
929930 };
930931 #define LINK_XSTATS_TYPE_MAX (__LINK_XSTATS_TYPE_MAX - 1)
include/uapi/linux/igmp.h+1−0
@@ -93,6 +93,7 @@ struct igmpv3_query { · 92 unmodified lines
9393 #define IGMP_MTRACE_RESP 0x1e
9494 #define IGMP_MTRACE 0x1f
9595
96+#define IGMP_MRDISC_ADV 0x30 /* From RFC4286 */
9697
9798 /*
9899 * Use the BSD names for these for compatibility
include/uapi/linux/iio/types.h+7−0
@@ -46,6 +46,7 @@ enum iio_chan_type { · 45 unmodified lines
4646 IIO_GRAVITY,
4747 IIO_POSITIONRELATIVE,
4848 IIO_PHASE,
49+ IIO_MASSCONCENTRATION,
4950 };
5051
5152 enum iio_modifier {
@@ -87,6 +88,12 @@ enum iio_modifier { · 35 unmodified lines
8788 IIO_MOD_VOC,
8889 IIO_MOD_LIGHT_UV,
8990 IIO_MOD_LIGHT_DUV,
91+ IIO_MOD_PM1,
92+ IIO_MOD_PM2P5,
93+ IIO_MOD_PM4,
94+ IIO_MOD_PM10,
95+ IIO_MOD_ETHANOL,
96+ IIO_MOD_H2,
9097 };
9198
9299 enum iio_event_type {
include/uapi/linux/in.h+5−4
@@ -292,10 +292,11 @@ struct sockaddr_in { · 291 unmodified lines
292292 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
293293
294294 /* Defines for Multicast INADDR */
295−#define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */
296−#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */
297−#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */
298−#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */
295+#define INADDR_UNSPEC_GROUP 0xe0000000U /* 224.0.0.0 */
296+#define INADDR_ALLHOSTS_GROUP 0xe0000001U /* 224.0.0.1 */
297+#define INADDR_ALLRTRS_GROUP 0xe0000002U /* 224.0.0.2 */
298+#define INADDR_ALLSNOOPERS_GROUP 0xe000006aU /* 224.0.0.106 */
299+#define INADDR_MAX_LOCAL_GROUP 0xe00000ffU /* 224.0.0.255 */
299300 #endif
300301
301302 /* <asm/byteorder.h> contains the htonl type stuff.. */
include/uapi/linux/in6.h+1−0
@@ -178,6 +178,7 @@ struct in6_flowlabel_req { · 177 unmodified lines
178178 #define IPV6_JOIN_ANYCAST 27
179179 #define IPV6_LEAVE_ANYCAST 28
180180 #define IPV6_MULTICAST_ALL 29
181+#define IPV6_ROUTER_ALERT_ISOLATE 30
181182
182183 /* IPV6_MTU_DISCOVER values */
183184 #define IPV6_PMTUDISC_DONT 0
include/uapi/linux/io_uring.h+137−0
@@ -0,0 +1,137 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Header file for the io_uring interface.
4+ *
5+ * Copyright (C) 2019 Jens Axboe
6+ * Copyright (C) 2019 Christoph Hellwig
7+ */
8+#ifndef LINUX_IO_URING_H
9+#define LINUX_IO_URING_H
10+
11+#include <linux/fs.h>
12+#include <linux/types.h>
13+
14+/*
15+ * IO submission data structure (Submission Queue Entry)
16+ */
17+struct io_uring_sqe {
18+ __u8 opcode; /* type of operation for this sqe */
19+ __u8 flags; /* IOSQE_ flags */
20+ __u16 ioprio; /* ioprio for the request */
21+ __s32 fd; /* file descriptor to do IO on */
22+ __u64 off; /* offset into file */
23+ __u64 addr; /* pointer to buffer or iovecs */
24+ __u32 len; /* buffer size or number of iovecs */
25+ union {
26+ __kernel_rwf_t rw_flags;
27+ __u32 fsync_flags;
28+ __u16 poll_events;
29+ };
30+ __u64 user_data; /* data to be passed back at completion time */
31+ union {
32+ __u16 buf_index; /* index into fixed buffers, if used */
33+ __u64 __pad2[3];
34+ };
35+};
36+
37+/*
38+ * sqe->flags
39+ */
40+#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
41+
42+/*
43+ * io_uring_setup() flags
44+ */
45+#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */
46+#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */
47+#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */
48+
49+#define IORING_OP_NOP 0
50+#define IORING_OP_READV 1
51+#define IORING_OP_WRITEV 2
52+#define IORING_OP_FSYNC 3
53+#define IORING_OP_READ_FIXED 4
54+#define IORING_OP_WRITE_FIXED 5
55+#define IORING_OP_POLL_ADD 6
56+#define IORING_OP_POLL_REMOVE 7
57+
58+/*
59+ * sqe->fsync_flags
60+ */
61+#define IORING_FSYNC_DATASYNC (1U << 0)
62+
63+/*
64+ * IO completion data structure (Completion Queue Entry)
65+ */
66+struct io_uring_cqe {
67+ __u64 user_data; /* sqe->data submission passed back */
68+ __s32 res; /* result code for this event */
69+ __u32 flags;
70+};
71+
72+/*
73+ * Magic offsets for the application to mmap the data it needs
74+ */
75+#define IORING_OFF_SQ_RING 0ULL
76+#define IORING_OFF_CQ_RING 0x8000000ULL
77+#define IORING_OFF_SQES 0x10000000ULL
78+
79+/*
80+ * Filled with the offset for mmap(2)
81+ */
82+struct io_sqring_offsets {
83+ __u32 head;
84+ __u32 tail;
85+ __u32 ring_mask;
86+ __u32 ring_entries;
87+ __u32 flags;
88+ __u32 dropped;
89+ __u32 array;
90+ __u32 resv1;
91+ __u64 resv2;
92+};
93+
94+/*
95+ * sq_ring->flags
96+ */
97+#define IORING_SQ_NEED_WAKEUP (1U << 0) /* needs io_uring_enter wakeup */
98+
99+struct io_cqring_offsets {
100+ __u32 head;
101+ __u32 tail;
102+ __u32 ring_mask;
103+ __u32 ring_entries;
104+ __u32 overflow;
105+ __u32 cqes;
106+ __u64 resv[2];
107+};
108+
109+/*
110+ * io_uring_enter(2) flags
111+ */
112+#define IORING_ENTER_GETEVENTS (1U << 0)
113+#define IORING_ENTER_SQ_WAKEUP (1U << 1)
114+
115+/*
116+ * Passed in for io_uring_setup(2). Copied back with updated info on success
117+ */
118+struct io_uring_params {
119+ __u32 sq_entries;
120+ __u32 cq_entries;
121+ __u32 flags;
122+ __u32 sq_thread_cpu;
123+ __u32 sq_thread_idle;
124+ __u32 resv[5];
125+ struct io_sqring_offsets sq_off;
126+ struct io_cqring_offsets cq_off;
127+};
128+
129+/*
130+ * io_uring_register(2) opcodes and arguments
131+ */
132+#define IORING_REGISTER_BUFFERS 0
133+#define IORING_UNREGISTER_BUFFERS 1
134+#define IORING_REGISTER_FILES 2
135+#define IORING_UNREGISTER_FILES 3
136+
137+#endif
include/uapi/linux/kernel-page-flags.h+1−1
@@ -32,7 +32,7 @@ · 31 unmodified lines
3232
3333 #define KPF_KSM 21
3434 #define KPF_THP 22
35−#define KPF_BALLOON 23
35+#define KPF_OFFLINE 23
3636 #define KPF_ZERO_PAGE 24
3737 #define KPF_IDLE 25
3838 #define KPF_PGTABLE 26
include/uapi/linux/limits.h+2−2
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef _LINUX_LIMITS_H
3−#define _LINUX_LIMITS_H
2+#ifndef _UAPI_LINUX_LIMITS_H
3+#define _UAPI_LINUX_LIMITS_H
44
55 #define NR_OPEN 1024
66
include/uapi/linux/lirc.h+6−0
@@ -192,6 +192,9 @@ struct lirc_scancode { · 191 unmodified lines
192192 * @RC_PROTO_XMP: XMP protocol
193193 * @RC_PROTO_CEC: CEC protocol
194194 * @RC_PROTO_IMON: iMon Pad protocol
195+ * @RC_PROTO_RCMM12: RC-MM protocol 12 bits
196+ * @RC_PROTO_RCMM24: RC-MM protocol 24 bits
197+ * @RC_PROTO_RCMM32: RC-MM protocol 32 bits
195198 */
196199 enum rc_proto {
197200 RC_PROTO_UNKNOWN = 0,
@@ -218,6 +221,9 @@ enum rc_proto { · 20 unmodified lines
218221 RC_PROTO_XMP = 21,
219222 RC_PROTO_CEC = 22,
220223 RC_PROTO_IMON = 23,
224+ RC_PROTO_RCMM12 = 24,
225+ RC_PROTO_RCMM24 = 25,
226+ RC_PROTO_RCMM32 = 26,
221227 };
222228
223229 #endif
include/uapi/linux/mdio.h+19−0
@@ -45,6 +45,7 @@ · 44 unmodified lines
4545 #define MDIO_AN_ADVERTISE 16 /* AN advertising (base page) */
4646 #define MDIO_AN_LPA 19 /* AN LP abilities (base page) */
4747 #define MDIO_PCS_EEE_ABLE 20 /* EEE Capability register */
48+#define MDIO_PMA_NG_EXTABLE 21 /* 2.5G/5G PMA/PMD extended ability */
4849 #define MDIO_PCS_EEE_WK_ERR 22 /* EEE wake error counter */
4950 #define MDIO_PHYXS_LNSTAT 24 /* PHY XGXS lane state */
5051 #define MDIO_AN_EEE_ADV 60 /* EEE advertisement */
@@ -92,6 +93,10 @@ · 41 unmodified lines
9293 #define MDIO_CTRL1_SPEED10G (MDIO_CTRL1_SPEEDSELEXT | 0x00)
9394 /* 10PASS-TS/2BASE-TL */
9495 #define MDIO_CTRL1_SPEED10P2B (MDIO_CTRL1_SPEEDSELEXT | 0x04)
96+/* 2.5 Gb/s */
97+#define MDIO_CTRL1_SPEED2_5G (MDIO_CTRL1_SPEEDSELEXT | 0x18)
98+/* 5 Gb/s */
99+#define MDIO_CTRL1_SPEED5G (MDIO_CTRL1_SPEEDSELEXT | 0x1c)
95100
96101 /* Status register 1. */
97102 #define MDIO_STAT1_LPOWERABLE 0x0002 /* Low-power ability */
@@ -115,6 +120,7 @@ · 17 unmodified lines
115120
116121 /* Device present registers. */
117122 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
123+#define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
118124 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
119125 #define MDIO_DEVS_WIS MDIO_DEVS_PRESENT(MDIO_MMD_WIS)
120126 #define MDIO_DEVS_PCS MDIO_DEVS_PRESENT(MDIO_MMD_PCS)
@@ -123,6 +129,8 @@ · 2 unmodified lines
123129 #define MDIO_DEVS_TC MDIO_DEVS_PRESENT(MDIO_MMD_TC)
124130 #define MDIO_DEVS_AN MDIO_DEVS_PRESENT(MDIO_MMD_AN)
125131 #define MDIO_DEVS_C22EXT MDIO_DEVS_PRESENT(MDIO_MMD_C22EXT)
132+#define MDIO_DEVS_VEND1 MDIO_DEVS_PRESENT(MDIO_MMD_VEND1)
133+#define MDIO_DEVS_VEND2 MDIO_DEVS_PRESENT(MDIO_MMD_VEND2)
126134
127135 /* Control register 2. */
128136 #define MDIO_PMA_CTRL2_TYPE 0x000f /* PMA/PMD type selection */
@@ -142,6 +150,8 @@ · 13 unmodified lines
142150 #define MDIO_PMA_CTRL2_1000BKX 0x000d /* 1000BASE-KX type */
143151 #define MDIO_PMA_CTRL2_100BTX 0x000e /* 100BASE-TX type */
144152 #define MDIO_PMA_CTRL2_10BT 0x000f /* 10BASE-T type */
153+#define MDIO_PMA_CTRL2_2_5GBT 0x0030 /* 2.5GBaseT type */
154+#define MDIO_PMA_CTRL2_5GBT 0x0031 /* 5GBaseT type */
145155 #define MDIO_PCS_CTRL2_TYPE 0x0003 /* PCS type selection */
146156 #define MDIO_PCS_CTRL2_10GBR 0x0000 /* 10GBASE-R type */
147157 #define MDIO_PCS_CTRL2_10GBX 0x0001 /* 10GBASE-X type */
@@ -195,6 +205,7 @@ · 47 unmodified lines
195205 #define MDIO_PMA_EXTABLE_1000BKX 0x0040 /* 1000BASE-KX ability */
196206 #define MDIO_PMA_EXTABLE_100BTX 0x0080 /* 100BASE-TX ability */
197207 #define MDIO_PMA_EXTABLE_10BT 0x0100 /* 10BASE-T ability */
208+#define MDIO_PMA_EXTABLE_NBT 0x4000 /* 2.5/5GBASE-T ability */
198209
199210 /* PHY XGXS lane state register. */
200211 #define MDIO_PHYXS_LNSTAT_SYNC0 0x0001
@@ -231,9 +242,13 @@ · 30 unmodified lines
231242 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
232243
233244 /* AN 10GBASE-T control register. */
245+#define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080 /* Advertise 2.5GBASE-T */
246+#define MDIO_AN_10GBT_CTRL_ADV5G 0x0100 /* Advertise 5GBASE-T */
234247 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000 /* Advertise 10GBASE-T */
235248
236249 /* AN 10GBASE-T status register. */
250+#define MDIO_AN_10GBT_STAT_LP2_5G 0x0020 /* LP is 2.5GBT capable */
251+#define MDIO_AN_10GBT_STAT_LP5G 0x0040 /* LP is 5GBT capable */
237252 #define MDIO_AN_10GBT_STAT_LPTRR 0x0200 /* LP training reset req. */
238253 #define MDIO_AN_10GBT_STAT_LPLTABLE 0x0400 /* LP loop timing ability */
239254 #define MDIO_AN_10GBT_STAT_LP10G 0x0800 /* LP is 10GBT capable */
@@ -262,6 +277,10 @@ · 22 unmodified lines
262277 #define MDIO_EEE_10GKX4 0x0020 /* 10G KX4 EEE cap */
263278 #define MDIO_EEE_10GKR 0x0040 /* 10G KR EEE cap */
264279
280+/* 2.5G/5G Extended abilities register. */
281+#define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001 /* 2.5GBASET ability */
282+#define MDIO_PMA_NG_EXTABLE_5GBT 0x0002 /* 5GBASET ability */
283+
265284 /* LASI RX_ALARM control/status registers. */
266285 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001 /* PHY XS RX local fault */
267286 #define MDIO_PMA_LASI_RX_PCSLFLT 0x0008 /* PCS RX local fault */
include/uapi/linux/mman.h+4−0
@@ -12,6 +12,10 @@ · 11 unmodified lines
1212 #define OVERCOMMIT_ALWAYS 1
1313 #define OVERCOMMIT_NEVER 2
1414
15+#define MAP_SHARED 0x01 /* Share changes */
16+#define MAP_PRIVATE 0x02 /* Changes are private */
17+#define MAP_SHARED_VALIDATE 0x03 /* share + validate extension flags */
18+
1519 /*
1620 * Huge page size encoding when MAP_HUGETLB is specified, and a huge page
1721 * size other than the default is desired. See hugetlb_encode.h.
include/uapi/linux/mroute.h+8−1
@@ -28,12 +28,19 @@ · 27 unmodified lines
2828 #define MRT_TABLE (MRT_BASE+9) /* Specify mroute table ID */
2929 #define MRT_ADD_MFC_PROXY (MRT_BASE+10) /* Add a (*,*|G) mfc entry */
3030 #define MRT_DEL_MFC_PROXY (MRT_BASE+11) /* Del a (*,*|G) mfc entry */
31−#define MRT_MAX (MRT_BASE+11)
31+#define MRT_FLUSH (MRT_BASE+12) /* Flush all mfc entries and/or vifs */
32+#define MRT_MAX (MRT_BASE+12)
3233
3334 #define SIOCGETVIFCNT SIOCPROTOPRIVATE /* IP protocol privates */
3435 #define SIOCGETSGCNT (SIOCPROTOPRIVATE+1)
3536 #define SIOCGETRPF (SIOCPROTOPRIVATE+2)
3637
38+/* MRT_FLUSH optional flags */
39+#define MRT_FLUSH_MFC 1 /* Flush multicast entries */
40+#define MRT_FLUSH_MFC_STATIC 2 /* Flush static multicast entries */
41+#define MRT_FLUSH_VIFS 4 /* Flush multicast vifs */
42+#define MRT_FLUSH_VIFS_STATIC 8 /* Flush static multicast vifs */
43+
3744 #define MAXVIFS 32
3845 typedef unsigned long vifbitmap_t; /* User mode code depends on this lot */
3946 typedef unsigned short vifi_t;
include/uapi/linux/mroute6.h+8−1
@@ -31,12 +31,19 @@ · 30 unmodified lines
3131 #define MRT6_TABLE (MRT6_BASE+9) /* Specify mroute table ID */
3232 #define MRT6_ADD_MFC_PROXY (MRT6_BASE+10) /* Add a (*,*|G) mfc entry */
3333 #define MRT6_DEL_MFC_PROXY (MRT6_BASE+11) /* Del a (*,*|G) mfc entry */
34−#define MRT6_MAX (MRT6_BASE+11)
34+#define MRT6_FLUSH (MRT6_BASE+12) /* Flush all mfc entries and/or vifs */
35+#define MRT6_MAX (MRT6_BASE+12)
3536
3637 #define SIOCGETMIFCNT_IN6 SIOCPROTOPRIVATE /* IP protocol privates */
3738 #define SIOCGETSGCNT_IN6 (SIOCPROTOPRIVATE+1)
3839 #define SIOCGETRPF (SIOCPROTOPRIVATE+2)
3940
41+/* MRT6_FLUSH optional flags */
42+#define MRT6_FLUSH_MFC 1 /* Flush multicast entries */
43+#define MRT6_FLUSH_MFC_STATIC 2 /* Flush static multicast entries */
44+#define MRT6_FLUSH_MIFS 4 /* Flushing multicast vifs */
45+#define MRT6_FLUSH_MIFS_STATIC 8 /* Flush static multicast vifs */
46+
4047 #define MAXMIFS 32
4148 typedef unsigned long mifbitmap_t; /* User mode code depends on this lot */
4249 typedef unsigned short mifi_t;
include/uapi/linux/ndctl.h+1−0
@@ -243,6 +243,7 @@ struct nd_cmd_pkg { · 242 unmodified lines
243243 #define NVDIMM_FAMILY_HPE1 1
244244 #define NVDIMM_FAMILY_HPE2 2
245245 #define NVDIMM_FAMILY_MSFT 3
246+#define NVDIMM_FAMILY_HYPERV 4
246247
247248 #define ND_IOCTL_CALL _IOWR(ND_IOCTL, ND_CMD_CALL,\
248249 struct nd_cmd_pkg)
include/uapi/linux/netfilter/nf_tables.h+17−2
@@ -219,6 +219,7 @@ enum nft_chain_attributes { · 218 unmodified lines
219219 * @NFTA_RULE_POSITION: numeric handle of the previous rule (NLA_U64)
220220 * @NFTA_RULE_USERDATA: user data (NLA_BINARY, NFT_USERDATA_MAXLEN)
221221 * @NFTA_RULE_ID: uniquely identifies a rule in a transaction (NLA_U32)
222+ * @NFTA_RULE_POSITION_ID: transaction unique identifier of the previous rule (NLA_U32)
222223 */
223224 enum nft_rule_attributes {
224225 NFTA_RULE_UNSPEC,
@@ -231,6 +232,7 @@ enum nft_rule_attributes { · 6 unmodified lines
231232 NFTA_RULE_USERDATA,
232233 NFTA_RULE_PAD,
233234 NFTA_RULE_ID,
235+ NFTA_RULE_POSITION_ID,
234236 __NFTA_RULE_MAX
235237 };
236238 #define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
@@ -789,6 +791,8 @@ enum nft_exthdr_attributes { · 552 unmodified lines
789791 * @NFT_META_CGROUP: socket control group (skb->sk->sk_classid)
790792 * @NFT_META_PRANDOM: a 32bit pseudo-random number
791793 * @NFT_META_SECPATH: boolean, secpath_exists (!!skb->sp)
794+ * @NFT_META_IIFKIND: packet input interface kind name (dev->rtnl_link_ops->kind)
795+ * @NFT_META_OIFKIND: packet output interface kind name (dev->rtnl_link_ops->kind)
792796 */
793797 enum nft_meta_keys {
794798 NFT_META_LEN,
@@ -817,6 +821,8 @@ enum nft_meta_keys { · 22 unmodified lines
817821 NFT_META_CGROUP,
818822 NFT_META_PRANDOM,
819823 NFT_META_SECPATH,
824+ NFT_META_IIFKIND,
825+ NFT_META_OIFKIND,
820826 };
821827
822828 /**
@@ -871,8 +877,8 @@ enum nft_hash_attributes { · 48 unmodified lines
871877 NFTA_HASH_SEED,
872878 NFTA_HASH_OFFSET,
873879 NFTA_HASH_TYPE,
874− NFTA_HASH_SET_NAME,
875− NFTA_HASH_SET_ID,
880+ NFTA_HASH_SET_NAME, /* deprecated */
881+ NFTA_HASH_SET_ID, /* deprecated */
876882 __NFTA_HASH_MAX,
877883 };
878884 #define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
@@ -1721,10 +1727,19 @@ enum nft_tunnel_keys { · 842 unmodified lines
17211727 };
17221728 #define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1)
17231729
1730+enum nft_tunnel_mode {
1731+ NFT_TUNNEL_MODE_NONE,
1732+ NFT_TUNNEL_MODE_RX,
1733+ NFT_TUNNEL_MODE_TX,
1734+ __NFT_TUNNEL_MODE_MAX
1735+};
1736+#define NFT_TUNNEL_MODE_MAX (__NFT_TUNNEL_MODE_MAX - 1)
1737+
17241738 enum nft_tunnel_attributes {
17251739 NFTA_TUNNEL_UNSPEC,
17261740 NFTA_TUNNEL_KEY,
17271741 NFTA_TUNNEL_DREG,
1742+ NFTA_TUNNEL_MODE,
17281743 __NFTA_TUNNEL_MAX
17291744 };
17301745 #define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1)
include/uapi/linux/nl80211.h+39−5
@@ -1565,6 +1565,12 @@ enum nl80211_commands { · 1564 unmodified lines
15651565 * (a u32 with flags from &enum nl80211_wpa_versions).
15661566 * @NL80211_ATTR_AKM_SUITES: Used with CONNECT, ASSOCIATE, and NEW_BEACON to
15671567 * indicate which key management algorithm(s) to use (an array of u32).
1568+ * This attribute is also sent in response to @NL80211_CMD_GET_WIPHY,
1569+ * indicating the supported AKM suites, intended for specific drivers which
1570+ * implement SME and have constraints on which AKMs are supported and also
1571+ * the cases where an AKM support is offloaded to the driver/firmware.
1572+ * If there is no such notification from the driver, user space should
1573+ * assume the driver supports all the AKM suites.
15681574 *
15691575 * @NL80211_ATTR_REQ_IE: (Re)association request information elements as
15701576 * sent out by the card, for ROAM and successful CONNECT events.
@@ -2260,10 +2266,10 @@ enum nl80211_commands { · 689 unmodified lines
22602266 * &enum nl80211_external_auth_action value). This is used with the
22612267 * %NL80211_CMD_EXTERNAL_AUTH request event.
22622268 * @NL80211_ATTR_EXTERNAL_AUTH_SUPPORT: Flag attribute indicating that the user
2263− * space supports external authentication. This attribute shall be used
2264− * only with %NL80211_CMD_CONNECT request. The driver may offload
2265− * authentication processing to user space if this capability is indicated
2266− * in NL80211_CMD_CONNECT requests from the user space.
2269+ * space supports external authentication. This attribute shall be used
2270+ * with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
2271+ * may offload authentication processing to user space if this capability
2272+ * is indicated in the respective requests from the user space.
22672273 *
22682274 * @NL80211_ATTR_NSS: Station's New/updated RX_NSS value notified using this
22692275 * u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2299,6 +2305,9 @@ enum nl80211_commands { · 29 unmodified lines
22992305 * This is also used for capability advertisement in the wiphy information,
23002306 * with the appropriate sub-attributes.
23012307 *
2308+ * @NL80211_ATTR_AIRTIME_WEIGHT: Station's weight when scheduled by the airtime
2309+ * scheduler.
2310+ *
23022311 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
23032312 * @NL80211_ATTR_MAX: highest attribute number currently defined
23042313 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2748,6 +2757,8 @@ enum nl80211_attrs { · 443 unmodified lines
27482757
27492758 NL80211_ATTR_PEER_MEASUREMENTS,
27502759
2760+ NL80211_ATTR_AIRTIME_WEIGHT,
2761+
27512762 /* add attributes here, update the policy in nl80211.c */
27522763
27532764 __NL80211_ATTR_AFTER_LAST,
@@ -3125,6 +3136,9 @@ enum nl80211_sta_bss_param { · 371 unmodified lines
31253136 * might not be fully accurate.
31263137 * @NL80211_STA_INFO_CONNECTED_TO_GATE: set to true if STA has a path to a
31273138 * mesh gate (u8, 0 or 1)
3139+ * @NL80211_STA_INFO_TX_DURATION: aggregate PPDU duration for all frames
3140+ * sent to the station (u64, usec)
3141+ * @NL80211_STA_INFO_AIRTIME_WEIGHT: current airtime weight for station (u16)
31283142 * @__NL80211_STA_INFO_AFTER_LAST: internal
31293143 * @NL80211_STA_INFO_MAX: highest possible station info attribute
31303144 */
@@ -3168,6 +3182,8 @@ enum nl80211_sta_info { · 37 unmodified lines
31683182 NL80211_STA_INFO_RX_MPDUS,
31693183 NL80211_STA_INFO_FCS_ERROR_COUNT,
31703184 NL80211_STA_INFO_CONNECTED_TO_GATE,
3185+ NL80211_STA_INFO_TX_DURATION,
3186+ NL80211_STA_INFO_AIRTIME_WEIGHT,
31713187
31723188 /* keep last */
31733189 __NL80211_STA_INFO_AFTER_LAST,
@@ -3277,8 +3293,10 @@ enum nl80211_mpath_flags { · 103 unmodified lines
32773293 * &enum nl80211_mpath_flags;
32783294 * @NL80211_MPATH_INFO_DISCOVERY_TIMEOUT: total path discovery timeout, in msec
32793295 * @NL80211_MPATH_INFO_DISCOVERY_RETRIES: mesh path discovery retries
3296+ * @NL80211_MPATH_INFO_HOP_COUNT: hop count to destination
3297+ * @NL80211_MPATH_INFO_PATH_CHANGE: total number of path changes to destination
32803298 * @NL80211_MPATH_INFO_MAX: highest mesh path information attribute number
3281− * currently defind
3299+ * currently defined
32823300 * @__NL80211_MPATH_INFO_AFTER_LAST: internal use
32833301 */
32843302 enum nl80211_mpath_info {
@@ -3290,6 +3308,8 @@ enum nl80211_mpath_info { · 5 unmodified lines
32903308 NL80211_MPATH_INFO_FLAGS,
32913309 NL80211_MPATH_INFO_DISCOVERY_TIMEOUT,
32923310 NL80211_MPATH_INFO_DISCOVERY_RETRIES,
3311+ NL80211_MPATH_INFO_HOP_COUNT,
3312+ NL80211_MPATH_INFO_PATH_CHANGE,
32933313
32943314 /* keep last */
32953315 __NL80211_MPATH_INFO_AFTER_LAST,
@@ -5316,6 +5336,13 @@ enum nl80211_feature_flags { · 2020 unmodified lines
53165336 * if this flag is not set. Ignoring this can leak clear text packets and/or
53175337 * freeze the connection.
53185338 *
5339+ * @NL80211_EXT_FEATURE_AIRTIME_FAIRNESS: Driver supports getting airtime
5340+ * fairness for transmitted packets and has enabled airtime fairness
5341+ * scheduling.
5342+ *
5343+ * @NL80211_EXT_FEATURE_AP_PMKSA_CACHING: Driver/device supports PMKSA caching
5344+ * (set/del PMKSA operations) in AP mode.
5345+ *
53195346 * @NUM_NL80211_EXT_FEATURES: number of extended features.
53205347 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
53215348 */
@@ -5355,6 +5382,8 @@ enum nl80211_ext_feature_index { · 33 unmodified lines
53555382 NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
53565383 NL80211_EXT_FEATURE_CAN_REPLACE_PTK0,
53575384 NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER,
5385+ NL80211_EXT_FEATURE_AIRTIME_FAIRNESS,
5386+ NL80211_EXT_FEATURE_AP_PMKSA_CACHING,
53585387
53595388 /* add new features before the definition below */
53605389 NUM_NL80211_EXT_FEATURES,
@@ -5606,9 +5635,14 @@ enum nl80211_crit_proto_id { · 245 unmodified lines
56065635 * Used by cfg80211_rx_mgmt()
56075636 *
56085637 * @NL80211_RXMGMT_FLAG_ANSWERED: frame was answered by device/driver.
5638+ * @NL80211_RXMGMT_FLAG_EXTERNAL_AUTH: Host driver intends to offload
5639+ * the authentication. Exclusively defined for host drivers that
5640+ * advertises the SME functionality but would like the userspace
5641+ * to handle certain authentication algorithms (e.g. SAE).
56095642 */
56105643 enum nl80211_rxmgmt_flags {
56115644 NL80211_RXMGMT_FLAG_ANSWERED = 1 << 0,
5645+ NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 1 << 1,
56125646 };
56135647
56145648 /*
include/uapi/linux/nvme_ioctl.h+0−9
@@ -2,15 +2,6 @@ · 1 unmodified line
22 /*
33 * Definitions for the NVM Express ioctl interface
44 * Copyright (c) 2011-2014, Intel Corporation.
5− *
6− * This program is free software; you can redistribute it and/or modify it
7− * under the terms and conditions of the GNU General Public License,
8− * version 2, as published by the Free Software Foundation.
9− *
10− * This program is distributed in the hope it will be useful, but WITHOUT
11− * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12− * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13− * more details.
145 */
156
167 #ifndef _UAPI_LINUX_NVME_IOCTL_H
include/uapi/linux/pci_regs.h+2−0
@@ -866,6 +866,7 @@ · 865 unmodified lines
866866 #define PCI_ATS_CAP 0x04 /* ATS Capability Register */
867867 #define PCI_ATS_CAP_QDEP(x) ((x) & 0x1f) /* Invalidate Queue Depth */
868868 #define PCI_ATS_MAX_QDEP 32 /* Max Invalidate Queue Depth */
869+#define PCI_ATS_CAP_PAGE_ALIGNED 0x0020 /* Page Aligned Request */
869870 #define PCI_ATS_CTRL 0x06 /* ATS Control Register */
870871 #define PCI_ATS_CTRL_ENABLE 0x8000 /* ATS Enable */
871872 #define PCI_ATS_CTRL_STU(x) ((x) & 0x1f) /* Smallest Translation Unit */
@@ -880,6 +881,7 @@ · 8 unmodified lines
880881 #define PCI_PRI_STATUS_RF 0x001 /* Response Failure */
881882 #define PCI_PRI_STATUS_UPRGI 0x002 /* Unexpected PRG index */
882883 #define PCI_PRI_STATUS_STOPPED 0x100 /* PRI Stopped */
884+#define PCI_PRI_STATUS_PASID 0x8000 /* PRG Response PASID Required */
883885 #define PCI_PRI_MAX_REQ 0x08 /* PRI max reqs supported */
884886 #define PCI_PRI_ALLOC_REQ 0x0c /* PRI max reqs allowed */
885887 #define PCI_EXT_CAP_PRI_SIZEOF 16
include/uapi/linux/perf_event.h+52−3
@@ -372,7 +372,9 @@ struct perf_event_attr { · 371 unmodified lines
372372 context_switch : 1, /* context switch data */
373373 write_backward : 1, /* Write ring buffer from end to beginning */
374374 namespaces : 1, /* include namespaces data */
375− __reserved_1 : 35;
375+ ksymbol : 1, /* include ksymbol events */
376+ bpf_event : 1, /* include bpf events */
377+ __reserved_1 : 33;
376378
377379 union {
378380 __u32 wakeup_events; /* wakeup every n events */
@@ -445,8 +447,6 @@ struct perf_event_query_bpf { · 66 unmodified lines
445447 __u32 ids[0];
446448 };
447449
448−#define perf_flags(attr) (*(&(attr)->read_format + 1))
449−
450450 /*
451451 * Ioctls that can be done on a perf event fd:
452452 */
@@ -965,9 +965,58 @@ enum perf_event_type { · 512 unmodified lines
965965 */
966966 PERF_RECORD_NAMESPACES = 16,
967967
968+ /*
969+ * Record ksymbol register/unregister events:
970+ *
971+ * struct {
972+ * struct perf_event_header header;
973+ * u64 addr;
974+ * u32 len;
975+ * u16 ksym_type;
976+ * u16 flags;
977+ * char name[];
978+ * struct sample_id sample_id;
979+ * };
980+ */
981+ PERF_RECORD_KSYMBOL = 17,
982+
983+ /*
984+ * Record bpf events:
985+ * enum perf_bpf_event_type {
986+ * PERF_BPF_EVENT_UNKNOWN = 0,
987+ * PERF_BPF_EVENT_PROG_LOAD = 1,
988+ * PERF_BPF_EVENT_PROG_UNLOAD = 2,
989+ * };
990+ *
991+ * struct {
992+ * struct perf_event_header header;
993+ * u16 type;
994+ * u16 flags;
995+ * u32 id;
996+ * u8 tag[BPF_TAG_SIZE];
997+ * struct sample_id sample_id;
998+ * };
999+ */
1000+ PERF_RECORD_BPF_EVENT = 18,
1001+
9681002 PERF_RECORD_MAX, /* non-ABI */
9691003 };
9701004
1005+enum perf_record_ksymbol_type {
1006+ PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0,
1007+ PERF_RECORD_KSYMBOL_TYPE_BPF = 1,
1008+ PERF_RECORD_KSYMBOL_TYPE_MAX /* non-ABI */
1009+};
1010+
1011+#define PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER (1 << 0)
1012+
1013+enum perf_bpf_event_type {
1014+ PERF_BPF_EVENT_UNKNOWN = 0,
1015+ PERF_BPF_EVENT_PROG_LOAD = 1,
1016+ PERF_BPF_EVENT_PROG_UNLOAD = 2,
1017+ PERF_BPF_EVENT_MAX, /* non-ABI */
1018+};
1019+
9711020 #define PERF_MAX_STACK_DEPTH 127
9721021 #define PERF_MAX_CONTEXTS_PER_STACK 8
9731022
include/uapi/linux/pkt_cls.h+54−4
@@ -63,12 +63,49 @@ enum { · 62 unmodified lines
6363 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
6464 #define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
6565
66+/* These macros are put here for binary compatibility with userspace apps that
67+ * make use of them. For kernel code and new userspace apps, use the TCA_ID_*
68+ * versions.
69+ */
70+#define TCA_ACT_GACT 5
71+#define TCA_ACT_IPT 6
72+#define TCA_ACT_PEDIT 7
73+#define TCA_ACT_MIRRED 8
74+#define TCA_ACT_NAT 9
75+#define TCA_ACT_XT 10
76+#define TCA_ACT_SKBEDIT 11
77+#define TCA_ACT_VLAN 12
78+#define TCA_ACT_BPF 13
79+#define TCA_ACT_CONNMARK 14
80+#define TCA_ACT_SKBMOD 15
81+#define TCA_ACT_CSUM 16
82+#define TCA_ACT_TUNNEL_KEY 17
83+#define TCA_ACT_SIMP 22
84+#define TCA_ACT_IFE 25
85+#define TCA_ACT_SAMPLE 26
86+
6687 /* Action type identifiers*/
67−enum {
68− TCA_ID_UNSPEC=0,
69− TCA_ID_POLICE=1,
88+enum tca_id {
89+ TCA_ID_UNSPEC = 0,
90+ TCA_ID_POLICE = 1,
91+ TCA_ID_GACT = TCA_ACT_GACT,
92+ TCA_ID_IPT = TCA_ACT_IPT,
93+ TCA_ID_PEDIT = TCA_ACT_PEDIT,
94+ TCA_ID_MIRRED = TCA_ACT_MIRRED,
95+ TCA_ID_NAT = TCA_ACT_NAT,
96+ TCA_ID_XT = TCA_ACT_XT,
97+ TCA_ID_SKBEDIT = TCA_ACT_SKBEDIT,
98+ TCA_ID_VLAN = TCA_ACT_VLAN,
99+ TCA_ID_BPF = TCA_ACT_BPF,
100+ TCA_ID_CONNMARK = TCA_ACT_CONNMARK,
101+ TCA_ID_SKBMOD = TCA_ACT_SKBMOD,
102+ TCA_ID_CSUM = TCA_ACT_CSUM,
103+ TCA_ID_TUNNEL_KEY = TCA_ACT_TUNNEL_KEY,
104+ TCA_ID_SIMP = TCA_ACT_SIMP,
105+ TCA_ID_IFE = TCA_ACT_IFE,
106+ TCA_ID_SAMPLE = TCA_ACT_SAMPLE,
70107 /* other actions go here */
71− __TCA_ID_MAX=255
108+ __TCA_ID_MAX = 255
72109 };
73110
74111 #define TCA_ID_MAX __TCA_ID_MAX
@@ -333,12 +370,19 @@ enum { · 258 unmodified lines
333370
334371 /* Basic filter */
335372
373+struct tc_basic_pcnt {
374+ __u64 rcnt;
375+ __u64 rhit;
376+};
377+
336378 enum {
337379 TCA_BASIC_UNSPEC,
338380 TCA_BASIC_CLASSID,
339381 TCA_BASIC_EMATCHES,
340382 TCA_BASIC_ACT,
341383 TCA_BASIC_POLICE,
384+ TCA_BASIC_PCNT,
385+ TCA_BASIC_PAD,
342386 __TCA_BASIC_MAX
343387 };
344388
@@ -527,11 +571,17 @@ enum { · 182 unmodified lines
527571
528572 /* Match-all classifier */
529573
574+struct tc_matchall_pcnt {
575+ __u64 rhit;
576+};
577+
530578 enum {
531579 TCA_MATCHALL_UNSPEC,
532580 TCA_MATCHALL_CLASSID,
533581 TCA_MATCHALL_ACT,
534582 TCA_MATCHALL_FLAGS,
583+ TCA_MATCHALL_PCNT,
584+ TCA_MATCHALL_PAD,
535585 __TCA_MATCHALL_MAX,
536586 };
537587
include/uapi/linux/pkt_sched.h+2−1
@@ -954,7 +954,7 @@ enum { · 953 unmodified lines
954954 #define TCA_PIE_MAX (__TCA_PIE_MAX - 1)
955955
956956 struct tc_pie_xstats {
957− __u32 prob; /* current probability */
957+ __u64 prob; /* current probability */
958958 __u32 delay; /* current delay in ms */
959959 __u32 avg_dq_rate; /* current average dq_rate in bits/pie_time */
960960 __u32 packets_in; /* total number of packets enqueued */
@@ -1021,6 +1021,7 @@ enum { · 60 unmodified lines
10211021 TCA_CAKE_INGRESS,
10221022 TCA_CAKE_ACK_FILTER,
10231023 TCA_CAKE_SPLIT_GSO,
1024+ TCA_CAKE_FWMARK,
10241025 __TCA_CAKE_MAX
10251026 };
10261027 #define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
include/uapi/linux/pmu.h+2−0
@@ -19,7 +19,9 @@ · 18 unmodified lines
1919 #define PMU_POWER_CTRL 0x11 /* control power of some devices */
2020 #define PMU_ADB_CMD 0x20 /* send ADB packet */
2121 #define PMU_ADB_POLL_OFF 0x21 /* disable ADB auto-poll */
22+#define PMU_WRITE_XPRAM 0x32 /* write eXtended Parameter RAM */
2223 #define PMU_WRITE_NVRAM 0x33 /* write non-volatile RAM */
24+#define PMU_READ_XPRAM 0x3a /* read eXtended Parameter RAM */
2325 #define PMU_READ_NVRAM 0x3b /* read non-volatile RAM */
2426 #define PMU_SET_RTC 0x30 /* set real-time clock */
2527 #define PMU_READ_RTC 0x38 /* read real-time clock */
include/uapi/linux/prctl.h+1−0
@@ -219,6 +219,7 @@ struct prctl_mm_map { · 218 unmodified lines
219219 # define PR_SPEC_ENABLE (1UL << 1)
220220 # define PR_SPEC_DISABLE (1UL << 2)
221221 # define PR_SPEC_FORCE_DISABLE (1UL << 3)
222+# define PR_SPEC_DISABLE_NOEXEC (1UL << 4)
222223
223224 /* Reset arm64 pointer authentication keys */
224225 #define PR_PAC_RESET_KEYS 54
include/uapi/linux/rds.h+11−0
@@ -69,6 +69,12 @@ · 68 unmodified lines
6969 #define RDS_TRANS_COUNT 3
7070 #define RDS_TRANS_NONE (~0)
7171
72+/* IOCTLS commands for SOL_RDS */
73+#define SIOCRDSSETTOS (SIOCPROTOPRIVATE)
74+#define SIOCRDSGETTOS (SIOCPROTOPRIVATE + 1)
75+
76+typedef __u8 rds_tos_t;
77+
7278 /*
7379 * Control message types for SOL_RDS.
7480 *
@@ -149,6 +155,7 @@ struct rds_info_connection { · 74 unmodified lines
149155 __be32 faddr;
150156 __u8 transport[TRANSNAMSIZ]; /* null term ascii */
151157 __u8 flags;
158+ __u8 tos;
152159 } __attribute__((packed));
153160
154161 struct rds6_info_connection {
@@ -171,6 +178,7 @@ struct rds_info_message { · 16 unmodified lines
171178 __be16 lport;
172179 __be16 fport;
173180 __u8 flags;
181+ __u8 tos;
174182 } __attribute__((packed));
175183
176184 struct rds6_info_message {
@@ -214,6 +222,7 @@ struct rds_info_tcp_socket { · 37 unmodified lines
214222 __u32 last_sent_nxt;
215223 __u32 last_expected_una;
216224 __u32 last_seen_una;
225+ __u8 tos;
217226 } __attribute__((packed));
218227
219228 struct rds6_info_tcp_socket {
@@ -240,6 +249,7 @@ struct rds_info_rdma_connection { · 20 unmodified lines
240249 __u32 max_send_sge;
241250 __u32 rdma_mr_max;
242251 __u32 rdma_mr_size;
252+ __u8 tos;
243253 };
244254
245255 struct rds6_info_rdma_connection {
@@ -253,6 +263,7 @@ struct rds6_info_rdma_connection { · 7 unmodified lines
253263 __u32 max_send_sge;
254264 __u32 rdma_mr_max;
255265 __u32 rdma_mr_size;
266+ __u8 tos;
256267 };
257268
258269 /* RDS message Receive Path Latency points */
include/uapi/linux/sctp.h+4−0
@@ -59,6 +59,10 @@ · 58 unmodified lines
5959
6060 typedef __s32 sctp_assoc_t;
6161
62+#define SCTP_FUTURE_ASSOC 0
63+#define SCTP_CURRENT_ASSOC 1
64+#define SCTP_ALL_ASSOC 2
65+
6266 /* The following symbols come from the Sockets API Extensions for
6367 * SCTP <draft-ietf-tsvwg-sctpsocket-07.txt>.
6468 */
include/uapi/linux/serial_core.h+3−0
@@ -79,6 +79,9 @@ · 78 unmodified lines
7979 /* Nuvoton UART */
8080 #define PORT_NPCM 40
8181
82+/* NVIDIA Tegra Combined UART */
83+#define PORT_TEGRA_TCU 41
84+
8285 /* Intel EG20 */
8386 #define PORT_PCH_8LINE 44
8487 #define PORT_PCH_2LINE 45
include/uapi/linux/tc_act/tc_bpf.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313
1414 #include <linux/pkt_cls.h>
1515
16−#define TCA_ACT_BPF 13
17−
1816 struct tc_act_bpf {
1917 tc_gen;
2018 };
include/uapi/linux/tc_act/tc_connmark.h+0−2
@@ -5,8 +5,6 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/pkt_cls.h>
77
8−#define TCA_ACT_CONNMARK 14
9−
108 struct tc_connmark {
119 tc_gen;
1210 __u16 zone;
include/uapi/linux/tc_act/tc_csum.h+0−2
@@ -5,8 +5,6 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/pkt_cls.h>
77
8−#define TCA_ACT_CSUM 16
9−
108 enum {
119 TCA_CSUM_UNSPEC,
1210 TCA_CSUM_PARMS,
include/uapi/linux/tc_act/tc_gact.h+0−1
@@ -5,7 +5,6 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/pkt_cls.h>
77
8−#define TCA_ACT_GACT 5
98 struct tc_gact {
109 tc_gen;
1110
include/uapi/linux/tc_act/tc_ife.h+0−1
@@ -6,7 +6,6 @@ · 5 unmodified lines
66 #include <linux/pkt_cls.h>
77 #include <linux/ife.h>
88
9−#define TCA_ACT_IFE 25
109 /* Flag bits for now just encoding/decoding; mutually exclusive */
1110 #define IFE_ENCODE 1
1211 #define IFE_DECODE 0
include/uapi/linux/tc_act/tc_ipt.h+0−3
@@ -4,9 +4,6 @@ · 3 unmodified lines
44
55 #include <linux/pkt_cls.h>
66
7−#define TCA_ACT_IPT 6
8−#define TCA_ACT_XT 10
9−
107 enum {
118 TCA_IPT_UNSPEC,
129 TCA_IPT_TABLE,
include/uapi/linux/tc_act/tc_mirred.h+0−1
@@ -5,7 +5,6 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/pkt_cls.h>
77
8−#define TCA_ACT_MIRRED 8
98 #define TCA_EGRESS_REDIR 1 /* packet redirect to EGRESS*/
109 #define TCA_EGRESS_MIRROR 2 /* mirror packet to EGRESS */
1110 #define TCA_INGRESS_REDIR 3 /* packet redirect to INGRESS*/
include/uapi/linux/tc_act/tc_nat.h+0−2
@@ -5,8 +5,6 @@ · 4 unmodified lines
55 #include <linux/pkt_cls.h>
66 #include <linux/types.h>
77
8−#define TCA_ACT_NAT 9
9−
108 enum {
119 TCA_NAT_UNSPEC,
1210 TCA_NAT_PARMS,
include/uapi/linux/tc_act/tc_pedit.h+0−2
@@ -5,8 +5,6 @@ · 4 unmodified lines
55 #include <linux/types.h>
66 #include <linux/pkt_cls.h>
77
8−#define TCA_ACT_PEDIT 7
9−
108 enum {
119 TCA_PEDIT_UNSPEC,
1210 TCA_PEDIT_TM,
include/uapi/linux/tc_act/tc_sample.h+0−2
@@ -6,8 +6,6 @@ · 5 unmodified lines
66 #include <linux/pkt_cls.h>
77 #include <linux/if_ether.h>
88
9−#define TCA_ACT_SAMPLE 26
10−
119 struct tc_sample {
1210 tc_gen;
1311 };
include/uapi/linux/tc_act/tc_skbedit.h+0−2
@@ -23,8 +23,6 @@ · 22 unmodified lines
2323
2424 #include <linux/pkt_cls.h>
2525
26−#define TCA_ACT_SKBEDIT 11
27−
2826 #define SKBEDIT_F_PRIORITY 0x1
2927 #define SKBEDIT_F_QUEUE_MAPPING 0x2
3028 #define SKBEDIT_F_MARK 0x4
include/uapi/linux/tc_act/tc_skbmod.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313
1414 #include <linux/pkt_cls.h>
1515
16−#define TCA_ACT_SKBMOD 15
17−
1816 #define SKBMOD_F_DMAC 0x1
1917 #define SKBMOD_F_SMAC 0x2
2018 #define SKBMOD_F_ETYPE 0x4
include/uapi/linux/tc_act/tc_tunnel_key.h+0−2
@@ -14,8 +14,6 @@ · 13 unmodified lines
1414
1515 #include <linux/pkt_cls.h>
1616
17−#define TCA_ACT_TUNNEL_KEY 17
18−
1917 #define TCA_TUNNEL_KEY_ACT_SET 1
2018 #define TCA_TUNNEL_KEY_ACT_RELEASE 2
2119
include/uapi/linux/tc_act/tc_vlan.h+0−2
@@ -13,8 +13,6 @@ · 12 unmodified lines
1313
1414 #include <linux/pkt_cls.h>
1515
16−#define TCA_ACT_VLAN 12
17−
1816 #define TCA_VLAN_ACT_POP 1
1917 #define TCA_VLAN_ACT_PUSH 2
2018 #define TCA_VLAN_ACT_MODIFY 3
include/uapi/linux/time.h+1−28
@@ -3,7 +3,7 @@ · 2 unmodified lines
33 #define _UAPI_LINUX_TIME_H
44
55 #include <linux/types.h>
6−
6+#include <linux/time_types.h>
77
88 #ifndef _STRUCT_TIMESPEC
99 #define _STRUCT_TIMESPEC
@@ -23,7 +23,6 @@ struct timezone { · 13 unmodified lines
2323 int tz_dsttime; /* type of dst correction */
2424 };
2525
26−
2726 /*
2827 * Names of the interval timers, and structure
2928 * defining a timer setting:
@@ -42,32 +41,6 @@ struct itimerval { · 12 unmodified lines
4241 struct timeval it_value; /* current value */
4342 };
4443
45−#ifndef __kernel_timespec
46−struct __kernel_timespec {
47− __kernel_time64_t tv_sec; /* seconds */
48− long long tv_nsec; /* nanoseconds */
49−};
50−#endif
51−
52−#ifndef __kernel_itimerspec
53−struct __kernel_itimerspec {
54− struct __kernel_timespec it_interval; /* timer period */
55− struct __kernel_timespec it_value; /* timer expiration */
56−};
57−#endif
58−
59−/*
60− * legacy timeval structure, only embedded in structures that
61− * traditionally used 'timeval' to pass time intervals (not absolute
62− * times). Do not add new users. If user space fails to compile
63− * here, this is probably because it is not y2038 safe and needs to
64− * be changed to use another interface.
65− */
66−struct __kernel_old_timeval {
67− __kernel_long_t tv_sec;
68− __kernel_long_t tv_usec;
69−};
70−
7144 /*
7245 * The IDs of the various system clocks (for POSIX.1b interval timers):
7346 */
include/uapi/linux/time_types.h+36−0
@@ -0,0 +1,36 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+#ifndef _UAPI_LINUX_TIME_TYPES_H
3+#define _UAPI_LINUX_TIME_TYPES_H
4+
5+#include <linux/types.h>
6+
7+struct __kernel_timespec {
8+ __kernel_time64_t tv_sec; /* seconds */
9+ long long tv_nsec; /* nanoseconds */
10+};
11+
12+struct __kernel_itimerspec {
13+ struct __kernel_timespec it_interval; /* timer period */
14+ struct __kernel_timespec it_value; /* timer expiration */
15+};
16+
17+/*
18+ * legacy timeval structure, only embedded in structures that
19+ * traditionally used 'timeval' to pass time intervals (not absolute
20+ * times). Do not add new users. If user space fails to compile
21+ * here, this is probably because it is not y2038 safe and needs to
22+ * be changed to use another interface.
23+ */
24+#ifndef __kernel_old_timeval
25+struct __kernel_old_timeval {
26+ __kernel_long_t tv_sec;
27+ __kernel_long_t tv_usec;
28+};
29+#endif
30+
31+struct __kernel_sock_timeval {
32+ __s64 tv_sec;
33+ __s64 tv_usec;
34+};
35+
36+#endif /* _UAPI_LINUX_TIME_TYPES_H */
include/uapi/linux/timex.h+39−0
@@ -92,6 +92,45 @@ struct timex { · 91 unmodified lines
9292 int :32; int :32; int :32;
9393 };
9494
95+struct __kernel_timex_timeval {
96+ __kernel_time64_t tv_sec;
97+ long long tv_usec;
98+};
99+
100+struct __kernel_timex {
101+ unsigned int modes; /* mode selector */
102+ int :32; /* pad */
103+ long long offset; /* time offset (usec) */
104+ long long freq; /* frequency offset (scaled ppm) */
105+ long long maxerror;/* maximum error (usec) */
106+ long long esterror;/* estimated error (usec) */
107+ int status; /* clock command/status */
108+ int :32; /* pad */
109+ long long constant;/* pll time constant */
110+ long long precision;/* clock precision (usec) (read only) */
111+ long long tolerance;/* clock frequency tolerance (ppm)
112+ * (read only)
113+ */
114+ struct __kernel_timex_timeval time; /* (read only, except for ADJ_SETOFFSET) */
115+ long long tick; /* (modified) usecs between clock ticks */
116+
117+ long long ppsfreq;/* pps frequency (scaled ppm) (ro) */
118+ long long jitter; /* pps jitter (us) (ro) */
119+ int shift; /* interval duration (s) (shift) (ro) */
120+ int :32; /* pad */
121+ long long stabil; /* pps stability (scaled ppm) (ro) */
122+ long long jitcnt; /* jitter limit exceeded (ro) */
123+ long long calcnt; /* calibration intervals (ro) */
124+ long long errcnt; /* calibration errors (ro) */
125+ long long stbcnt; /* stability limit exceeded (ro) */
126+
127+ int tai; /* TAI offset (ro) */
128+
129+ int :32; int :32; int :32; int :32;
130+ int :32; int :32; int :32; int :32;
131+ int :32; int :32; int :32;
132+};
133+
95134 /*
96135 * Mode codes (timex.mode)
97136 */
include/uapi/linux/tls.h+19−0
@@ -51,6 +51,10 @@ · 50 unmodified lines
5151 #define TLS_1_2_VERSION_MINOR 0x3
5252 #define TLS_1_2_VERSION TLS_VERSION_NUMBER(TLS_1_2)
5353
54+#define TLS_1_3_VERSION_MAJOR 0x3
55+#define TLS_1_3_VERSION_MINOR 0x4
56+#define TLS_1_3_VERSION TLS_VERSION_NUMBER(TLS_1_3)
57+
5458 /* Supported ciphers */
5559 #define TLS_CIPHER_AES_GCM_128 51
5660 #define TLS_CIPHER_AES_GCM_128_IV_SIZE 8
@@ -59,6 +63,13 @@ · 2 unmodified lines
5963 #define TLS_CIPHER_AES_GCM_128_TAG_SIZE 16
6064 #define TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE 8
6165
66+#define TLS_CIPHER_AES_GCM_256 52
67+#define TLS_CIPHER_AES_GCM_256_IV_SIZE 8
68+#define TLS_CIPHER_AES_GCM_256_KEY_SIZE 32
69+#define TLS_CIPHER_AES_GCM_256_SALT_SIZE 4
70+#define TLS_CIPHER_AES_GCM_256_TAG_SIZE 16
71+#define TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE 8
72+
6273 #define TLS_SET_RECORD_TYPE 1
6374 #define TLS_GET_RECORD_TYPE 2
6475
@@ -75,4 +86,12 @@ struct tls12_crypto_info_aes_gcm_128 { · 10 unmodified lines
7586 unsigned char rec_seq[TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE];
7687 };
7788
89+struct tls12_crypto_info_aes_gcm_256 {
90+ struct tls_crypto_info info;
91+ unsigned char iv[TLS_CIPHER_AES_GCM_256_IV_SIZE];
92+ unsigned char key[TLS_CIPHER_AES_GCM_256_KEY_SIZE];
93+ unsigned char salt[TLS_CIPHER_AES_GCM_256_SALT_SIZE];
94+ unsigned char rec_seq[TLS_CIPHER_AES_GCM_256_REC_SEQ_SIZE];
95+};
96+
7897 #endif /* _UAPI_LINUX_TLS_H */
include/uapi/linux/v4l2-controls.h+2−0
@@ -533,6 +533,8 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type { · 532 unmodified lines
533533 };
534534 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER (V4L2_CID_MPEG_BASE+381)
535535 #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP (V4L2_CID_MPEG_BASE+382)
536+#define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION (V4L2_CID_MPEG_BASE+383)
537+#define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET (V4L2_CID_MPEG_BASE+384)
536538 #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (V4L2_CID_MPEG_BASE+400)
537539 #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP (V4L2_CID_MPEG_BASE+401)
538540 #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP (V4L2_CID_MPEG_BASE+402)
include/uapi/linux/videodev2.h+25−1
@@ -130,6 +130,13 @@ enum v4l2_field { · 129 unmodified lines
130130 ((field) == V4L2_FIELD_BOTTOM ||\
131131 (field) == V4L2_FIELD_TOP ||\
132132 (field) == V4L2_FIELD_ALTERNATE)
133+#define V4L2_FIELD_IS_INTERLACED(field) \
134+ ((field) == V4L2_FIELD_INTERLACED ||\
135+ (field) == V4L2_FIELD_INTERLACED_TB ||\
136+ (field) == V4L2_FIELD_INTERLACED_BT)
137+#define V4L2_FIELD_IS_SEQUENTIAL(field) \
138+ ((field) == V4L2_FIELD_SEQ_TB ||\
139+ (field) == V4L2_FIELD_SEQ_BT)
133140
134141 enum v4l2_buf_type {
135142 V4L2_BUF_TYPE_VIDEO_CAPTURE = 1,
@@ -161,7 +168,8 @@ enum v4l2_buf_type { · 25 unmodified lines
161168 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY \
162169 || (type) == V4L2_BUF_TYPE_VBI_OUTPUT \
163170 || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT \
164− || (type) == V4L2_BUF_TYPE_SDR_OUTPUT)
171+ || (type) == V4L2_BUF_TYPE_SDR_OUTPUT \
172+ || (type) == V4L2_BUF_TYPE_META_OUTPUT)
165173
166174 enum v4l2_tuner_type {
167175 V4L2_TUNER_RADIO = 1,
@@ -554,6 +562,10 @@ struct v4l2_pix_format { · 386 unmodified lines
554562 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
555563 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
556564 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
565+#define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */
566+#define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */
567+#define V4L2_PIX_FMT_VUYA32 v4l2_fourcc('V', 'U', 'Y', 'A') /* 32 VUYA-8-8-8-8 */
568+#define V4L2_PIX_FMT_VUYX32 v4l2_fourcc('V', 'U', 'Y', 'X') /* 32 VUYX-8-8-8-8 */
557569 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* 8 8-bit color */
558570 #define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2') /* 8 YUV 4:2:0 16x16 macroblocks */
559571 #define V4L2_PIX_FMT_M420 v4l2_fourcc('M', '4', '2', '0') /* 12 YUV 4:2:0 2 lines y, 1 line uv interleaved */
@@ -973,6 +985,18 @@ struct v4l2_buffer { · 413 unmodified lines
973985 };
974986 };
975987
988+/**
989+ * v4l2_timeval_to_ns - Convert timeval to nanoseconds
990+ * @ts: pointer to the timeval variable to be converted
991+ *
992+ * Returns the scalar nanosecond representation of the timeval
993+ * parameter.
994+ */
995+static inline __u64 v4l2_timeval_to_ns(const struct timeval *tv)
996+{
997+ return (__u64)tv->tv_sec * 1000000000ULL + tv->tv_usec * 1000;
998+}
999+
9761000 /* Flags for 'flags' field */
9771001 /* Buffer is mapped (flag) */
9781002 #define V4L2_BUF_FLAG_MAPPED 0x00000001
include/uapi/linux/xdp_diag.h+72−0
@@ -0,0 +1,72 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * xdp_diag: interface for query/monitor XDP sockets
4+ * Copyright(c) 2019 Intel Corporation.
5+ */
6+
7+#ifndef _LINUX_XDP_DIAG_H
8+#define _LINUX_XDP_DIAG_H
9+
10+#include <linux/types.h>
11+
12+struct xdp_diag_req {
13+ __u8 sdiag_family;
14+ __u8 sdiag_protocol;
15+ __u16 pad;
16+ __u32 xdiag_ino;
17+ __u32 xdiag_show;
18+ __u32 xdiag_cookie[2];
19+};
20+
21+struct xdp_diag_msg {
22+ __u8 xdiag_family;
23+ __u8 xdiag_type;
24+ __u16 pad;
25+ __u32 xdiag_ino;
26+ __u32 xdiag_cookie[2];
27+};
28+
29+#define XDP_SHOW_INFO (1 << 0) /* Basic information */
30+#define XDP_SHOW_RING_CFG (1 << 1)
31+#define XDP_SHOW_UMEM (1 << 2)
32+#define XDP_SHOW_MEMINFO (1 << 3)
33+
34+enum {
35+ XDP_DIAG_NONE,
36+ XDP_DIAG_INFO,
37+ XDP_DIAG_UID,
38+ XDP_DIAG_RX_RING,
39+ XDP_DIAG_TX_RING,
40+ XDP_DIAG_UMEM,
41+ XDP_DIAG_UMEM_FILL_RING,
42+ XDP_DIAG_UMEM_COMPLETION_RING,
43+ XDP_DIAG_MEMINFO,
44+ __XDP_DIAG_MAX,
45+};
46+
47+#define XDP_DIAG_MAX (__XDP_DIAG_MAX - 1)
48+
49+struct xdp_diag_info {
50+ __u32 ifindex;
51+ __u32 queue_id;
52+};
53+
54+struct xdp_diag_ring {
55+ __u32 entries; /*num descs */
56+};
57+
58+#define XDP_DU_F_ZEROCOPY (1 << 0)
59+
60+struct xdp_diag_umem {
61+ __u64 size;
62+ __u32 id;
63+ __u32 num_pages;
64+ __u32 chunk_size;
65+ __u32 headroom;
66+ __u32 ifindex;
67+ __u32 queue_id;
68+ __u32 flags;
69+ __u32 refs;
70+};
71+
72+#endif /* _LINUX_XDP_DIAG_H */
include/uapi/misc/fastrpc.h+41−0
@@ -0,0 +1,41 @@
1+/* SPDX-License-Identifier: GPL-2.0 */
2+
3+#ifndef __QCOM_FASTRPC_H__
4+#define __QCOM_FASTRPC_H__
5+
6+#include <linux/types.h>
7+
8+#define FASTRPC_IOCTL_ALLOC_DMA_BUFF _IOWR('R', 1, struct fastrpc_alloc_dma_buf)
9+#define FASTRPC_IOCTL_FREE_DMA_BUFF _IOWR('R', 2, __u32)
10+#define FASTRPC_IOCTL_INVOKE _IOWR('R', 3, struct fastrpc_invoke)
11+#define FASTRPC_IOCTL_INIT_ATTACH _IO('R', 4)
12+#define FASTRPC_IOCTL_INIT_CREATE _IOWR('R', 5, struct fastrpc_init_create)
13+
14+struct fastrpc_invoke_args {
15+ __u64 ptr;
16+ __u64 length;
17+ __s32 fd;
18+ __u32 reserved;
19+};
20+
21+struct fastrpc_invoke {
22+ __u32 handle;
23+ __u32 sc;
24+ __u64 args;
25+};
26+
27+struct fastrpc_init_create {
28+ __u32 filelen; /* elf file length */
29+ __s32 filefd; /* fd for the file */
30+ __u32 attrs;
31+ __u32 siglen;
32+ __u64 file; /* pointer to elf file */
33+};
34+
35+struct fastrpc_alloc_dma_buf {
36+ __s32 fd; /* fd */
37+ __u32 flags; /* flags to map with */
38+ __u64 size; /* size */
39+};
40+
41+#endif /* __QCOM_FASTRPC_H__ */
include/uapi/misc/habanalabs.h+450−0
@@ -0,0 +1,450 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
2+ *
3+ * Copyright 2016-2018 HabanaLabs, Ltd.
4+ * All Rights Reserved.
5+ *
6+ */
7+
8+#ifndef HABANALABS_H_
9+#define HABANALABS_H_
10+
11+#include <linux/types.h>
12+#include <linux/ioctl.h>
13+
14+/*
15+ * Defines that are asic-specific but constitutes as ABI between kernel driver
16+ * and userspace
17+ */
18+#define GOYA_KMD_SRAM_RESERVED_SIZE_FROM_START 0x8000 /* 32KB */
19+
20+/*
21+ * Queue Numbering
22+ *
23+ * The external queues (DMA channels + CPU) MUST be before the internal queues
24+ * and each group (DMA channels + CPU and internal) must be contiguous inside
25+ * itself but there can be a gap between the two groups (although not
26+ * recommended)
27+ */
28+
29+enum goya_queue_id {
30+ GOYA_QUEUE_ID_DMA_0 = 0,
31+ GOYA_QUEUE_ID_DMA_1,
32+ GOYA_QUEUE_ID_DMA_2,
33+ GOYA_QUEUE_ID_DMA_3,
34+ GOYA_QUEUE_ID_DMA_4,
35+ GOYA_QUEUE_ID_CPU_PQ,
36+ GOYA_QUEUE_ID_MME,
37+ GOYA_QUEUE_ID_TPC0,
38+ GOYA_QUEUE_ID_TPC1,
39+ GOYA_QUEUE_ID_TPC2,
40+ GOYA_QUEUE_ID_TPC3,
41+ GOYA_QUEUE_ID_TPC4,
42+ GOYA_QUEUE_ID_TPC5,
43+ GOYA_QUEUE_ID_TPC6,
44+ GOYA_QUEUE_ID_TPC7,
45+ GOYA_QUEUE_ID_SIZE
46+};
47+
48+/* Opcode for management ioctl */
49+#define HL_INFO_HW_IP_INFO 0
50+#define HL_INFO_HW_EVENTS 1
51+#define HL_INFO_DRAM_USAGE 2
52+#define HL_INFO_HW_IDLE 3
53+
54+#define HL_INFO_VERSION_MAX_LEN 128
55+
56+struct hl_info_hw_ip_info {
57+ __u64 sram_base_address;
58+ __u64 dram_base_address;
59+ __u64 dram_size;
60+ __u32 sram_size;
61+ __u32 num_of_events;
62+ __u32 device_id; /* PCI Device ID */
63+ __u32 reserved[3];
64+ __u32 armcp_cpld_version;
65+ __u32 psoc_pci_pll_nr;
66+ __u32 psoc_pci_pll_nf;
67+ __u32 psoc_pci_pll_od;
68+ __u32 psoc_pci_pll_div_factor;
69+ __u8 tpc_enabled_mask;
70+ __u8 dram_enabled;
71+ __u8 pad[2];
72+ __u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
73+};
74+
75+struct hl_info_dram_usage {
76+ __u64 dram_free_mem;
77+ __u64 ctx_dram_mem;
78+};
79+
80+struct hl_info_hw_idle {
81+ __u32 is_idle;
82+ __u32 pad;
83+};
84+
85+struct hl_info_args {
86+ /* Location of relevant struct in userspace */
87+ __u64 return_pointer;
88+ /*
89+ * The size of the return value. Just like "size" in "snprintf",
90+ * it limits how many bytes the kernel can write
91+ *
92+ * For hw_events array, the size should be
93+ * hl_info_hw_ip_info.num_of_events * sizeof(__u32)
94+ */
95+ __u32 return_size;
96+
97+ /* HL_INFO_* */
98+ __u32 op;
99+
100+ /* Context ID - Currently not in use */
101+ __u32 ctx_id;
102+ __u32 pad;
103+};
104+
105+/* Opcode to create a new command buffer */
106+#define HL_CB_OP_CREATE 0
107+/* Opcode to destroy previously created command buffer */
108+#define HL_CB_OP_DESTROY 1
109+
110+struct hl_cb_in {
111+ /* Handle of CB or 0 if we want to create one */
112+ __u64 cb_handle;
113+ /* HL_CB_OP_* */
114+ __u32 op;
115+ /* Size of CB. Maximum size is 2MB. The minimum size that will be
116+ * allocated, regardless of this parameter's value, is PAGE_SIZE
117+ */
118+ __u32 cb_size;
119+ /* Context ID - Currently not in use */
120+ __u32 ctx_id;
121+ __u32 pad;
122+};
123+
124+struct hl_cb_out {
125+ /* Handle of CB */
126+ __u64 cb_handle;
127+};
128+
129+union hl_cb_args {
130+ struct hl_cb_in in;
131+ struct hl_cb_out out;
132+};
133+
134+/*
135+ * This structure size must always be fixed to 64-bytes for backward
136+ * compatibility
137+ */
138+struct hl_cs_chunk {
139+ /*
140+ * For external queue, this represents a Handle of CB on the Host
141+ * For internal queue, this represents an SRAM or DRAM address of the
142+ * internal CB
143+ */
144+ __u64 cb_handle;
145+ /* Index of queue to put the CB on */
146+ __u32 queue_index;
147+ /*
148+ * Size of command buffer with valid packets
149+ * Can be smaller then actual CB size
150+ */
151+ __u32 cb_size;
152+ /* HL_CS_CHUNK_FLAGS_* */
153+ __u32 cs_chunk_flags;
154+ /* Align structure to 64 bytes */
155+ __u32 pad[11];
156+};
157+
158+#define HL_CS_FLAGS_FORCE_RESTORE 0x1
159+
160+#define HL_CS_STATUS_SUCCESS 0
161+
162+struct hl_cs_in {
163+ /* this holds address of array of hl_cs_chunk for restore phase */
164+ __u64 chunks_restore;
165+ /* this holds address of array of hl_cs_chunk for execution phase */
166+ __u64 chunks_execute;
167+ /* this holds address of array of hl_cs_chunk for store phase -
168+ * Currently not in use
169+ */
170+ __u64 chunks_store;
171+ /* Number of chunks in restore phase array */
172+ __u32 num_chunks_restore;
173+ /* Number of chunks in execution array */
174+ __u32 num_chunks_execute;
175+ /* Number of chunks in restore phase array - Currently not in use */
176+ __u32 num_chunks_store;
177+ /* HL_CS_FLAGS_* */
178+ __u32 cs_flags;
179+ /* Context ID - Currently not in use */
180+ __u32 ctx_id;
181+};
182+
183+struct hl_cs_out {
184+ /* this holds the sequence number of the CS to pass to wait ioctl */
185+ __u64 seq;
186+ /* HL_CS_STATUS_* */
187+ __u32 status;
188+ __u32 pad;
189+};
190+
191+union hl_cs_args {
192+ struct hl_cs_in in;
193+ struct hl_cs_out out;
194+};
195+
196+struct hl_wait_cs_in {
197+ /* Command submission sequence number */
198+ __u64 seq;
199+ /* Absolute timeout to wait in microseconds */
200+ __u64 timeout_us;
201+ /* Context ID - Currently not in use */
202+ __u32 ctx_id;
203+ __u32 pad;
204+};
205+
206+#define HL_WAIT_CS_STATUS_COMPLETED 0
207+#define HL_WAIT_CS_STATUS_BUSY 1
208+#define HL_WAIT_CS_STATUS_TIMEDOUT 2
209+#define HL_WAIT_CS_STATUS_ABORTED 3
210+#define HL_WAIT_CS_STATUS_INTERRUPTED 4
211+
212+struct hl_wait_cs_out {
213+ /* HL_WAIT_CS_STATUS_* */
214+ __u32 status;
215+ __u32 pad;
216+};
217+
218+union hl_wait_cs_args {
219+ struct hl_wait_cs_in in;
220+ struct hl_wait_cs_out out;
221+};
222+
223+/* Opcode to alloc device memory */
224+#define HL_MEM_OP_ALLOC 0
225+/* Opcode to free previously allocated device memory */
226+#define HL_MEM_OP_FREE 1
227+/* Opcode to map host memory */
228+#define HL_MEM_OP_MAP 2
229+/* Opcode to unmap previously mapped host memory */
230+#define HL_MEM_OP_UNMAP 3
231+
232+/* Memory flags */
233+#define HL_MEM_CONTIGUOUS 0x1
234+#define HL_MEM_SHARED 0x2
235+#define HL_MEM_USERPTR 0x4
236+
237+struct hl_mem_in {
238+ union {
239+ /* HL_MEM_OP_ALLOC- allocate device memory */
240+ struct {
241+ /* Size to alloc */
242+ __u64 mem_size;
243+ } alloc;
244+
245+ /* HL_MEM_OP_FREE - free device memory */
246+ struct {
247+ /* Handle returned from HL_MEM_OP_ALLOC */
248+ __u64 handle;
249+ } free;
250+
251+ /* HL_MEM_OP_MAP - map device memory */
252+ struct {
253+ /*
254+ * Requested virtual address of mapped memory.
255+ * KMD will try to map the requested region to this
256+ * hint address, as long as the address is valid and
257+ * not already mapped. The user should check the
258+ * returned address of the IOCTL to make sure he got
259+ * the hint address. Passing 0 here means that KMD
260+ * will choose the address itself.
261+ */
262+ __u64 hint_addr;
263+ /* Handle returned from HL_MEM_OP_ALLOC */
264+ __u64 handle;
265+ } map_device;
266+
267+ /* HL_MEM_OP_MAP - map host memory */
268+ struct {
269+ /* Address of allocated host memory */
270+ __u64 host_virt_addr;
271+ /*
272+ * Requested virtual address of mapped memory.
273+ * KMD will try to map the requested region to this
274+ * hint address, as long as the address is valid and
275+ * not already mapped. The user should check the
276+ * returned address of the IOCTL to make sure he got
277+ * the hint address. Passing 0 here means that KMD
278+ * will choose the address itself.
279+ */
280+ __u64 hint_addr;
281+ /* Size of allocated host memory */
282+ __u64 mem_size;
283+ } map_host;
284+
285+ /* HL_MEM_OP_UNMAP - unmap host memory */
286+ struct {
287+ /* Virtual address returned from HL_MEM_OP_MAP */
288+ __u64 device_virt_addr;
289+ } unmap;
290+ };
291+
292+ /* HL_MEM_OP_* */
293+ __u32 op;
294+ /* HL_MEM_* flags */
295+ __u32 flags;
296+ /* Context ID - Currently not in use */
297+ __u32 ctx_id;
298+ __u32 pad;
299+};
300+
301+struct hl_mem_out {
302+ union {
303+ /*
304+ * Used for HL_MEM_OP_MAP as the virtual address that was
305+ * assigned in the device VA space.
306+ * A value of 0 means the requested operation failed.
307+ */
308+ __u64 device_virt_addr;
309+
310+ /*
311+ * Used for HL_MEM_OP_ALLOC. This is the assigned
312+ * handle for the allocated memory
313+ */
314+ __u64 handle;
315+ };
316+};
317+
318+union hl_mem_args {
319+ struct hl_mem_in in;
320+ struct hl_mem_out out;
321+};
322+
323+/*
324+ * Various information operations such as:
325+ * - H/W IP information
326+ * - Current dram usage
327+ *
328+ * The user calls this IOCTL with an opcode that describes the required
329+ * information. The user should supply a pointer to a user-allocated memory
330+ * chunk, which will be filled by the driver with the requested information.
331+ *
332+ * The user supplies the maximum amount of size to copy into the user's memory,
333+ * in order to prevent data corruption in case of differences between the
334+ * definitions of structures in kernel and userspace, e.g. in case of old
335+ * userspace and new kernel driver
336+ */
337+#define HL_IOCTL_INFO \
338+ _IOWR('H', 0x01, struct hl_info_args)
339+
340+/*
341+ * Command Buffer
342+ * - Request a Command Buffer
343+ * - Destroy a Command Buffer
344+ *
345+ * The command buffers are memory blocks that reside in DMA-able address
346+ * space and are physically contiguous so they can be accessed by the device
347+ * directly. They are allocated using the coherent DMA API.
348+ *
349+ * When creating a new CB, the IOCTL returns a handle of it, and the user-space
350+ * process needs to use that handle to mmap the buffer so it can access them.
351+ *
352+ */
353+#define HL_IOCTL_CB \
354+ _IOWR('H', 0x02, union hl_cb_args)
355+
356+/*
357+ * Command Submission
358+ *
359+ * To submit work to the device, the user need to call this IOCTL with a set
360+ * of JOBS. That set of JOBS constitutes a CS object.
361+ * Each JOB will be enqueued on a specific queue, according to the user's input.
362+ * There can be more then one JOB per queue.
363+ *
364+ * There are two types of queues - external and internal. External queues
365+ * are DMA queues which transfer data from/to the Host. All other queues are
366+ * internal. The driver will get completion notifications from the device only
367+ * on JOBS which are enqueued in the external queues.
368+ *
369+ * For jobs on external queues, the user needs to create command buffers
370+ * through the CB ioctl and give the CB's handle to the CS ioctl. For jobs on
371+ * internal queues, the user needs to prepare a "command buffer" with packets
372+ * on either the SRAM or DRAM, and give the device address of that buffer to
373+ * the CS ioctl.
374+ *
375+ * This IOCTL is asynchronous in regard to the actual execution of the CS. This
376+ * means it returns immediately after ALL the JOBS were enqueued on their
377+ * relevant queues. Therefore, the user mustn't assume the CS has been completed
378+ * or has even started to execute.
379+ *
380+ * Upon successful enqueue, the IOCTL returns an opaque handle which the user
381+ * can use with the "Wait for CS" IOCTL to check whether the handle's CS
382+ * external JOBS have been completed. Note that if the CS has internal JOBS
383+ * which can execute AFTER the external JOBS have finished, the driver might
384+ * report that the CS has finished executing BEFORE the internal JOBS have
385+ * actually finish executing.
386+ *
387+ * The CS IOCTL will receive three sets of JOBS. One set is for "restore" phase,
388+ * a second set is for "execution" phase and a third set is for "store" phase.
389+ * The JOBS on the "restore" phase are enqueued only after context-switch
390+ * (or if its the first CS for this context). The user can also order the
391+ * driver to run the "restore" phase explicitly
392+ *
393+ */
394+#define HL_IOCTL_CS \
395+ _IOWR('H', 0x03, union hl_cs_args)
396+
397+/*
398+ * Wait for Command Submission
399+ *
400+ * The user can call this IOCTL with a handle it received from the CS IOCTL
401+ * to wait until the handle's CS has finished executing. The user will wait
402+ * inside the kernel until the CS has finished or until the user-requeusted
403+ * timeout has expired.
404+ *
405+ * The return value of the IOCTL is a standard Linux error code. The possible
406+ * values are:
407+ *
408+ * EINTR - Kernel waiting has been interrupted, e.g. due to OS signal
409+ * that the user process received
410+ * ETIMEDOUT - The CS has caused a timeout on the device
411+ * EIO - The CS was aborted (usually because the device was reset)
412+ * ENODEV - The device wants to do hard-reset (so user need to close FD)
413+ *
414+ * The driver also returns a custom define inside the IOCTL which can be:
415+ *
416+ * HL_WAIT_CS_STATUS_COMPLETED - The CS has been completed successfully (0)
417+ * HL_WAIT_CS_STATUS_BUSY - The CS is still executing (0)
418+ * HL_WAIT_CS_STATUS_TIMEDOUT - The CS has caused a timeout on the device
419+ * (ETIMEDOUT)
420+ * HL_WAIT_CS_STATUS_ABORTED - The CS was aborted, usually because the
421+ * device was reset (EIO)
422+ * HL_WAIT_CS_STATUS_INTERRUPTED - Waiting for the CS was interrupted (EINTR)
423+ *
424+ */
425+
426+#define HL_IOCTL_WAIT_CS \
427+ _IOWR('H', 0x04, union hl_wait_cs_args)
428+
429+/*
430+ * Memory
431+ * - Map host memory to device MMU
432+ * - Unmap host memory from device MMU
433+ *
434+ * This IOCTL allows the user to map host memory to the device MMU
435+ *
436+ * For host memory, the IOCTL doesn't allocate memory. The user is supposed
437+ * to allocate the memory in user-space (malloc/new). The driver pins the
438+ * physical pages (up to the allowed limit by the OS), assigns a virtual
439+ * address in the device VA space and initializes the device MMU.
440+ *
441+ * There is an option for the user to specify the requested virtual address.
442+ *
443+ */
444+#define HL_IOCTL_MEMORY \
445+ _IOWR('H', 0x05, union hl_mem_args)
446+
447+#define HL_COMMAND_START 0x01
448+#define HL_COMMAND_END 0x06
449+
450+#endif /* HABANALABS_H_ */
include/uapi/mtd/ubi-user.h+5−0
@@ -171,6 +171,11 @@ · 170 unmodified lines
171171 /* Re-name volumes */
172172 #define UBI_IOCRNVOL _IOW(UBI_IOC_MAGIC, 3, struct ubi_rnvol_req)
173173
174+/* Read the specified PEB and scrub it if there are bitflips */
175+#define UBI_IOCRPEB _IOW(UBI_IOC_MAGIC, 4, __s32)
176+/* Force scrubbing on the specified PEB */
177+#define UBI_IOCSPEB _IOW(UBI_IOC_MAGIC, 5, __s32)
178+
174179 /* ioctl commands of the UBI control character device */
175180
176181 #define UBI_CTRL_IOC_MAGIC 'o'
include/uapi/rdma/bnxt_re-abi.h+11−0
@@ -44,6 +44,14 @@ · 43 unmodified lines
4444
4545 #define BNXT_RE_ABI_VERSION 1
4646
47+#define BNXT_RE_CHIP_ID0_CHIP_NUM_SFT 0x00
48+#define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
49+#define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
50+
51+enum {
52+ BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
53+};
54+
4755 struct bnxt_re_uctx_resp {
4856 __u32 dev_id;
4957 __u32 max_qp;
@@ -51,6 +59,9 @@ struct bnxt_re_uctx_resp { · 1 unmodified line
5159 __u32 cqe_sz;
5260 __u32 max_cqd;
5361 __u32 rsvd;
62+ __aligned_u64 comp_mask;
63+ __u32 chip_id0;
64+ __u32 chip_id1;
5465 };
5566
5667 /*
include/uapi/rdma/ib_user_verbs.h+2−0
@@ -270,6 +270,8 @@ struct ib_uverbs_ex_query_device_resp { · 269 unmodified lines
270270 struct ib_uverbs_tm_caps tm_caps;
271271 struct ib_uverbs_cq_moderation_caps cq_moderation_caps;
272272 __aligned_u64 max_dm_size;
273+ __u32 xrc_odp_caps;
274+ __u32 reserved;
273275 };
274276
275277 struct ib_uverbs_query_port {
include/uapi/rdma/mlx5_user_ioctl_cmds.h+18−0
@@ -84,6 +84,14 @@ enum mlx5_ib_devx_obj_query_attrs { · 83 unmodified lines
8484 MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
8585 };
8686
87+enum mlx5_ib_devx_obj_query_async_attrs {
88+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
89+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_CMD_IN,
90+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_FD,
91+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_WR_ID,
92+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_ASYNC_OUT_LEN,
93+};
94+
8795 enum mlx5_ib_devx_query_eqn_attrs {
8896 MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
8997 MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
@@ -94,6 +102,7 @@ enum mlx5_ib_devx_obj_methods { · 4 unmodified lines
94102 MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
95103 MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
96104 MLX5_IB_METHOD_DEVX_OBJ_QUERY,
105+ MLX5_IB_METHOD_DEVX_OBJ_ASYNC_QUERY,
97106 };
98107
99108 enum mlx5_ib_devx_umem_reg_attrs {
@@ -113,11 +122,20 @@ enum mlx5_ib_devx_umem_methods { · 13 unmodified lines
113122 MLX5_IB_METHOD_DEVX_UMEM_DEREG,
114123 };
115124
125+enum mlx5_ib_devx_async_cmd_fd_alloc_attrs {
126+ MLX5_IB_ATTR_DEVX_ASYNC_CMD_FD_ALLOC_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
127+};
128+
129+enum mlx5_ib_devx_async_cmd_fd_methods {
130+ MLX5_IB_METHOD_DEVX_ASYNC_CMD_FD_ALLOC = (1U << UVERBS_ID_NS_SHIFT),
131+};
132+
116133 enum mlx5_ib_objects {
117134 MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
118135 MLX5_IB_OBJECT_DEVX_OBJ,
119136 MLX5_IB_OBJECT_DEVX_UMEM,
120137 MLX5_IB_OBJECT_FLOW_MATCHER,
138+ MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD,
121139 };
122140
123141 enum mlx5_ib_flow_matcher_create_attrs {
include/uapi/rdma/mlx5_user_ioctl_verbs.h+5−0
@@ -51,5 +51,10 @@ enum mlx5_ib_uapi_flow_action_packet_reformat_type { · 50 unmodified lines
5151 MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL = 0x3,
5252 };
5353
54+struct mlx5_ib_uapi_devx_async_cmd_hdr {
55+ __aligned_u64 wr_id;
56+ __u8 out_data[];
57+};
58+
5459 #endif
5560
include/uapi/rdma/rdma_netlink.h+58−16
@@ -5,8 +5,7 @@ · 4 unmodified lines
55 #include <linux/types.h>
66
77 enum {
8− RDMA_NL_RDMA_CM = 1,
9− RDMA_NL_IWCM,
8+ RDMA_NL_IWCM = 2,
109 RDMA_NL_RSVD,
1110 RDMA_NL_LS, /* RDMA Local Services */
1211 RDMA_NL_NLDEV, /* RDMA device interface */
@@ -14,8 +13,7 @@ enum { · 1 unmodified line
1413 };
1514
1615 enum {
17− RDMA_NL_GROUP_CM = 1,
18− RDMA_NL_GROUP_IWPM,
16+ RDMA_NL_GROUP_IWPM = 2,
1917 RDMA_NL_GROUP_LS,
2018 RDMA_NL_NUM_GROUPS
2119 };
@@ -24,15 +22,17 @@ enum { · 2 unmodified lines
2422 #define RDMA_NL_GET_OP(type) (type & ((1 << 10) - 1))
2523 #define RDMA_NL_GET_TYPE(client, op) ((client << 10) + op)
2624
27−enum {
28− RDMA_NL_RDMA_CM_ID_STATS = 0,
29− RDMA_NL_RDMA_CM_NUM_OPS
30−};
25+/* The minimum version that the iwpm kernel supports */
26+#define IWPM_UABI_VERSION_MIN 3
27+
28+/* The latest version that the iwpm kernel supports */
29+#define IWPM_UABI_VERSION 4
3130
31+/* iwarp port mapper message flags */
3232 enum {
33− RDMA_NL_RDMA_CM_ATTR_SRC_ADDR = 1,
34− RDMA_NL_RDMA_CM_ATTR_DST_ADDR,
35− RDMA_NL_RDMA_CM_NUM_ATTR,
33+
34+ /* Do not map the port for this IWPM request */
35+ IWPM_FLAGS_NO_PORT_MAP = (1 << 0),
3636 };
3737
3838 /* iwarp port mapper op-codes */
@@ -45,6 +45,7 @@ enum { · 6 unmodified lines
4545 RDMA_NL_IWPM_HANDLE_ERR,
4646 RDMA_NL_IWPM_MAPINFO,
4747 RDMA_NL_IWPM_MAPINFO_NUM,
48+ RDMA_NL_IWPM_HELLO,
4849 RDMA_NL_IWPM_NUM_OPS
4950 };
5051
@@ -83,20 +84,38 @@ enum { · 32 unmodified lines
8384 IWPM_NLA_MANAGE_MAPPING_UNSPEC = 0,
8485 IWPM_NLA_MANAGE_MAPPING_SEQ,
8586 IWPM_NLA_MANAGE_ADDR,
86− IWPM_NLA_MANAGE_MAPPED_LOC_ADDR,
87+ IWPM_NLA_MANAGE_FLAGS,
88+ IWPM_NLA_MANAGE_MAPPING_MAX
89+};
90+
91+enum {
92+ IWPM_NLA_RMANAGE_MAPPING_UNSPEC = 0,
93+ IWPM_NLA_RMANAGE_MAPPING_SEQ,
94+ IWPM_NLA_RMANAGE_ADDR,
95+ IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
96+ /* The following maintains bisectability of rdma-core */
97+ IWPM_NLA_MANAGE_MAPPED_LOC_ADDR = IWPM_NLA_RMANAGE_MAPPED_LOC_ADDR,
8798 IWPM_NLA_RMANAGE_MAPPING_ERR,
8899 IWPM_NLA_RMANAGE_MAPPING_MAX
89100 };
90101
91−#define IWPM_NLA_MANAGE_MAPPING_MAX 3
92−#define IWPM_NLA_QUERY_MAPPING_MAX 4
93102 #define IWPM_NLA_MAPINFO_SEND_MAX 3
103+#define IWPM_NLA_REMOVE_MAPPING_MAX 3
94104
95105 enum {
96106 IWPM_NLA_QUERY_MAPPING_UNSPEC = 0,
97107 IWPM_NLA_QUERY_MAPPING_SEQ,
98108 IWPM_NLA_QUERY_LOCAL_ADDR,
99109 IWPM_NLA_QUERY_REMOTE_ADDR,
110+ IWPM_NLA_QUERY_FLAGS,
111+ IWPM_NLA_QUERY_MAPPING_MAX,
112+};
113+
114+enum {
115+ IWPM_NLA_RQUERY_MAPPING_UNSPEC = 0,
116+ IWPM_NLA_RQUERY_MAPPING_SEQ,
117+ IWPM_NLA_RQUERY_LOCAL_ADDR,
118+ IWPM_NLA_RQUERY_REMOTE_ADDR,
100119 IWPM_NLA_RQUERY_MAPPED_LOC_ADDR,
101120 IWPM_NLA_RQUERY_MAPPED_REM_ADDR,
102121 IWPM_NLA_RQUERY_MAPPING_ERR,
@@ -114,6 +133,7 @@ enum { · 11 unmodified lines
114133 IWPM_NLA_MAPINFO_UNSPEC = 0,
115134 IWPM_NLA_MAPINFO_LOCAL_ADDR,
116135 IWPM_NLA_MAPINFO_MAPPED_ADDR,
136+ IWPM_NLA_MAPINFO_FLAGS,
117137 IWPM_NLA_MAPINFO_MAX
118138 };
119139
@@ -132,6 +152,12 @@ enum { · 12 unmodified lines
132152 IWPM_NLA_ERR_MAX
133153 };
134154
155+enum {
156+ IWPM_NLA_HELLO_UNSPEC = 0,
157+ IWPM_NLA_HELLO_ABI_VERSION,
158+ IWPM_NLA_HELLO_MAX
159+};
160+
135161 /*
136162 * Local service operations:
137163 * RESOLVE - The client requests the local service to resolve a path.
@@ -229,9 +255,11 @@ enum rdma_nldev_command { · 91 unmodified lines
229255 RDMA_NLDEV_CMD_GET, /* can dump */
230256 RDMA_NLDEV_CMD_SET,
231257
232− /* 3 - 4 are free to use */
258+ RDMA_NLDEV_CMD_NEWLINK,
233259
234− RDMA_NLDEV_CMD_PORT_GET = 5, /* can dump */
260+ RDMA_NLDEV_CMD_DELLINK,
261+
262+ RDMA_NLDEV_CMD_PORT_GET, /* can dump */
235263
236264 /* 6 - 8 are free to use */
237265
@@ -430,6 +458,20 @@ enum rdma_nldev_attr { · 192 unmodified lines
430458 RDMA_NLDEV_ATTR_DRIVER_S64, /* s64 */
431459 RDMA_NLDEV_ATTR_DRIVER_U64, /* u64 */
432460
461+ /*
462+ * Indexes to get/set secific entry,
463+ * for QP use RDMA_NLDEV_ATTR_RES_LQPN
464+ */
465+ RDMA_NLDEV_ATTR_RES_PDN, /* u32 */
466+ RDMA_NLDEV_ATTR_RES_CQN, /* u32 */
467+ RDMA_NLDEV_ATTR_RES_MRN, /* u32 */
468+ RDMA_NLDEV_ATTR_RES_CM_IDN, /* u32 */
469+ RDMA_NLDEV_ATTR_RES_CTXN, /* u32 */
470+ /*
471+ * Identifies the rdma driver. eg: "rxe" or "siw"
472+ */
473+ RDMA_NLDEV_ATTR_LINK_TYPE, /* string */
474+
433475 /*
434476 * Always the end
435477 */
include/uapi/rdma/rdma_user_cm.h+4−0
@@ -300,6 +300,10 @@ enum { · 299 unmodified lines
300300 RDMA_OPTION_ID_TOS = 0,
301301 RDMA_OPTION_ID_REUSEADDR = 1,
302302 RDMA_OPTION_ID_AFONLY = 2,
303+ RDMA_OPTION_ID_ACK_TIMEOUT = 3
304+};
305+
306+enum {
303307 RDMA_OPTION_IB_PATH = 1
304308 };
305309
include/uapi/rdma/rdma_user_rxe.h+1−2
@@ -58,8 +58,7 @@ struct rxe_global_route { · 57 unmodified lines
5858 struct rxe_av {
5959 __u8 port_num;
6060 __u8 network_type;
61− __u16 reserved1;
62− __u32 reserved2;
61+ __u8 dmac[6];
6362 struct rxe_global_route grh;
6463 union {
6564 struct sockaddr_in _sockaddr_in;

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