History

Merge 5.8-rc6 into tty-next

We need the serial/tty fixes in here as well.

Greg Kroah-Hartman committed 6 years ago

Commit 6f2c6592 parents ea1be1e ba47d841395 files · +12287 −6522Browse files

Showing the changes to include/linux (54 of 1395 files). Show all

Unified · Split

54 files
  1. include/linux/atomic-fallback.h +235 −1
  2. include/linux/bits.h +1 −2
  3. include/linux/blkdev.h +1 −0
  4. include/linux/bpf-netns.h +3 −2
  5. include/linux/bpf.h +11 −2
  6. include/linux/btf.h +5 −0
  7. include/linux/cgroup-defs.h +6 −2
  8. include/linux/cgroup.h +3 −1
  9. include/linux/compiler-clang.h +8 −0
  10. include/linux/compiler-gcc.h +7 −1
  11. include/linux/compiler.h +1 −1
  12. include/linux/compiler_attributes.h +1 −0
  13. include/linux/compiler_types.h +7 −34
  14. include/linux/device.h +3 −2
  15. include/linux/dma-buf.h +1 −0
  16. include/linux/dma-direct.h +2 −2
  17. include/linux/dma-mapping.h +5 −0
  18. include/linux/efi.h +3 −5
  19. include/linux/filter.h +2 −2
  20. include/linux/fs.h +2 −1
  21. include/linux/fs_context.h +1 −0
  22. include/linux/host1x.h +3 −0
  23. include/linux/ieee80211.h +4 −0
  24. include/linux/if_vlan.h +22 −7
  25. include/linux/input/elan-i2c-ids.h +7 −0
  26. include/linux/intel-iommu.h +1 −0
  27. include/linux/irq_work.h +8 −18
  28. include/linux/kallsyms.h +3 −2
  29. include/linux/kgdb.h +14 −3
  30. include/linux/libata.h +1 −1
  31. include/linux/lsm_hook_defs.h +2 −2
  32. include/linux/mlx5/driver.h +1 −0
  33. include/linux/mlx5/mlx5_ifc.h +34 −4
  34. include/linux/mmzone.h +2 −2
  35. include/linux/mod_devicetable.h +1 −1
  36. include/linux/netdevice.h +1 −1
  37. include/linux/netfilter_ipv4/ip_tables.h +6 −0
  38. include/linux/netfilter_ipv6/ip6_tables.h +3 −0
  39. include/linux/pci.h +5 −6
  40. include/linux/phy.h +1 −0
  41. include/linux/qed/qed_chain.h +16 −10
  42. include/linux/scatterlist.h +4 −4
  43. include/linux/sched.h +1 −6
  44. include/linux/sched/jobctl.h +3 −1
  45. include/linux/serial_core.h +98 −4
  46. include/linux/skmsg.h +13 −0
  47. include/linux/smp.h +8 −15
  48. include/linux/smp_types.h +66 −0
  49. include/linux/swap.h +1 −0
  50. include/linux/syscalls.h +1 −1
  51. include/linux/task_work.h +4 −1
  52. include/linux/timekeeping.h +7 −7
  53. include/linux/tpm_eventlog.h +13 −1
  54. include/linux/vmalloc.h +0 −1
include/linux/atomic-fallback.h+235−1
@@ -77,6 +77,9 @@ · 76 unmodified lines
7777
7878 #endif /* cmpxchg64_relaxed */
7979
80+#define arch_atomic_read atomic_read
81+#define arch_atomic_read_acquire atomic_read_acquire
82+
8083 #ifndef atomic_read_acquire
8184 static __always_inline int
8285 atomic_read_acquire(const atomic_t *v)
@@ -86,6 +89,9 @@ atomic_read_acquire(const atomic_t *v) · 3 unmodified lines
8689 #define atomic_read_acquire atomic_read_acquire
8790 #endif
8891
92+#define arch_atomic_set atomic_set
93+#define arch_atomic_set_release atomic_set_release
94+
8995 #ifndef atomic_set_release
9096 static __always_inline void
9197 atomic_set_release(atomic_t *v, int i)
@@ -95,6 +101,13 @@ atomic_set_release(atomic_t *v, int i) · 3 unmodified lines
95101 #define atomic_set_release atomic_set_release
96102 #endif
97103
104+#define arch_atomic_add atomic_add
105+
106+#define arch_atomic_add_return atomic_add_return
107+#define arch_atomic_add_return_acquire atomic_add_return_acquire
108+#define arch_atomic_add_return_release atomic_add_return_release
109+#define arch_atomic_add_return_relaxed atomic_add_return_relaxed
110+
98111 #ifndef atomic_add_return_relaxed
99112 #define atomic_add_return_acquire atomic_add_return
100113 #define atomic_add_return_release atomic_add_return
@@ -137,6 +150,11 @@ atomic_add_return(int i, atomic_t *v) · 36 unmodified lines
137150
138151 #endif /* atomic_add_return_relaxed */
139152
153+#define arch_atomic_fetch_add atomic_fetch_add
154+#define arch_atomic_fetch_add_acquire atomic_fetch_add_acquire
155+#define arch_atomic_fetch_add_release atomic_fetch_add_release
156+#define arch_atomic_fetch_add_relaxed atomic_fetch_add_relaxed
157+
140158 #ifndef atomic_fetch_add_relaxed
141159 #define atomic_fetch_add_acquire atomic_fetch_add
142160 #define atomic_fetch_add_release atomic_fetch_add
@@ -179,6 +197,13 @@ atomic_fetch_add(int i, atomic_t *v) · 36 unmodified lines
179197
180198 #endif /* atomic_fetch_add_relaxed */
181199
200+#define arch_atomic_sub atomic_sub
201+
202+#define arch_atomic_sub_return atomic_sub_return
203+#define arch_atomic_sub_return_acquire atomic_sub_return_acquire
204+#define arch_atomic_sub_return_release atomic_sub_return_release
205+#define arch_atomic_sub_return_relaxed atomic_sub_return_relaxed
206+
182207 #ifndef atomic_sub_return_relaxed
183208 #define atomic_sub_return_acquire atomic_sub_return
184209 #define atomic_sub_return_release atomic_sub_return
@@ -221,6 +246,11 @@ atomic_sub_return(int i, atomic_t *v) · 36 unmodified lines
221246
222247 #endif /* atomic_sub_return_relaxed */
223248
249+#define arch_atomic_fetch_sub atomic_fetch_sub
250+#define arch_atomic_fetch_sub_acquire atomic_fetch_sub_acquire
251+#define arch_atomic_fetch_sub_release atomic_fetch_sub_release
252+#define arch_atomic_fetch_sub_relaxed atomic_fetch_sub_relaxed
253+
224254 #ifndef atomic_fetch_sub_relaxed
225255 #define atomic_fetch_sub_acquire atomic_fetch_sub
226256 #define atomic_fetch_sub_release atomic_fetch_sub
@@ -263,6 +293,8 @@ atomic_fetch_sub(int i, atomic_t *v) · 36 unmodified lines
263293
264294 #endif /* atomic_fetch_sub_relaxed */
265295
296+#define arch_atomic_inc atomic_inc
297+
266298 #ifndef atomic_inc
267299 static __always_inline void
268300 atomic_inc(atomic_t *v)
@@ -272,6 +304,11 @@ atomic_inc(atomic_t *v) · 3 unmodified lines
272304 #define atomic_inc atomic_inc
273305 #endif
274306
307+#define arch_atomic_inc_return atomic_inc_return
308+#define arch_atomic_inc_return_acquire atomic_inc_return_acquire
309+#define arch_atomic_inc_return_release atomic_inc_return_release
310+#define arch_atomic_inc_return_relaxed atomic_inc_return_relaxed
311+
275312 #ifndef atomic_inc_return_relaxed
276313 #ifdef atomic_inc_return
277314 #define atomic_inc_return_acquire atomic_inc_return
@@ -353,6 +390,11 @@ atomic_inc_return(atomic_t *v) · 75 unmodified lines
353390
354391 #endif /* atomic_inc_return_relaxed */
355392
393+#define arch_atomic_fetch_inc atomic_fetch_inc
394+#define arch_atomic_fetch_inc_acquire atomic_fetch_inc_acquire
395+#define arch_atomic_fetch_inc_release atomic_fetch_inc_release
396+#define arch_atomic_fetch_inc_relaxed atomic_fetch_inc_relaxed
397+
356398 #ifndef atomic_fetch_inc_relaxed
357399 #ifdef atomic_fetch_inc
358400 #define atomic_fetch_inc_acquire atomic_fetch_inc
@@ -434,6 +476,8 @@ atomic_fetch_inc(atomic_t *v) · 75 unmodified lines
434476
435477 #endif /* atomic_fetch_inc_relaxed */
436478
479+#define arch_atomic_dec atomic_dec
480+
437481 #ifndef atomic_dec
438482 static __always_inline void
439483 atomic_dec(atomic_t *v)
@@ -443,6 +487,11 @@ atomic_dec(atomic_t *v) · 3 unmodified lines
443487 #define atomic_dec atomic_dec
444488 #endif
445489
490+#define arch_atomic_dec_return atomic_dec_return
491+#define arch_atomic_dec_return_acquire atomic_dec_return_acquire
492+#define arch_atomic_dec_return_release atomic_dec_return_release
493+#define arch_atomic_dec_return_relaxed atomic_dec_return_relaxed
494+
446495 #ifndef atomic_dec_return_relaxed
447496 #ifdef atomic_dec_return
448497 #define atomic_dec_return_acquire atomic_dec_return
@@ -524,6 +573,11 @@ atomic_dec_return(atomic_t *v) · 75 unmodified lines
524573
525574 #endif /* atomic_dec_return_relaxed */
526575
576+#define arch_atomic_fetch_dec atomic_fetch_dec
577+#define arch_atomic_fetch_dec_acquire atomic_fetch_dec_acquire
578+#define arch_atomic_fetch_dec_release atomic_fetch_dec_release
579+#define arch_atomic_fetch_dec_relaxed atomic_fetch_dec_relaxed
580+
527581 #ifndef atomic_fetch_dec_relaxed
528582 #ifdef atomic_fetch_dec
529583 #define atomic_fetch_dec_acquire atomic_fetch_dec
@@ -605,6 +659,13 @@ atomic_fetch_dec(atomic_t *v) · 75 unmodified lines
605659
606660 #endif /* atomic_fetch_dec_relaxed */
607661
662+#define arch_atomic_and atomic_and
663+
664+#define arch_atomic_fetch_and atomic_fetch_and
665+#define arch_atomic_fetch_and_acquire atomic_fetch_and_acquire
666+#define arch_atomic_fetch_and_release atomic_fetch_and_release
667+#define arch_atomic_fetch_and_relaxed atomic_fetch_and_relaxed
668+
608669 #ifndef atomic_fetch_and_relaxed
609670 #define atomic_fetch_and_acquire atomic_fetch_and
610671 #define atomic_fetch_and_release atomic_fetch_and
@@ -647,6 +708,8 @@ atomic_fetch_and(int i, atomic_t *v) · 36 unmodified lines
647708
648709 #endif /* atomic_fetch_and_relaxed */
649710
711+#define arch_atomic_andnot atomic_andnot
712+
650713 #ifndef atomic_andnot
651714 static __always_inline void
652715 atomic_andnot(int i, atomic_t *v)
@@ -656,6 +719,11 @@ atomic_andnot(int i, atomic_t *v) · 3 unmodified lines
656719 #define atomic_andnot atomic_andnot
657720 #endif
658721
722+#define arch_atomic_fetch_andnot atomic_fetch_andnot
723+#define arch_atomic_fetch_andnot_acquire atomic_fetch_andnot_acquire
724+#define arch_atomic_fetch_andnot_release atomic_fetch_andnot_release
725+#define arch_atomic_fetch_andnot_relaxed atomic_fetch_andnot_relaxed
726+
659727 #ifndef atomic_fetch_andnot_relaxed
660728 #ifdef atomic_fetch_andnot
661729 #define atomic_fetch_andnot_acquire atomic_fetch_andnot
@@ -737,6 +805,13 @@ atomic_fetch_andnot(int i, atomic_t *v) · 75 unmodified lines
737805
738806 #endif /* atomic_fetch_andnot_relaxed */
739807
808+#define arch_atomic_or atomic_or
809+
810+#define arch_atomic_fetch_or atomic_fetch_or
811+#define arch_atomic_fetch_or_acquire atomic_fetch_or_acquire
812+#define arch_atomic_fetch_or_release atomic_fetch_or_release
813+#define arch_atomic_fetch_or_relaxed atomic_fetch_or_relaxed
814+
740815 #ifndef atomic_fetch_or_relaxed
741816 #define atomic_fetch_or_acquire atomic_fetch_or
742817 #define atomic_fetch_or_release atomic_fetch_or
@@ -779,6 +854,13 @@ atomic_fetch_or(int i, atomic_t *v) · 36 unmodified lines
779854
780855 #endif /* atomic_fetch_or_relaxed */
781856
857+#define arch_atomic_xor atomic_xor
858+
859+#define arch_atomic_fetch_xor atomic_fetch_xor
860+#define arch_atomic_fetch_xor_acquire atomic_fetch_xor_acquire
861+#define arch_atomic_fetch_xor_release atomic_fetch_xor_release
862+#define arch_atomic_fetch_xor_relaxed atomic_fetch_xor_relaxed
863+
782864 #ifndef atomic_fetch_xor_relaxed
783865 #define atomic_fetch_xor_acquire atomic_fetch_xor
784866 #define atomic_fetch_xor_release atomic_fetch_xor
@@ -821,6 +903,11 @@ atomic_fetch_xor(int i, atomic_t *v) · 36 unmodified lines
821903
822904 #endif /* atomic_fetch_xor_relaxed */
823905
906+#define arch_atomic_xchg atomic_xchg
907+#define arch_atomic_xchg_acquire atomic_xchg_acquire
908+#define arch_atomic_xchg_release atomic_xchg_release
909+#define arch_atomic_xchg_relaxed atomic_xchg_relaxed
910+
824911 #ifndef atomic_xchg_relaxed
825912 #define atomic_xchg_acquire atomic_xchg
826913 #define atomic_xchg_release atomic_xchg
@@ -863,6 +950,11 @@ atomic_xchg(atomic_t *v, int i) · 36 unmodified lines
863950
864951 #endif /* atomic_xchg_relaxed */
865952
953+#define arch_atomic_cmpxchg atomic_cmpxchg
954+#define arch_atomic_cmpxchg_acquire atomic_cmpxchg_acquire
955+#define arch_atomic_cmpxchg_release atomic_cmpxchg_release
956+#define arch_atomic_cmpxchg_relaxed atomic_cmpxchg_relaxed
957+
866958 #ifndef atomic_cmpxchg_relaxed
867959 #define atomic_cmpxchg_acquire atomic_cmpxchg
868960 #define atomic_cmpxchg_release atomic_cmpxchg
@@ -905,6 +997,11 @@ atomic_cmpxchg(atomic_t *v, int old, int new) · 36 unmodified lines
905997
906998 #endif /* atomic_cmpxchg_relaxed */
907999
1000+#define arch_atomic_try_cmpxchg atomic_try_cmpxchg
1001+#define arch_atomic_try_cmpxchg_acquire atomic_try_cmpxchg_acquire
1002+#define arch_atomic_try_cmpxchg_release atomic_try_cmpxchg_release
1003+#define arch_atomic_try_cmpxchg_relaxed atomic_try_cmpxchg_relaxed
1004+
9081005 #ifndef atomic_try_cmpxchg_relaxed
9091006 #ifdef atomic_try_cmpxchg
9101007 #define atomic_try_cmpxchg_acquire atomic_try_cmpxchg
@@ -1002,6 +1099,8 @@ atomic_try_cmpxchg(atomic_t *v, int *old, int new) · 91 unmodified lines
10021099
10031100 #endif /* atomic_try_cmpxchg_relaxed */
10041101
1102+#define arch_atomic_sub_and_test atomic_sub_and_test
1103+
10051104 #ifndef atomic_sub_and_test
10061105 /**
10071106 * atomic_sub_and_test - subtract value from variable and test result
@@ -1020,6 +1119,8 @@ atomic_sub_and_test(int i, atomic_t *v) · 12 unmodified lines
10201119 #define atomic_sub_and_test atomic_sub_and_test
10211120 #endif
10221121
1122+#define arch_atomic_dec_and_test atomic_dec_and_test
1123+
10231124 #ifndef atomic_dec_and_test
10241125 /**
10251126 * atomic_dec_and_test - decrement and test
@@ -1037,6 +1138,8 @@ atomic_dec_and_test(atomic_t *v) · 11 unmodified lines
10371138 #define atomic_dec_and_test atomic_dec_and_test
10381139 #endif
10391140
1141+#define arch_atomic_inc_and_test atomic_inc_and_test
1142+
10401143 #ifndef atomic_inc_and_test
10411144 /**
10421145 * atomic_inc_and_test - increment and test
@@ -1054,6 +1157,8 @@ atomic_inc_and_test(atomic_t *v) · 11 unmodified lines
10541157 #define atomic_inc_and_test atomic_inc_and_test
10551158 #endif
10561159
1160+#define arch_atomic_add_negative atomic_add_negative
1161+
10571162 #ifndef atomic_add_negative
10581163 /**
10591164 * atomic_add_negative - add and test if negative
@@ -1072,6 +1177,8 @@ atomic_add_negative(int i, atomic_t *v) · 12 unmodified lines
10721177 #define atomic_add_negative atomic_add_negative
10731178 #endif
10741179
1180+#define arch_atomic_fetch_add_unless atomic_fetch_add_unless
1181+
10751182 #ifndef atomic_fetch_add_unless
10761183 /**
10771184 * atomic_fetch_add_unless - add unless the number is already a given value
@@ -1097,6 +1204,8 @@ atomic_fetch_add_unless(atomic_t *v, int a, int u) · 19 unmodified lines
10971204 #define atomic_fetch_add_unless atomic_fetch_add_unless
10981205 #endif
10991206
1207+#define arch_atomic_add_unless atomic_add_unless
1208+
11001209 #ifndef atomic_add_unless
11011210 /**
11021211 * atomic_add_unless - add unless the number is already a given value
@@ -1115,6 +1224,8 @@ atomic_add_unless(atomic_t *v, int a, int u) · 12 unmodified lines
11151224 #define atomic_add_unless atomic_add_unless
11161225 #endif
11171226
1227+#define arch_atomic_inc_not_zero atomic_inc_not_zero
1228+
11181229 #ifndef atomic_inc_not_zero
11191230 /**
11201231 * atomic_inc_not_zero - increment unless the number is zero
@@ -1131,6 +1242,8 @@ atomic_inc_not_zero(atomic_t *v) · 10 unmodified lines
11311242 #define atomic_inc_not_zero atomic_inc_not_zero
11321243 #endif
11331244
1245+#define arch_atomic_inc_unless_negative atomic_inc_unless_negative
1246+
11341247 #ifndef atomic_inc_unless_negative
11351248 static __always_inline bool
11361249 atomic_inc_unless_negative(atomic_t *v)
@@ -1147,6 +1260,8 @@ atomic_inc_unless_negative(atomic_t *v) · 10 unmodified lines
11471260 #define atomic_inc_unless_negative atomic_inc_unless_negative
11481261 #endif
11491262
1263+#define arch_atomic_dec_unless_positive atomic_dec_unless_positive
1264+
11501265 #ifndef atomic_dec_unless_positive
11511266 static __always_inline bool
11521267 atomic_dec_unless_positive(atomic_t *v)
@@ -1163,6 +1278,8 @@ atomic_dec_unless_positive(atomic_t *v) · 10 unmodified lines
11631278 #define atomic_dec_unless_positive atomic_dec_unless_positive
11641279 #endif
11651280
1281+#define arch_atomic_dec_if_positive atomic_dec_if_positive
1282+
11661283 #ifndef atomic_dec_if_positive
11671284 static __always_inline int
11681285 atomic_dec_if_positive(atomic_t *v)
@@ -1184,6 +1301,9 @@ atomic_dec_if_positive(atomic_t *v) · 15 unmodified lines
11841301 #include <asm-generic/atomic64.h>
11851302 #endif
11861303
1304+#define arch_atomic64_read atomic64_read
1305+#define arch_atomic64_read_acquire atomic64_read_acquire
1306+
11871307 #ifndef atomic64_read_acquire
11881308 static __always_inline s64
11891309 atomic64_read_acquire(const atomic64_t *v)
@@ -1193,6 +1313,9 @@ atomic64_read_acquire(const atomic64_t *v) · 3 unmodified lines
11931313 #define atomic64_read_acquire atomic64_read_acquire
11941314 #endif
11951315
1316+#define arch_atomic64_set atomic64_set
1317+#define arch_atomic64_set_release atomic64_set_release
1318+
11961319 #ifndef atomic64_set_release
11971320 static __always_inline void
11981321 atomic64_set_release(atomic64_t *v, s64 i)
@@ -1202,6 +1325,13 @@ atomic64_set_release(atomic64_t *v, s64 i) · 3 unmodified lines
12021325 #define atomic64_set_release atomic64_set_release
12031326 #endif
12041327
1328+#define arch_atomic64_add atomic64_add
1329+
1330+#define arch_atomic64_add_return atomic64_add_return
1331+#define arch_atomic64_add_return_acquire atomic64_add_return_acquire
1332+#define arch_atomic64_add_return_release atomic64_add_return_release
1333+#define arch_atomic64_add_return_relaxed atomic64_add_return_relaxed
1334+
12051335 #ifndef atomic64_add_return_relaxed
12061336 #define atomic64_add_return_acquire atomic64_add_return
12071337 #define atomic64_add_return_release atomic64_add_return
@@ -1244,6 +1374,11 @@ atomic64_add_return(s64 i, atomic64_t *v) · 36 unmodified lines
12441374
12451375 #endif /* atomic64_add_return_relaxed */
12461376
1377+#define arch_atomic64_fetch_add atomic64_fetch_add
1378+#define arch_atomic64_fetch_add_acquire atomic64_fetch_add_acquire
1379+#define arch_atomic64_fetch_add_release atomic64_fetch_add_release
1380+#define arch_atomic64_fetch_add_relaxed atomic64_fetch_add_relaxed
1381+
12471382 #ifndef atomic64_fetch_add_relaxed
12481383 #define atomic64_fetch_add_acquire atomic64_fetch_add
12491384 #define atomic64_fetch_add_release atomic64_fetch_add
@@ -1286,6 +1421,13 @@ atomic64_fetch_add(s64 i, atomic64_t *v) · 36 unmodified lines
12861421
12871422 #endif /* atomic64_fetch_add_relaxed */
12881423
1424+#define arch_atomic64_sub atomic64_sub
1425+
1426+#define arch_atomic64_sub_return atomic64_sub_return
1427+#define arch_atomic64_sub_return_acquire atomic64_sub_return_acquire
1428+#define arch_atomic64_sub_return_release atomic64_sub_return_release
1429+#define arch_atomic64_sub_return_relaxed atomic64_sub_return_relaxed
1430+
12891431 #ifndef atomic64_sub_return_relaxed
12901432 #define atomic64_sub_return_acquire atomic64_sub_return
12911433 #define atomic64_sub_return_release atomic64_sub_return
@@ -1328,6 +1470,11 @@ atomic64_sub_return(s64 i, atomic64_t *v) · 36 unmodified lines
13281470
13291471 #endif /* atomic64_sub_return_relaxed */
13301472
1473+#define arch_atomic64_fetch_sub atomic64_fetch_sub
1474+#define arch_atomic64_fetch_sub_acquire atomic64_fetch_sub_acquire
1475+#define arch_atomic64_fetch_sub_release atomic64_fetch_sub_release
1476+#define arch_atomic64_fetch_sub_relaxed atomic64_fetch_sub_relaxed
1477+
13311478 #ifndef atomic64_fetch_sub_relaxed
13321479 #define atomic64_fetch_sub_acquire atomic64_fetch_sub
13331480 #define atomic64_fetch_sub_release atomic64_fetch_sub
@@ -1370,6 +1517,8 @@ atomic64_fetch_sub(s64 i, atomic64_t *v) · 36 unmodified lines
13701517
13711518 #endif /* atomic64_fetch_sub_relaxed */
13721519
1520+#define arch_atomic64_inc atomic64_inc
1521+
13731522 #ifndef atomic64_inc
13741523 static __always_inline void
13751524 atomic64_inc(atomic64_t *v)
@@ -1379,6 +1528,11 @@ atomic64_inc(atomic64_t *v) · 3 unmodified lines
13791528 #define atomic64_inc atomic64_inc
13801529 #endif
13811530
1531+#define arch_atomic64_inc_return atomic64_inc_return
1532+#define arch_atomic64_inc_return_acquire atomic64_inc_return_acquire
1533+#define arch_atomic64_inc_return_release atomic64_inc_return_release
1534+#define arch_atomic64_inc_return_relaxed atomic64_inc_return_relaxed
1535+
13821536 #ifndef atomic64_inc_return_relaxed
13831537 #ifdef atomic64_inc_return
13841538 #define atomic64_inc_return_acquire atomic64_inc_return
@@ -1460,6 +1614,11 @@ atomic64_inc_return(atomic64_t *v) · 75 unmodified lines
14601614
14611615 #endif /* atomic64_inc_return_relaxed */
14621616
1617+#define arch_atomic64_fetch_inc atomic64_fetch_inc
1618+#define arch_atomic64_fetch_inc_acquire atomic64_fetch_inc_acquire
1619+#define arch_atomic64_fetch_inc_release atomic64_fetch_inc_release
1620+#define arch_atomic64_fetch_inc_relaxed atomic64_fetch_inc_relaxed
1621+
14631622 #ifndef atomic64_fetch_inc_relaxed
14641623 #ifdef atomic64_fetch_inc
14651624 #define atomic64_fetch_inc_acquire atomic64_fetch_inc
@@ -1541,6 +1700,8 @@ atomic64_fetch_inc(atomic64_t *v) · 75 unmodified lines
15411700
15421701 #endif /* atomic64_fetch_inc_relaxed */
15431702
1703+#define arch_atomic64_dec atomic64_dec
1704+
15441705 #ifndef atomic64_dec
15451706 static __always_inline void
15461707 atomic64_dec(atomic64_t *v)
@@ -1550,6 +1711,11 @@ atomic64_dec(atomic64_t *v) · 3 unmodified lines
15501711 #define atomic64_dec atomic64_dec
15511712 #endif
15521713
1714+#define arch_atomic64_dec_return atomic64_dec_return
1715+#define arch_atomic64_dec_return_acquire atomic64_dec_return_acquire
1716+#define arch_atomic64_dec_return_release atomic64_dec_return_release
1717+#define arch_atomic64_dec_return_relaxed atomic64_dec_return_relaxed
1718+
15531719 #ifndef atomic64_dec_return_relaxed
15541720 #ifdef atomic64_dec_return
15551721 #define atomic64_dec_return_acquire atomic64_dec_return
@@ -1631,6 +1797,11 @@ atomic64_dec_return(atomic64_t *v) · 75 unmodified lines
16311797
16321798 #endif /* atomic64_dec_return_relaxed */
16331799
1800+#define arch_atomic64_fetch_dec atomic64_fetch_dec
1801+#define arch_atomic64_fetch_dec_acquire atomic64_fetch_dec_acquire
1802+#define arch_atomic64_fetch_dec_release atomic64_fetch_dec_release
1803+#define arch_atomic64_fetch_dec_relaxed atomic64_fetch_dec_relaxed
1804+
16341805 #ifndef atomic64_fetch_dec_relaxed
16351806 #ifdef atomic64_fetch_dec
16361807 #define atomic64_fetch_dec_acquire atomic64_fetch_dec
@@ -1712,6 +1883,13 @@ atomic64_fetch_dec(atomic64_t *v) · 75 unmodified lines
17121883
17131884 #endif /* atomic64_fetch_dec_relaxed */
17141885
1886+#define arch_atomic64_and atomic64_and
1887+
1888+#define arch_atomic64_fetch_and atomic64_fetch_and
1889+#define arch_atomic64_fetch_and_acquire atomic64_fetch_and_acquire
1890+#define arch_atomic64_fetch_and_release atomic64_fetch_and_release
1891+#define arch_atomic64_fetch_and_relaxed atomic64_fetch_and_relaxed
1892+
17151893 #ifndef atomic64_fetch_and_relaxed
17161894 #define atomic64_fetch_and_acquire atomic64_fetch_and
17171895 #define atomic64_fetch_and_release atomic64_fetch_and
@@ -1754,6 +1932,8 @@ atomic64_fetch_and(s64 i, atomic64_t *v) · 36 unmodified lines
17541932
17551933 #endif /* atomic64_fetch_and_relaxed */
17561934
1935+#define arch_atomic64_andnot atomic64_andnot
1936+
17571937 #ifndef atomic64_andnot
17581938 static __always_inline void
17591939 atomic64_andnot(s64 i, atomic64_t *v)
@@ -1763,6 +1943,11 @@ atomic64_andnot(s64 i, atomic64_t *v) · 3 unmodified lines
17631943 #define atomic64_andnot atomic64_andnot
17641944 #endif
17651945
1946+#define arch_atomic64_fetch_andnot atomic64_fetch_andnot
1947+#define arch_atomic64_fetch_andnot_acquire atomic64_fetch_andnot_acquire
1948+#define arch_atomic64_fetch_andnot_release atomic64_fetch_andnot_release
1949+#define arch_atomic64_fetch_andnot_relaxed atomic64_fetch_andnot_relaxed
1950+
17661951 #ifndef atomic64_fetch_andnot_relaxed
17671952 #ifdef atomic64_fetch_andnot
17681953 #define atomic64_fetch_andnot_acquire atomic64_fetch_andnot
@@ -1844,6 +2029,13 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 75 unmodified lines
18442029
18452030 #endif /* atomic64_fetch_andnot_relaxed */
18462031
2032+#define arch_atomic64_or atomic64_or
2033+
2034+#define arch_atomic64_fetch_or atomic64_fetch_or
2035+#define arch_atomic64_fetch_or_acquire atomic64_fetch_or_acquire
2036+#define arch_atomic64_fetch_or_release atomic64_fetch_or_release
2037+#define arch_atomic64_fetch_or_relaxed atomic64_fetch_or_relaxed
2038+
18472039 #ifndef atomic64_fetch_or_relaxed
18482040 #define atomic64_fetch_or_acquire atomic64_fetch_or
18492041 #define atomic64_fetch_or_release atomic64_fetch_or
@@ -1886,6 +2078,13 @@ atomic64_fetch_or(s64 i, atomic64_t *v) · 36 unmodified lines
18862078
18872079 #endif /* atomic64_fetch_or_relaxed */
18882080
2081+#define arch_atomic64_xor atomic64_xor
2082+
2083+#define arch_atomic64_fetch_xor atomic64_fetch_xor
2084+#define arch_atomic64_fetch_xor_acquire atomic64_fetch_xor_acquire
2085+#define arch_atomic64_fetch_xor_release atomic64_fetch_xor_release
2086+#define arch_atomic64_fetch_xor_relaxed atomic64_fetch_xor_relaxed
2087+
18892088 #ifndef atomic64_fetch_xor_relaxed
18902089 #define atomic64_fetch_xor_acquire atomic64_fetch_xor
18912090 #define atomic64_fetch_xor_release atomic64_fetch_xor
@@ -1928,6 +2127,11 @@ atomic64_fetch_xor(s64 i, atomic64_t *v) · 36 unmodified lines
19282127
19292128 #endif /* atomic64_fetch_xor_relaxed */
19302129
2130+#define arch_atomic64_xchg atomic64_xchg
2131+#define arch_atomic64_xchg_acquire atomic64_xchg_acquire
2132+#define arch_atomic64_xchg_release atomic64_xchg_release
2133+#define arch_atomic64_xchg_relaxed atomic64_xchg_relaxed
2134+
19312135 #ifndef atomic64_xchg_relaxed
19322136 #define atomic64_xchg_acquire atomic64_xchg
19332137 #define atomic64_xchg_release atomic64_xchg
@@ -1970,6 +2174,11 @@ atomic64_xchg(atomic64_t *v, s64 i) · 36 unmodified lines
19702174
19712175 #endif /* atomic64_xchg_relaxed */
19722176
2177+#define arch_atomic64_cmpxchg atomic64_cmpxchg
2178+#define arch_atomic64_cmpxchg_acquire atomic64_cmpxchg_acquire
2179+#define arch_atomic64_cmpxchg_release atomic64_cmpxchg_release
2180+#define arch_atomic64_cmpxchg_relaxed atomic64_cmpxchg_relaxed
2181+
19732182 #ifndef atomic64_cmpxchg_relaxed
19742183 #define atomic64_cmpxchg_acquire atomic64_cmpxchg
19752184 #define atomic64_cmpxchg_release atomic64_cmpxchg
@@ -2012,6 +2221,11 @@ atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) · 36 unmodified lines
20122221
20132222 #endif /* atomic64_cmpxchg_relaxed */
20142223
2224+#define arch_atomic64_try_cmpxchg atomic64_try_cmpxchg
2225+#define arch_atomic64_try_cmpxchg_acquire atomic64_try_cmpxchg_acquire
2226+#define arch_atomic64_try_cmpxchg_release atomic64_try_cmpxchg_release
2227+#define arch_atomic64_try_cmpxchg_relaxed atomic64_try_cmpxchg_relaxed
2228+
20152229 #ifndef atomic64_try_cmpxchg_relaxed
20162230 #ifdef atomic64_try_cmpxchg
20172231 #define atomic64_try_cmpxchg_acquire atomic64_try_cmpxchg
@@ -2109,6 +2323,8 @@ atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) · 91 unmodified lines
21092323
21102324 #endif /* atomic64_try_cmpxchg_relaxed */
21112325
2326+#define arch_atomic64_sub_and_test atomic64_sub_and_test
2327+
21122328 #ifndef atomic64_sub_and_test
21132329 /**
21142330 * atomic64_sub_and_test - subtract value from variable and test result
@@ -2127,6 +2343,8 @@ atomic64_sub_and_test(s64 i, atomic64_t *v) · 12 unmodified lines
21272343 #define atomic64_sub_and_test atomic64_sub_and_test
21282344 #endif
21292345
2346+#define arch_atomic64_dec_and_test atomic64_dec_and_test
2347+
21302348 #ifndef atomic64_dec_and_test
21312349 /**
21322350 * atomic64_dec_and_test - decrement and test
@@ -2144,6 +2362,8 @@ atomic64_dec_and_test(atomic64_t *v) · 11 unmodified lines
21442362 #define atomic64_dec_and_test atomic64_dec_and_test
21452363 #endif
21462364
2365+#define arch_atomic64_inc_and_test atomic64_inc_and_test
2366+
21472367 #ifndef atomic64_inc_and_test
21482368 /**
21492369 * atomic64_inc_and_test - increment and test
@@ -2161,6 +2381,8 @@ atomic64_inc_and_test(atomic64_t *v) · 11 unmodified lines
21612381 #define atomic64_inc_and_test atomic64_inc_and_test
21622382 #endif
21632383
2384+#define arch_atomic64_add_negative atomic64_add_negative
2385+
21642386 #ifndef atomic64_add_negative
21652387 /**
21662388 * atomic64_add_negative - add and test if negative
@@ -2179,6 +2401,8 @@ atomic64_add_negative(s64 i, atomic64_t *v) · 12 unmodified lines
21792401 #define atomic64_add_negative atomic64_add_negative
21802402 #endif
21812403
2404+#define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
2405+
21822406 #ifndef atomic64_fetch_add_unless
21832407 /**
21842408 * atomic64_fetch_add_unless - add unless the number is already a given value
@@ -2204,6 +2428,8 @@ atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) · 19 unmodified lines
22042428 #define atomic64_fetch_add_unless atomic64_fetch_add_unless
22052429 #endif
22062430
2431+#define arch_atomic64_add_unless atomic64_add_unless
2432+
22072433 #ifndef atomic64_add_unless
22082434 /**
22092435 * atomic64_add_unless - add unless the number is already a given value
@@ -2222,6 +2448,8 @@ atomic64_add_unless(atomic64_t *v, s64 a, s64 u) · 12 unmodified lines
22222448 #define atomic64_add_unless atomic64_add_unless
22232449 #endif
22242450
2451+#define arch_atomic64_inc_not_zero atomic64_inc_not_zero
2452+
22252453 #ifndef atomic64_inc_not_zero
22262454 /**
22272455 * atomic64_inc_not_zero - increment unless the number is zero
@@ -2238,6 +2466,8 @@ atomic64_inc_not_zero(atomic64_t *v) · 10 unmodified lines
22382466 #define atomic64_inc_not_zero atomic64_inc_not_zero
22392467 #endif
22402468
2469+#define arch_atomic64_inc_unless_negative atomic64_inc_unless_negative
2470+
22412471 #ifndef atomic64_inc_unless_negative
22422472 static __always_inline bool
22432473 atomic64_inc_unless_negative(atomic64_t *v)
@@ -2254,6 +2484,8 @@ atomic64_inc_unless_negative(atomic64_t *v) · 10 unmodified lines
22542484 #define atomic64_inc_unless_negative atomic64_inc_unless_negative
22552485 #endif
22562486
2487+#define arch_atomic64_dec_unless_positive atomic64_dec_unless_positive
2488+
22572489 #ifndef atomic64_dec_unless_positive
22582490 static __always_inline bool
22592491 atomic64_dec_unless_positive(atomic64_t *v)
@@ -2270,6 +2502,8 @@ atomic64_dec_unless_positive(atomic64_t *v) · 10 unmodified lines
22702502 #define atomic64_dec_unless_positive atomic64_dec_unless_positive
22712503 #endif
22722504
2505+#define arch_atomic64_dec_if_positive atomic64_dec_if_positive
2506+
22732507 #ifndef atomic64_dec_if_positive
22742508 static __always_inline s64
22752509 atomic64_dec_if_positive(atomic64_t *v)
@@ -2288,4 +2522,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 12 unmodified lines
22882522 #endif
22892523
22902524 #endif /* _LINUX_ATOMIC_FALLBACK_H */
2291−// 1fac0941c79bf0ae100723cc2ac9b94061f0b67a
2525+// 9d95b56f98d82a2a26c7b79ccdd0c47572d50a6f
include/linux/bits.h+1−2
@@ -18,8 +18,7 @@ · 17 unmodified lines
1818 * position @h. For example
1919 * GENMASK_ULL(39, 21) gives us the 64bit vector 0x000000ffffe00000.
2020 */
21−#if !defined(__ASSEMBLY__) && \
22− (!defined(CONFIG_CC_IS_GCC) || CONFIG_GCC_VERSION >= 49000)
21+#if !defined(__ASSEMBLY__)
2322 #include <linux/build_bug.h>
2423 #define GENMASK_INPUT_CHECK(h, l) \
2524 (BUILD_BUG_ON_ZERO(__builtin_choose_expr( \
include/linux/blkdev.h+1−0
@@ -590,6 +590,7 @@ struct request_queue { · 589 unmodified lines
590590 u64 write_hints[BLK_MAX_WRITE_HINTS];
591591 };
592592
593+/* Keep blk_queue_flag_name[] in sync with the definitions below */
593594 #define QUEUE_FLAG_STOPPED 0 /* queue is stopped */
594595 #define QUEUE_FLAG_DYING 1 /* queue being torn down */
595596 #define QUEUE_FLAG_NOMERGES 3 /* disable merge attempts */
include/linux/bpf-netns.h+3−2
@@ -33,7 +33,7 @@ int netns_bpf_prog_query(const union bpf_attr *attr, · 32 unmodified lines
3333 union bpf_attr __user *uattr);
3434 int netns_bpf_prog_attach(const union bpf_attr *attr,
3535 struct bpf_prog *prog);
36−int netns_bpf_prog_detach(const union bpf_attr *attr);
36+int netns_bpf_prog_detach(const union bpf_attr *attr, enum bpf_prog_type ptype);
3737 int netns_bpf_link_create(const union bpf_attr *attr,
3838 struct bpf_prog *prog);
3939 #else
@@ -49,7 +49,8 @@ static inline int netns_bpf_prog_attach(const union bpf_attr *attr, · 9 unmodified lines
4949 return -EOPNOTSUPP;
5050 }
5151
52−static inline int netns_bpf_prog_detach(const union bpf_attr *attr)
52+static inline int netns_bpf_prog_detach(const union bpf_attr *attr,
53+ enum bpf_prog_type ptype)
5354 {
5455 return -EOPNOTSUPP;
5556 }
include/linux/bpf.h+11−2
@@ -1543,13 +1543,16 @@ static inline void bpf_map_offload_map_free(struct bpf_map *map) · 1542 unmodified lines
15431543 #endif /* CONFIG_NET && CONFIG_BPF_SYSCALL */
15441544
15451545 #if defined(CONFIG_BPF_STREAM_PARSER)
1546−int sock_map_prog_update(struct bpf_map *map, struct bpf_prog *prog, u32 which);
1546+int sock_map_prog_update(struct bpf_map *map, struct bpf_prog *prog,
1547+ struct bpf_prog *old, u32 which);
15471548 int sock_map_get_from_fd(const union bpf_attr *attr, struct bpf_prog *prog);
1549+int sock_map_prog_detach(const union bpf_attr *attr, enum bpf_prog_type ptype);
15481550 void sock_map_unhash(struct sock *sk);
15491551 void sock_map_close(struct sock *sk, long timeout);
15501552 #else
15511553 static inline int sock_map_prog_update(struct bpf_map *map,
1552− struct bpf_prog *prog, u32 which)
1554+ struct bpf_prog *prog,
1555+ struct bpf_prog *old, u32 which)
15531556 {
15541557 return -EOPNOTSUPP;
15551558 }
@@ -1559,6 +1562,12 @@ static inline int sock_map_get_from_fd(const union bpf_attr *attr, · 3 unmodified lines
15591562 {
15601563 return -EINVAL;
15611564 }
1565+
1566+static inline int sock_map_prog_detach(const union bpf_attr *attr,
1567+ enum bpf_prog_type ptype)
1568+{
1569+ return -EOPNOTSUPP;
1570+}
15621571 #endif /* CONFIG_BPF_STREAM_PARSER */
15631572
15641573 #if defined(CONFIG_INET) && defined(CONFIG_BPF_SYSCALL)
include/linux/btf.h+5−0
@@ -82,6 +82,11 @@ static inline bool btf_type_is_int(const struct btf_type *t) · 81 unmodified lines
8282 return BTF_INFO_KIND(t->info) == BTF_KIND_INT;
8383 }
8484
85+static inline bool btf_type_is_small_int(const struct btf_type *t)
86+{
87+ return btf_type_is_int(t) && t->size <= sizeof(u64);
88+}
89+
8590 static inline bool btf_type_is_enum(const struct btf_type *t)
8691 {
8792 return BTF_INFO_KIND(t->info) == BTF_KIND_ENUM;
include/linux/cgroup-defs.h+6−2
@@ -790,7 +790,9 @@ struct sock_cgroup_data { · 789 unmodified lines
790790 union {
791791 #ifdef __LITTLE_ENDIAN
792792 struct {
793− u8 is_data;
793+ u8 is_data : 1;
794+ u8 no_refcnt : 1;
795+ u8 unused : 6;
794796 u8 padding;
795797 u16 prioidx;
796798 u32 classid;
@@ -800,7 +802,9 @@ struct sock_cgroup_data { · 3 unmodified lines
800802 u32 classid;
801803 u16 prioidx;
802804 u8 padding;
803− u8 is_data;
805+ u8 unused : 6;
806+ u8 no_refcnt : 1;
807+ u8 is_data : 1;
804808 } __packed;
805809 #endif
806810 u64 val;
include/linux/cgroup.h+3−1
@@ -822,6 +822,7 @@ extern spinlock_t cgroup_sk_update_lock; · 821 unmodified lines
822822
823823 void cgroup_sk_alloc_disable(void);
824824 void cgroup_sk_alloc(struct sock_cgroup_data *skcd);
825+void cgroup_sk_clone(struct sock_cgroup_data *skcd);
825826 void cgroup_sk_free(struct sock_cgroup_data *skcd);
826827
827828 static inline struct cgroup *sock_cgroup_ptr(struct sock_cgroup_data *skcd)
@@ -835,7 +836,7 @@ static inline struct cgroup *sock_cgroup_ptr(struct sock_cgroup_data *skcd) · 7 unmodified lines
835836 */
836837 v = READ_ONCE(skcd->val);
837838
838− if (v & 1)
839+ if (v & 3)
839840 return &cgrp_dfl_root.cgrp;
840841
841842 return (struct cgroup *)(unsigned long)v ?: &cgrp_dfl_root.cgrp;
@@ -847,6 +848,7 @@ static inline struct cgroup *sock_cgroup_ptr(struct sock_cgroup_data *skcd) · 5 unmodified lines
847848 #else /* CONFIG_CGROUP_DATA */
848849
849850 static inline void cgroup_sk_alloc(struct sock_cgroup_data *skcd) {}
851+static inline void cgroup_sk_clone(struct sock_cgroup_data *skcd) {}
850852 static inline void cgroup_sk_free(struct sock_cgroup_data *skcd) {}
851853
852854 #endif /* CONFIG_CGROUP_DATA */
include/linux/compiler-clang.h+8−0
@@ -33,6 +33,14 @@ · 32 unmodified lines
3333 #define __no_sanitize_thread
3434 #endif
3535
36+#if __has_feature(undefined_behavior_sanitizer)
37+/* GCC does not have __SANITIZE_UNDEFINED__ */
38+#define __no_sanitize_undefined \
39+ __attribute__((no_sanitize("undefined")))
40+#else
41+#define __no_sanitize_undefined
42+#endif
43+
3644 /*
3745 * Not all versions of clang implement the the type-generic versions
3846 * of the builtin overflow checkers. Fortunately, clang implements
include/linux/compiler-gcc.h+7−1
@@ -11,7 +11,7 @@ · 10 unmodified lines
1111 + __GNUC_PATCHLEVEL__)
1212
1313 /* https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58145 */
14−#if GCC_VERSION < 40800
14+#if GCC_VERSION < 40900
1515 # error Sorry, your compiler is too old - please upgrade it.
1616 #endif
1717
@@ -150,6 +150,12 @@ · 132 unmodified lines
150150 #define __no_sanitize_thread
151151 #endif
152152
153+#if __has_attribute(__no_sanitize_undefined__)
154+#define __no_sanitize_undefined __attribute__((no_sanitize_undefined))
155+#else
156+#define __no_sanitize_undefined
157+#endif
158+
153159 #if GCC_VERSION >= 50100
154160 #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
155161 #endif
include/linux/compiler.h+1−1
@@ -123,7 +123,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, · 122 unmodified lines
123123 #ifdef CONFIG_DEBUG_ENTRY
124124 /* Begin/end of an instrumentation safe region */
125125 #define instrumentation_begin() ({ \
126− asm volatile("%c0:\n\t" \
126+ asm volatile("%c0: nop\n\t" \
127127 ".pushsection .discard.instr_begin\n\t" \
128128 ".long %c0b - .\n\t" \
129129 ".popsection\n\t" : : "i" (__COUNTER__)); \
include/linux/compiler_attributes.h+1−0
@@ -40,6 +40,7 @@ · 39 unmodified lines
4040 # define __GCC4_has_attribute___noclone__ 1
4141 # define __GCC4_has_attribute___nonstring__ 0
4242 # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8)
43+# define __GCC4_has_attribute___no_sanitize_undefined__ (__GNUC_MINOR__ >= 9)
4344 # define __GCC4_has_attribute___fallthrough__ 0
4445 #endif
4546
include/linux/compiler_types.h+7−34
@@ -118,10 +118,6 @@ struct ftrace_likely_data { · 117 unmodified lines
118118 #define notrace __attribute__((__no_instrument_function__))
119119 #endif
120120
121−/* Section for code which can't be instrumented at all */
122−#define noinstr \
123− noinline notrace __attribute((__section__(".noinstr.text")))
124−
125121 /*
126122 * it doesn't make sense on ARM (currently the only user of __naked)
127123 * to trace naked functions because then mcount is called without
@@ -193,16 +189,18 @@ struct ftrace_likely_data { · 65 unmodified lines
193189
194190 #define __no_kcsan __no_sanitize_thread
195191 #ifdef __SANITIZE_THREAD__
196−# define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused
197−# define __no_sanitize_or_inline __no_kcsan_or_inline
198−#else
199−# define __no_kcsan_or_inline __always_inline
192+# define __no_sanitize_or_inline __no_kcsan notrace __maybe_unused
200193 #endif
201194
202195 #ifndef __no_sanitize_or_inline
203196 #define __no_sanitize_or_inline __always_inline
204197 #endif
205198
199+/* Section for code which can't be instrumented at all */
200+#define noinstr \
201+ noinline notrace __attribute((__section__(".noinstr.text"))) \
202+ __no_kcsan __no_sanitize_address
203+
206204 #endif /* __KERNEL__ */
207205
208206 #endif /* __ASSEMBLY__ */
@@ -254,32 +252,8 @@ struct ftrace_likely_data { · 45 unmodified lines
254252 * __unqual_scalar_typeof(x) - Declare an unqualified scalar type, leaving
255253 * non-scalar types unchanged.
256254 */
257−#if (defined(CONFIG_CC_IS_GCC) && CONFIG_GCC_VERSION < 40900) || defined(__CHECKER__)
258255 /*
259− * We build this out of a couple of helper macros in a vain attempt to
260− * help you keep your lunch down while reading it.
261− */
262−#define __pick_scalar_type(x, type, otherwise) \
263− __builtin_choose_expr(__same_type(x, type), (type)0, otherwise)
264−
265−/*
266− * 'char' is not type-compatible with either 'signed char' or 'unsigned char',
267− * so we include the naked type here as well as the signed/unsigned variants.
268− */
269−#define __pick_integer_type(x, type, otherwise) \
270− __pick_scalar_type(x, type, \
271− __pick_scalar_type(x, unsigned type, \
272− __pick_scalar_type(x, signed type, otherwise)))
273−
274−#define __unqual_scalar_typeof(x) typeof( \
275− __pick_integer_type(x, char, \
276− __pick_integer_type(x, short, \
277− __pick_integer_type(x, int, \
278− __pick_integer_type(x, long, \
279− __pick_integer_type(x, long long, x))))))
280−#else
281−/*
282− * If supported, prefer C11 _Generic for better compile-times. As above, 'char'
256+ * Prefer C11 _Generic for better compile-times and simpler code. Note: 'char'
283257 * is not type-compatible with 'signed char', and we define a separate case.
284258 */
285259 #define __scalar_type_to_expr_cases(type) \
@@ -295,7 +269,6 @@ struct ftrace_likely_data { · 9 unmodified lines
295269 __scalar_type_to_expr_cases(long), \
296270 __scalar_type_to_expr_cases(long long), \
297271 default: (x)))
298−#endif
299272
300273 /* Is this type a native word size -- useful for atomic operations */
301274 #define __native_word(t) \
include/linux/device.h+3−2
@@ -433,7 +433,8 @@ enum dl_dev_state { · 432 unmodified lines
433433 * @suppliers: List of links to supplier devices.
434434 * @consumers: List of links to consumer devices.
435435 * @needs_suppliers: Hook to global list of devices waiting for suppliers.
436− * @defer_sync: Hook to global list of devices that have deferred sync_state.
436+ * @defer_hook: Hook to global list of devices that have deferred sync_state or
437+ * deferred fw_devlink.
437438 * @need_for_probe: If needs_suppliers is on a list, this indicates if the
438439 * suppliers are needed for probe or not.
439440 * @status: Driver status information.
@@ -442,7 +443,7 @@ struct dev_links_info { · 2 unmodified lines
442443 struct list_head suppliers;
443444 struct list_head consumers;
444445 struct list_head needs_suppliers;
445− struct list_head defer_sync;
446+ struct list_head defer_hook;
446447 bool need_for_probe;
447448 enum dl_dev_state status;
448449 };
include/linux/dma-buf.h+1−0
@@ -311,6 +311,7 @@ struct dma_buf { · 310 unmodified lines
311311 void *vmap_ptr;
312312 const char *exp_name;
313313 const char *name;
314+ spinlock_t name_lock; /* spinlock to protect name access */
314315 struct module *owner;
315316 struct list_head list_node;
316317 void *priv;
include/linux/dma-direct.h+2−2
@@ -69,6 +69,7 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size, · 68 unmodified lines
6969 u64 dma_direct_get_required_mask(struct device *dev);
7070 gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask,
7171 u64 *phys_mask);
72+bool dma_coherent_ok(struct device *dev, phys_addr_t phys, size_t size);
7273 void *dma_direct_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle,
7374 gfp_t gfp, unsigned long attrs);
7475 void dma_direct_free(struct device *dev, size_t size, void *cpu_addr,
@@ -77,8 +78,6 @@ void *dma_direct_alloc_pages(struct device *dev, size_t size, · 2 unmodified lines
7778 dma_addr_t *dma_handle, gfp_t gfp, unsigned long attrs);
7879 void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr,
7980 dma_addr_t dma_addr, unsigned long attrs);
80−struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
81− gfp_t gfp, unsigned long attrs);
8281 int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
8382 void *cpu_addr, dma_addr_t dma_addr, size_t size,
8483 unsigned long attrs);
@@ -87,4 +86,5 @@ int dma_direct_mmap(struct device *dev, struct vm_area_struct *vma, · 2 unmodified lines
8786 void *cpu_addr, dma_addr_t dma_addr, size_t size,
8887 unsigned long attrs);
8988 int dma_direct_supported(struct device *dev, u64 mask);
89+bool dma_direct_need_sync(struct device *dev, dma_addr_t dma_addr);
9090 #endif /* _LINUX_DMA_DIRECT_H */
include/linux/dma-mapping.h+5−0
@@ -461,6 +461,7 @@ int dma_set_mask(struct device *dev, u64 mask); · 460 unmodified lines
461461 int dma_set_coherent_mask(struct device *dev, u64 mask);
462462 u64 dma_get_required_mask(struct device *dev);
463463 size_t dma_max_mapping_size(struct device *dev);
464+bool dma_need_sync(struct device *dev, dma_addr_t dma_addr);
464465 unsigned long dma_get_merge_boundary(struct device *dev);
465466 #else /* CONFIG_HAS_DMA */
466467 static inline dma_addr_t dma_map_page_attrs(struct device *dev,
@@ -571,6 +572,10 @@ static inline size_t dma_max_mapping_size(struct device *dev) · 104 unmodified lines
571572 {
572573 return 0;
573574 }
575+static inline bool dma_need_sync(struct device *dev, dma_addr_t dma_addr)
576+{
577+ return false;
578+}
574579 static inline unsigned long dma_get_merge_boundary(struct device *dev)
575580 {
576581 return 0;
include/linux/efi.h+3−5
@@ -350,6 +350,7 @@ void efi_native_runtime_setup(void); · 349 unmodified lines
350350 * associated with ConOut
351351 */
352352 #define LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID EFI_GUID(0xe03fc20a, 0x85dc, 0x406e, 0xb9, 0x0e, 0x4a, 0xb5, 0x02, 0x37, 0x1d, 0x95)
353+#define LINUX_EFI_ARM_CPU_STATE_TABLE_GUID EFI_GUID(0xef79e4aa, 0x3c3d, 0x4989, 0xb9, 0x02, 0x07, 0xa9, 0x43, 0xe5, 0x50, 0xd2)
353354 #define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f)
354355 #define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b)
355356 #define LINUX_EFI_TPM_EVENT_LOG_GUID EFI_GUID(0xb7799cb0, 0xeca2, 0x4943, 0x96, 0x67, 0x1f, 0xae, 0x07, 0xb7, 0x47, 0xfa)
@@ -1236,14 +1237,11 @@ struct linux_efi_memreserve { · 880 unmodified lines
12361237 struct {
12371238 phys_addr_t base;
12381239 phys_addr_t size;
1239− } entry[0];
1240+ } entry[];
12401241 };
12411242
1242−#define EFI_MEMRESERVE_SIZE(count) (sizeof(struct linux_efi_memreserve) + \
1243− (count) * sizeof(((struct linux_efi_memreserve *)0)->entry[0]))
1244−
12451243 #define EFI_MEMRESERVE_COUNT(size) (((size) - sizeof(struct linux_efi_memreserve)) \
1246− / sizeof(((struct linux_efi_memreserve *)0)->entry[0]))
1244+ / sizeof_field(struct linux_efi_memreserve, entry[0]))
12471245
12481246 void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size);
12491247
include/linux/filter.h+2−2
@@ -884,12 +884,12 @@ void bpf_jit_compile(struct bpf_prog *prog); · 883 unmodified lines
884884 bool bpf_jit_needs_zext(void);
885885 bool bpf_helper_changes_pkt_data(void *func);
886886
887−static inline bool bpf_dump_raw_ok(void)
887+static inline bool bpf_dump_raw_ok(const struct cred *cred)
888888 {
889889 /* Reconstruction of call-sites is dependent on kallsyms,
890890 * thus make dump the same restriction.
891891 */
892− return kallsyms_show_value() == 1;
892+ return kallsyms_show_value(cred);
893893 }
894894
895895 struct bpf_prog *bpf_patch_insn_single(struct bpf_prog *prog, u32 off,
include/linux/fs.h+2−1
@@ -315,6 +315,7 @@ enum rw_hint { · 314 unmodified lines
315315 #define IOCB_SYNC (1 << 5)
316316 #define IOCB_WRITE (1 << 6)
317317 #define IOCB_NOWAIT (1 << 7)
318+#define IOCB_NOIO (1 << 9)
318319
319320 struct kiocb {
320321 struct file *ki_filp;
@@ -1917,7 +1918,6 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, · 1596 unmodified lines
19171918 struct iovec *fast_pointer,
19181919 struct iovec **ret_pointer);
19191920
1920−extern ssize_t __vfs_read(struct file *, char __user *, size_t, loff_t *);
19211921 extern ssize_t vfs_read(struct file *, char __user *, size_t, loff_t *);
19221922 extern ssize_t vfs_write(struct file *, const char __user *, size_t, loff_t *);
19231923 extern ssize_t vfs_readv(struct file *, const struct iovec __user *,
@@ -3033,6 +3033,7 @@ extern int kernel_read_file_from_path_initns(const char *, void **, loff_t *, lo · 1109 unmodified lines
30333033 extern int kernel_read_file_from_fd(int, void **, loff_t *, loff_t,
30343034 enum kernel_read_file_id);
30353035 extern ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
3036+ssize_t __kernel_read(struct file *file, void *buf, size_t count, loff_t *pos);
30363037 extern ssize_t kernel_write(struct file *, const void *, size_t, loff_t *);
30373038 extern ssize_t __kernel_write(struct file *, const void *, size_t, loff_t *);
30383039 extern struct file * open_exec(const char *);
include/linux/fs_context.h+1−0
@@ -109,6 +109,7 @@ struct fs_context { · 108 unmodified lines
109109 enum fs_context_phase phase:8; /* The phase the context is in */
110110 bool need_free:1; /* Need to call ops->free() */
111111 bool global:1; /* Goes into &init_user_ns */
112+ bool oldapi:1; /* Coming from mount(2) */
112113 };
113114
114115 struct fs_context_operations {
include/linux/host1x.h+3−0
@@ -48,6 +48,9 @@ struct host1x_client_ops { · 47 unmodified lines
4848 * @channel: host1x channel associated with this client
4949 * @syncpts: array of syncpoints requested for this client
5050 * @num_syncpts: number of syncpoints requested for this client
51+ * @parent: pointer to parent structure
52+ * @usecount: reference count for this structure
53+ * @lock: mutex for mutually exclusive concurrency
5154 */
5255 struct host1x_client {
5356 struct list_head list;
include/linux/ieee80211.h+4−0
@@ -3333,13 +3333,17 @@ struct ieee80211_multiple_bssid_configuration { · 3332 unmodified lines
33333333 #define WLAN_AKM_SUITE_TDLS SUITE(0x000FAC, 7)
33343334 #define WLAN_AKM_SUITE_SAE SUITE(0x000FAC, 8)
33353335 #define WLAN_AKM_SUITE_FT_OVER_SAE SUITE(0x000FAC, 9)
3336+#define WLAN_AKM_SUITE_AP_PEER_KEY SUITE(0x000FAC, 10)
33363337 #define WLAN_AKM_SUITE_8021X_SUITE_B SUITE(0x000FAC, 11)
33373338 #define WLAN_AKM_SUITE_8021X_SUITE_B_192 SUITE(0x000FAC, 12)
3339+#define WLAN_AKM_SUITE_FT_8021X_SHA384 SUITE(0x000FAC, 13)
33383340 #define WLAN_AKM_SUITE_FILS_SHA256 SUITE(0x000FAC, 14)
33393341 #define WLAN_AKM_SUITE_FILS_SHA384 SUITE(0x000FAC, 15)
33403342 #define WLAN_AKM_SUITE_FT_FILS_SHA256 SUITE(0x000FAC, 16)
33413343 #define WLAN_AKM_SUITE_FT_FILS_SHA384 SUITE(0x000FAC, 17)
33423344 #define WLAN_AKM_SUITE_OWE SUITE(0x000FAC, 18)
3345+#define WLAN_AKM_SUITE_FT_PSK_SHA384 SUITE(0x000FAC, 19)
3346+#define WLAN_AKM_SUITE_PSK_SHA384 SUITE(0x000FAC, 20)
33433347
33443348 #define WLAN_MAX_KEY_LEN 32
33453349
include/linux/if_vlan.h+22−7
@@ -25,6 +25,8 @@ · 24 unmodified lines
2525 #define VLAN_ETH_DATA_LEN 1500 /* Max. octets in payload */
2626 #define VLAN_ETH_FRAME_LEN 1518 /* Max. octets in frame sans FCS */
2727
28+#define VLAN_MAX_DEPTH 8 /* Max. number of nested VLAN tags parsed */
29+
2830 /*
2931 * struct vlan_hdr - vlan header
3032 * @h_vlan_TCI: priority and VLAN ID
@@ -577,10 +579,10 @@ static inline int vlan_get_tag(const struct sk_buff *skb, u16 *vlan_tci) · 546 unmodified lines
577579 * Returns the EtherType of the packet, regardless of whether it is
578580 * vlan encapsulated (normal or hardware accelerated) or not.
579581 */
580−static inline __be16 __vlan_get_protocol(struct sk_buff *skb, __be16 type,
582+static inline __be16 __vlan_get_protocol(const struct sk_buff *skb, __be16 type,
581583 int *depth)
582584 {
583− unsigned int vlan_depth = skb->mac_len;
585+ unsigned int vlan_depth = skb->mac_len, parse_depth = VLAN_MAX_DEPTH;
584586
585587 /* if type is 802.1Q/AD then the header should already be
586588 * present at mac_len - VLAN_HLEN (if mac_len > 0), or at
@@ -595,13 +597,12 @@ static inline __be16 __vlan_get_protocol(struct sk_buff *skb, __be16 type, · 8 unmodified lines
595597 vlan_depth = ETH_HLEN;
596598 }
597599 do {
598− struct vlan_hdr *vh;
600+ struct vlan_hdr vhdr, *vh;
599601
600− if (unlikely(!pskb_may_pull(skb,
601− vlan_depth + VLAN_HLEN)))
602+ vh = skb_header_pointer(skb, vlan_depth, sizeof(vhdr), &vhdr);
603+ if (unlikely(!vh || !--parse_depth))
602604 return 0;
603605
604− vh = (struct vlan_hdr *)(skb->data + vlan_depth);
605606 type = vh->h_vlan_encapsulated_proto;
606607 vlan_depth += VLAN_HLEN;
607608 } while (eth_type_vlan(type));
@@ -620,11 +621,25 @@ static inline __be16 __vlan_get_protocol(struct sk_buff *skb, __be16 type, · 12 unmodified lines
620621 * Returns the EtherType of the packet, regardless of whether it is
621622 * vlan encapsulated (normal or hardware accelerated) or not.
622623 */
623−static inline __be16 vlan_get_protocol(struct sk_buff *skb)
624+static inline __be16 vlan_get_protocol(const struct sk_buff *skb)
624625 {
625626 return __vlan_get_protocol(skb, skb->protocol, NULL);
626627 }
627628
629+/* A getter for the SKB protocol field which will handle VLAN tags consistently
630+ * whether VLAN acceleration is enabled or not.
631+ */
632+static inline __be16 skb_protocol(const struct sk_buff *skb, bool skip_vlan)
633+{
634+ if (!skip_vlan)
635+ /* VLAN acceleration strips the VLAN header from the skb and
636+ * moves it to skb->vlan_proto
637+ */
638+ return skb_vlan_tag_present(skb) ? skb->vlan_proto : skb->protocol;
639+
640+ return vlan_get_protocol(skb);
641+}
642+
628643 static inline void vlan_set_encap_proto(struct sk_buff *skb,
629644 struct vlan_hdr *vhdr)
630645 {
include/linux/input/elan-i2c-ids.h+7−0
@@ -67,8 +67,15 @@ static const struct acpi_device_id elan_acpi_id[] = { · 66 unmodified lines
6767 { "ELAN062B", 0 },
6868 { "ELAN062C", 0 },
6969 { "ELAN062D", 0 },
70+ { "ELAN062E", 0 }, /* Lenovo V340 Whiskey Lake U */
71+ { "ELAN062F", 0 }, /* Lenovo V340 Comet Lake U */
7072 { "ELAN0631", 0 },
7173 { "ELAN0632", 0 },
74+ { "ELAN0633", 0 }, /* Lenovo S145 */
75+ { "ELAN0634", 0 }, /* Lenovo V340 Ice lake */
76+ { "ELAN0635", 0 }, /* Lenovo V1415-IIL */
77+ { "ELAN0636", 0 }, /* Lenovo V1415-Dali */
78+ { "ELAN0637", 0 }, /* Lenovo V1415-IGLR */
7279 { "ELAN1000", 0 },
7380 { }
7481 };
include/linux/intel-iommu.h+1−0
@@ -41,6 +41,7 @@ · 40 unmodified lines
4141 #define DMA_PTE_SNP BIT_ULL(11)
4242
4343 #define DMA_FL_PTE_PRESENT BIT_ULL(0)
44+#define DMA_FL_PTE_US BIT_ULL(2)
4445 #define DMA_FL_PTE_XD BIT_ULL(63)
4546
4647 #define ADDR_WIDTH_5LEVEL (57)
include/linux/irq_work.h+8−18
@@ -2,7 +2,7 @@ · 1 unmodified line
22 #ifndef _LINUX_IRQ_WORK_H
33 #define _LINUX_IRQ_WORK_H
44
5−#include <linux/llist.h>
5+#include <linux/smp_types.h>
66
77 /*
88 * An entry can be in one of four states:
@@ -13,24 +13,14 @@ · 4 unmodified lines
1313 * busy NULL, 2 -> {free, claimed} : callback in progress, can be claimed
1414 */
1515
16−/* flags share CSD_FLAG_ space */
17−
18−#define IRQ_WORK_PENDING BIT(0)
19−#define IRQ_WORK_BUSY BIT(1)
20−
21−/* Doesn't want IPI, wait for tick: */
22−#define IRQ_WORK_LAZY BIT(2)
23−/* Run hard IRQ context, even on RT */
24−#define IRQ_WORK_HARD_IRQ BIT(3)
25−
26−#define IRQ_WORK_CLAIMED (IRQ_WORK_PENDING | IRQ_WORK_BUSY)
27−
28−/*
29− * structure shares layout with single_call_data_t.
30− */
3116 struct irq_work {
32− struct llist_node llnode;
33− atomic_t flags;
17+ union {
18+ struct __call_single_node node;
19+ struct {
20+ struct llist_node llnode;
21+ atomic_t flags;
22+ };
23+ };
3424 void (*func)(struct irq_work *);
3525 };
3626
include/linux/kallsyms.h+3−2
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \
1919 2*(BITS_PER_LONG*3/10) + (MODULE_NAME_LEN - 1) + 1)
2020
21+struct cred;
2122 struct module;
2223
2324 static inline int is_kernel_inittext(unsigned long addr)
@@ -98,7 +99,7 @@ int lookup_symbol_name(unsigned long addr, char *symname); · 74 unmodified lines
9899 int lookup_symbol_attrs(unsigned long addr, unsigned long *size, unsigned long *offset, char *modname, char *name);
99100
100101 /* How and when do we show kallsyms values? */
101−extern int kallsyms_show_value(void);
102+extern bool kallsyms_show_value(const struct cred *cred);
102103
103104 #else /* !CONFIG_KALLSYMS */
104105
@@ -158,7 +159,7 @@ static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, u · 53 unmodified lines
158159 return -ERANGE;
159160 }
160161
161−static inline int kallsyms_show_value(void)
162+static inline bool kallsyms_show_value(const struct cred *cred)
162163 {
163164 return false;
164165 }
include/linux/kgdb.h+14−3
@@ -176,6 +176,17 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code, · 175 unmodified lines
176176 char *remcom_out_buffer,
177177 struct pt_regs *regs);
178178
179+/**
180+ * kgdb_arch_handle_qxfer_pkt - Handle architecture specific GDB XML
181+ * packets.
182+ * @remcom_in_buffer: The buffer of the packet we have read.
183+ * @remcom_out_buffer: The buffer of %BUFMAX bytes to write a packet into.
184+ */
185+
186+extern void
187+kgdb_arch_handle_qxfer_pkt(char *remcom_in_buffer,
188+ char *remcom_out_buffer);
189+
179190 /**
180191 * kgdb_call_nmi_hook - Call kgdb_nmicallback() on the current CPU
181192 * @ignored: This parameter is only here to match the prototype.
@@ -276,8 +287,7 @@ struct kgdb_arch { · 94 unmodified lines
276287 * the I/O driver.
277288 * @post_exception: Pointer to a function that will do any cleanup work
278289 * for the I/O driver.
279− * @is_console: 1 if the end device is a console 0 if the I/O device is
280− * not a console
290+ * @cons: valid if the I/O device is a console; else NULL.
281291 */
282292 struct kgdb_io {
283293 const char *name;
@@ -288,7 +298,7 @@ struct kgdb_io { · 4 unmodified lines
288298 void (*deinit) (void);
289299 void (*pre_exception) (void);
290300 void (*post_exception) (void);
291− int is_console;
301+ struct console *cons;
292302 };
293303
294304 extern const struct kgdb_arch arch_kgdb_ops;
@@ -315,6 +325,7 @@ extern int kgdb_hex2mem(char *buf, char *mem, int count); · 20 unmodified lines
315325
316326 extern int kgdb_isremovedbreak(unsigned long addr);
317327 extern void kgdb_schedule_breakpoint(void);
328+extern int kgdb_has_hit_break(unsigned long addr);
318329
319330 extern int
320331 kgdb_handle_exception(int ex_vector, int signo, int err_code,
include/linux/libata.h+1−1
@@ -1095,7 +1095,7 @@ extern int ata_scsi_ioctl(struct scsi_device *dev, unsigned int cmd, · 1094 unmodified lines
10951095 #define ATA_SCSI_COMPAT_IOCTL /* empty */
10961096 #endif
10971097 extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
1098−#if IS_ENABLED(CONFIG_ATA)
1098+#if IS_REACHABLE(CONFIG_ATA)
10991099 bool ata_scsi_dma_need_drain(struct request *rq);
11001100 #else
11011101 #define ata_scsi_dma_need_drain NULL
include/linux/lsm_hook_defs.h+2−2
@@ -150,7 +150,7 @@ LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer, · 149 unmodified lines
150150 size_t buffer_size)
151151 LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)
152152 LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
153−LSM_HOOK(int, 0, inode_copy_up_xattr, const char *name)
153+LSM_HOOK(int, -EOPNOTSUPP, inode_copy_up_xattr, const char *name)
154154 LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
155155 struct kernfs_node *kn)
156156 LSM_HOOK(int, 0, file_permission, struct file *file, int mask)
@@ -360,7 +360,7 @@ LSM_HOOK(int, 0, key_alloc, struct key *key, const struct cred *cred, · 203 unmodified lines
360360 unsigned long flags)
361361 LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key)
362362 LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred,
363− unsigned perm)
363+ enum key_need_perm need_perm)
364364 LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer)
365365 #endif /* CONFIG_KEYS */
366366
include/linux/mlx5/driver.h+1−0
@@ -147,6 +147,7 @@ enum { · 146 unmodified lines
147147 MLX5_REG_MCDA = 0x9063,
148148 MLX5_REG_MCAM = 0x907f,
149149 MLX5_REG_MIRC = 0x9162,
150+ MLX5_REG_SBCAM = 0xB01F,
150151 MLX5_REG_RESOURCE_DUMP = 0xC000,
151152 };
152153
include/linux/mlx5/mlx5_ifc.h+34−4
@@ -4283,7 +4283,8 @@ struct mlx5_ifc_rst2init_qp_out_bits { · 4282 unmodified lines
42834283
42844284 u8 syndrome[0x20];
42854285
4286− u8 reserved_at_40[0x40];
4286+ u8 reserved_at_40[0x20];
4287+ u8 ece[0x20];
42874288 };
42884289
42894290 struct mlx5_ifc_rst2init_qp_in_bits {
@@ -4300,7 +4301,7 @@ struct mlx5_ifc_rst2init_qp_in_bits { · 10 unmodified lines
43004301
43014302 u8 opt_param_mask[0x20];
43024303
4303− u8 reserved_at_a0[0x20];
4304+ u8 ece[0x20];
43044305
43054306 struct mlx5_ifc_qpc_bits qpc;
43064307
@@ -6619,7 +6620,8 @@ struct mlx5_ifc_init2init_qp_out_bits { · 2312 unmodified lines
66196620
66206621 u8 syndrome[0x20];
66216622
6622− u8 reserved_at_40[0x40];
6623+ u8 reserved_at_40[0x20];
6624+ u8 ece[0x20];
66236625 };
66246626
66256627 struct mlx5_ifc_init2init_qp_in_bits {
@@ -6636,7 +6638,7 @@ struct mlx5_ifc_init2init_qp_in_bits { · 10 unmodified lines
66366638
66376639 u8 opt_param_mask[0x20];
66386640
6639− u8 reserved_at_a0[0x20];
6641+ u8 ece[0x20];
66406642
66416643 struct mlx5_ifc_qpc_bits qpc;
66426644
@@ -9958,6 +9960,34 @@ struct mlx5_ifc_pptb_reg_bits { · 3315 unmodified lines
99589960 u8 untagged_buff[0x4];
99599961 };
99609962
9963+struct mlx5_ifc_sbcam_reg_bits {
9964+ u8 reserved_at_0[0x8];
9965+ u8 feature_group[0x8];
9966+ u8 reserved_at_10[0x8];
9967+ u8 access_reg_group[0x8];
9968+
9969+ u8 reserved_at_20[0x20];
9970+
9971+ u8 sb_access_reg_cap_mask[4][0x20];
9972+
9973+ u8 reserved_at_c0[0x80];
9974+
9975+ u8 sb_feature_cap_mask[4][0x20];
9976+
9977+ u8 reserved_at_1c0[0x40];
9978+
9979+ u8 cap_total_buffer_size[0x20];
9980+
9981+ u8 cap_cell_size[0x10];
9982+ u8 cap_max_pg_buffers[0x8];
9983+ u8 cap_num_pool_supported[0x8];
9984+
9985+ u8 reserved_at_240[0x8];
9986+ u8 cap_sbsr_stat_size[0x8];
9987+ u8 cap_max_tclass_data[0x8];
9988+ u8 cap_max_cpu_ingress_tclass_sb[0x8];
9989+};
9990+
99619991 struct mlx5_ifc_pbmc_reg_bits {
99629992 u8 reserved_at_0[0x8];
99639993 u8 local_port[0x8];
include/linux/mmzone.h+2−2
@@ -257,8 +257,8 @@ struct lruvec { · 256 unmodified lines
257257 */
258258 unsigned long anon_cost;
259259 unsigned long file_cost;
260− /* Evictions & activations on the inactive file list */
261− atomic_long_t inactive_age;
260+ /* Non-resident age, driven by LRU movement */
261+ atomic_long_t nonresident_age;
262262 /* Refaults at the time of last reclaim cycle */
263263 unsigned long refaults;
264264 /* Various lruvec state flags (enum lruvec_flags) */
include/linux/mod_devicetable.h+1−1
@@ -318,7 +318,7 @@ struct pcmcia_device_id { · 317 unmodified lines
318318 #define INPUT_DEVICE_ID_LED_MAX 0x0f
319319 #define INPUT_DEVICE_ID_SND_MAX 0x07
320320 #define INPUT_DEVICE_ID_FF_MAX 0x7f
321−#define INPUT_DEVICE_ID_SW_MAX 0x0f
321+#define INPUT_DEVICE_ID_SW_MAX 0x10
322322 #define INPUT_DEVICE_ID_PROP_MAX 0x1f
323323
324324 #define INPUT_DEVICE_ID_MATCH_BUS 1
include/linux/netdevice.h+1−1
@@ -3157,7 +3157,7 @@ static inline int dev_recursion_level(void) · 3156 unmodified lines
31573157 return this_cpu_read(softnet_data.xmit.recursion);
31583158 }
31593159
3160−#define XMIT_RECURSION_LIMIT 10
3160+#define XMIT_RECURSION_LIMIT 8
31613161 static inline bool dev_xmit_recursion(void)
31623162 {
31633163 return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >
include/linux/netfilter_ipv4/ip_tables.h+6−0
@@ -25,6 +25,12 @@ · 24 unmodified lines
2525 int ipt_register_table(struct net *net, const struct xt_table *table,
2626 const struct ipt_replace *repl,
2727 const struct nf_hook_ops *ops, struct xt_table **res);
28+
29+void ipt_unregister_table_pre_exit(struct net *net, struct xt_table *table,
30+ const struct nf_hook_ops *ops);
31+
32+void ipt_unregister_table_exit(struct net *net, struct xt_table *table);
33+
2834 void ipt_unregister_table(struct net *net, struct xt_table *table,
2935 const struct nf_hook_ops *ops);
3036
include/linux/netfilter_ipv6/ip6_tables.h+3−0
@@ -29,6 +29,9 @@ int ip6t_register_table(struct net *net, const struct xt_table *table, · 28 unmodified lines
2929 const struct nf_hook_ops *ops, struct xt_table **res);
3030 void ip6t_unregister_table(struct net *net, struct xt_table *table,
3131 const struct nf_hook_ops *ops);
32+void ip6t_unregister_table_pre_exit(struct net *net, struct xt_table *table,
33+ const struct nf_hook_ops *ops);
34+void ip6t_unregister_table_exit(struct net *net, struct xt_table *table);
3235 extern unsigned int ip6t_do_table(struct sk_buff *skb,
3336 const struct nf_hook_state *state,
3437 struct xt_table *table);
include/linux/pci.h+5−6
@@ -2169,12 +2169,11 @@ static inline int pci_pcie_type(const struct pci_dev *dev) · 2168 unmodified lines
21692169 */
21702170 static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)
21712171 {
2172− struct pci_dev *bridge = pci_upstream_bridge(dev);
2173−
2174− while (bridge) {
2175− if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT)
2176− return bridge;
2177− bridge = pci_upstream_bridge(bridge);
2172+ while (dev) {
2173+ if (pci_is_pcie(dev) &&
2174+ pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
2175+ return dev;
2176+ dev = pci_upstream_bridge(dev);
21782177 }
21792178
21802179 return NULL;
include/linux/phy.h+1−0
@@ -1416,6 +1416,7 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev, · 1415 unmodified lines
14161416 int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
14171417 int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
14181418 int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd);
1419+int phy_disable_interrupts(struct phy_device *phydev);
14191420 void phy_request_interrupt(struct phy_device *phydev);
14201421 void phy_free_interrupt(struct phy_device *phydev);
14211422 void phy_print_status(struct phy_device *phydev);
include/linux/qed/qed_chain.h+16−10
@@ -207,28 +207,34 @@ static inline u32 qed_chain_get_cons_idx_u32(struct qed_chain *p_chain) · 206 unmodified lines
207207
208208 static inline u16 qed_chain_get_elem_left(struct qed_chain *p_chain)
209209 {
210+ u16 elem_per_page = p_chain->elem_per_page;
211+ u32 prod = p_chain->u.chain16.prod_idx;
212+ u32 cons = p_chain->u.chain16.cons_idx;
210213 u16 used;
211214
212− used = (u16) (((u32)0x10000 +
213− (u32)p_chain->u.chain16.prod_idx) -
214− (u32)p_chain->u.chain16.cons_idx);
215+ if (prod < cons)
216+ prod += (u32)U16_MAX + 1;
217+
218+ used = (u16)(prod - cons);
215219 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)
216− used -= p_chain->u.chain16.prod_idx / p_chain->elem_per_page -
217− p_chain->u.chain16.cons_idx / p_chain->elem_per_page;
220+ used -= prod / elem_per_page - cons / elem_per_page;
218221
219222 return (u16)(p_chain->capacity - used);
220223 }
221224
222225 static inline u32 qed_chain_get_elem_left_u32(struct qed_chain *p_chain)
223226 {
227+ u16 elem_per_page = p_chain->elem_per_page;
228+ u64 prod = p_chain->u.chain32.prod_idx;
229+ u64 cons = p_chain->u.chain32.cons_idx;
224230 u32 used;
225231
226− used = (u32) (((u64)0x100000000ULL +
227− (u64)p_chain->u.chain32.prod_idx) -
228− (u64)p_chain->u.chain32.cons_idx);
232+ if (prod < cons)
233+ prod += (u64)U32_MAX + 1;
234+
235+ used = (u32)(prod - cons);
229236 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)
230− used -= p_chain->u.chain32.prod_idx / p_chain->elem_per_page -
231− p_chain->u.chain32.cons_idx / p_chain->elem_per_page;
237+ used -= (u32)(prod / elem_per_page - cons / elem_per_page);
232238
233239 return p_chain->capacity - used;
234240 }
include/linux/scatterlist.h+4−4
@@ -155,7 +155,7 @@ static inline void sg_set_buf(struct scatterlist *sg, const void *buf, · 154 unmodified lines
155155 * Loop over each sg element in the given sg_table object.
156156 */
157157 #define for_each_sgtable_sg(sgt, sg, i) \
158− for_each_sg(sgt->sgl, sg, sgt->orig_nents, i)
158+ for_each_sg((sgt)->sgl, sg, (sgt)->orig_nents, i)
159159
160160 /*
161161 * Loop over each sg element in the given *DMA mapped* sg_table object.
@@ -163,7 +163,7 @@ static inline void sg_set_buf(struct scatterlist *sg, const void *buf, · 1 unmodified line
163163 * of the each element.
164164 */
165165 #define for_each_sgtable_dma_sg(sgt, sg, i) \
166− for_each_sg(sgt->sgl, sg, sgt->nents, i)
166+ for_each_sg((sgt)->sgl, sg, (sgt)->nents, i)
167167
168168 /**
169169 * sg_chain - Chain two sglists together
@@ -451,7 +451,7 @@ sg_page_iter_dma_address(struct sg_dma_page_iter *dma_iter) · 281 unmodified lines
451451 * See also for_each_sg_page(). In each loop it operates on PAGE_SIZE unit.
452452 */
453453 #define for_each_sgtable_page(sgt, piter, pgoffset) \
454− for_each_sg_page(sgt->sgl, piter, sgt->orig_nents, pgoffset)
454+ for_each_sg_page((sgt)->sgl, piter, (sgt)->orig_nents, pgoffset)
455455
456456 /**
457457 * for_each_sgtable_dma_page - iterate over the DMA mapped sg_table object
@@ -465,7 +465,7 @@ sg_page_iter_dma_address(struct sg_dma_page_iter *dma_iter) · 7 unmodified lines
465465 * unit.
466466 */
467467 #define for_each_sgtable_dma_page(sgt, dma_iter, pgoffset) \
468− for_each_sg_dma_page(sgt->sgl, dma_iter, sgt->nents, pgoffset)
468+ for_each_sg_dma_page((sgt)->sgl, dma_iter, (sgt)->nents, pgoffset)
469469
470470
471471 /*
include/linux/sched.h+1−6
@@ -114,10 +114,6 @@ struct task_group; · 113 unmodified lines
114114
115115 #define task_is_stopped_or_traced(task) ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
116116
117−#define task_contributes_to_load(task) ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
118− (task->flags & PF_FROZEN) == 0 && \
119− (task->state & TASK_NOLOAD) == 0)
120−
121117 #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
122118
123119 /*
@@ -654,9 +650,8 @@ struct task_struct { · 530 unmodified lines
654650 unsigned int ptrace;
655651
656652 #ifdef CONFIG_SMP
657− struct llist_node wake_entry;
658− unsigned int wake_entry_type;
659653 int on_cpu;
654+ struct __call_single_node wake_entry;
660655 #ifdef CONFIG_THREAD_INFO_IN_TASK
661656 /* Current CPU: */
662657 unsigned int cpu;
include/linux/sched/jobctl.h+3−1
@@ -19,6 +19,7 @@ struct task_struct; · 18 unmodified lines
1919 #define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */
2020 #define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */
2121 #define JOBCTL_TRAP_FREEZE_BIT 23 /* trap for cgroup freezer */
22+#define JOBCTL_TASK_WORK_BIT 24 /* set by TWA_SIGNAL */
2223
2324 #define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)
2425 #define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)
@@ -28,9 +29,10 @@ struct task_struct; · 3 unmodified lines
2829 #define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)
2930 #define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)
3031 #define JOBCTL_TRAP_FREEZE (1UL << JOBCTL_TRAP_FREEZE_BIT)
32+#define JOBCTL_TASK_WORK (1UL << JOBCTL_TASK_WORK_BIT)
3133
3234 #define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)
33−#define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK)
35+#define JOBCTL_PENDING_MASK (JOBCTL_STOP_PENDING | JOBCTL_TRAP_MASK | JOBCTL_TASK_WORK)
3436
3537 extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);
3638 extern void task_clear_jobctl_trapping(struct task_struct *task);
include/linux/serial_core.h+98−4
@@ -462,10 +462,104 @@ extern void uart_handle_cts_change(struct uart_port *uport, · 461 unmodified lines
462462 extern void uart_insert_char(struct uart_port *port, unsigned int status,
463463 unsigned int overrun, unsigned int ch, unsigned int flag);
464464
465−extern int uart_handle_sysrq_char(struct uart_port *port, unsigned int ch);
466−extern int uart_prepare_sysrq_char(struct uart_port *port, unsigned int ch);
467−extern void uart_unlock_and_check_sysrq(struct uart_port *port, unsigned long flags);
468−extern int uart_handle_break(struct uart_port *port);
465+#ifdef CONFIG_MAGIC_SYSRQ_SERIAL
466+#define SYSRQ_TIMEOUT (HZ * 5)
467+
468+bool uart_try_toggle_sysrq(struct uart_port *port, unsigned int ch);
469+
470+static inline int uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
471+{
472+ if (!port->sysrq)
473+ return 0;
474+
475+ if (ch && time_before(jiffies, port->sysrq)) {
476+ if (sysrq_mask()) {
477+ handle_sysrq(ch);
478+ port->sysrq = 0;
479+ return 1;
480+ }
481+ if (uart_try_toggle_sysrq(port, ch))
482+ return 1;
483+ }
484+ port->sysrq = 0;
485+
486+ return 0;
487+}
488+
489+static inline int uart_prepare_sysrq_char(struct uart_port *port, unsigned int ch)
490+{
491+ if (!port->sysrq)
492+ return 0;
493+
494+ if (ch && time_before(jiffies, port->sysrq)) {
495+ if (sysrq_mask()) {
496+ port->sysrq_ch = ch;
497+ port->sysrq = 0;
498+ return 1;
499+ }
500+ if (uart_try_toggle_sysrq(port, ch))
501+ return 1;
502+ }
503+ port->sysrq = 0;
504+
505+ return 0;
506+}
507+
508+static inline void uart_unlock_and_check_sysrq(struct uart_port *port, unsigned long irqflags)
509+{
510+ int sysrq_ch;
511+
512+ if (!port->has_sysrq) {
513+ spin_unlock_irqrestore(&port->lock, irqflags);
514+ return;
515+ }
516+
517+ sysrq_ch = port->sysrq_ch;
518+ port->sysrq_ch = 0;
519+
520+ spin_unlock_irqrestore(&port->lock, irqflags);
521+
522+ if (sysrq_ch)
523+ handle_sysrq(sysrq_ch);
524+}
525+#else /* CONFIG_MAGIC_SYSRQ_SERIAL */
526+static inline int uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
527+{
528+ return 0;
529+}
530+static inline int uart_prepare_sysrq_char(struct uart_port *port, unsigned int ch)
531+{
532+ return 0;
533+}
534+static inline void uart_unlock_and_check_sysrq(struct uart_port *port, unsigned long irqflags)
535+{
536+ spin_unlock_irqrestore(&port->lock, irqflags);
537+}
538+#endif /* CONFIG_MAGIC_SYSRQ_SERIAL */
539+
540+/*
541+ * We do the SysRQ and SAK checking like this...
542+ */
543+static inline int uart_handle_break(struct uart_port *port)
544+{
545+ struct uart_state *state = port->state;
546+
547+ if (port->handle_break)
548+ port->handle_break(port);
549+
550+#ifdef CONFIG_MAGIC_SYSRQ_SERIAL
551+ if (port->has_sysrq && uart_console(port)) {
552+ if (!port->sysrq) {
553+ port->sysrq = jiffies + SYSRQ_TIMEOUT;
554+ return 1;
555+ }
556+ port->sysrq = 0;
557+ }
558+#endif
559+ if (port->flags & UPF_SAK)
560+ do_SAK(state->port.tty);
561+ return 0;
562+}
469563
470564 /*
471565 * UART_ENABLE_MS - determine if port should enable modem status irqs
include/linux/skmsg.h+13−0
@@ -430,6 +430,19 @@ static inline void psock_set_prog(struct bpf_prog **pprog, · 429 unmodified lines
430430 bpf_prog_put(prog);
431431 }
432432
433+static inline int psock_replace_prog(struct bpf_prog **pprog,
434+ struct bpf_prog *prog,
435+ struct bpf_prog *old)
436+{
437+ if (cmpxchg(pprog, old, prog) != old)
438+ return -ENOENT;
439+
440+ if (old)
441+ bpf_prog_put(old);
442+
443+ return 0;
444+}
445+
433446 static inline void psock_progs_drop(struct sk_psock_progs *progs)
434447 {
435448 psock_set_prog(&progs->msg_parser, NULL);
include/linux/smp.h+8−15
@@ -12,29 +12,22 @@ · 11 unmodified lines
1212 #include <linux/list.h>
1313 #include <linux/cpumask.h>
1414 #include <linux/init.h>
15−#include <linux/llist.h>
15+#include <linux/smp_types.h>
1616
1717 typedef void (*smp_call_func_t)(void *info);
1818 typedef bool (*smp_cond_func_t)(int cpu, void *info);
1919
20−enum {
21− CSD_FLAG_LOCK = 0x01,
22−
23− /* IRQ_WORK_flags */
24−
25− CSD_TYPE_ASYNC = 0x00,
26− CSD_TYPE_SYNC = 0x10,
27− CSD_TYPE_IRQ_WORK = 0x20,
28− CSD_TYPE_TTWU = 0x30,
29− CSD_FLAG_TYPE_MASK = 0xF0,
30−};
31−
3220 /*
3321 * structure shares (partial) layout with struct irq_work
3422 */
3523 struct __call_single_data {
36− struct llist_node llist;
37− unsigned int flags;
24+ union {
25+ struct __call_single_node node;
26+ struct {
27+ struct llist_node llist;
28+ unsigned int flags;
29+ };
30+ };
3831 smp_call_func_t func;
3932 void *info;
4033 };
include/linux/smp_types.h+66−0
@@ -0,0 +1,66 @@
1+/* SPDX-License-Identifier: GPL-2.0 */
2+#ifndef __LINUX_SMP_TYPES_H
3+#define __LINUX_SMP_TYPES_H
4+
5+#include <linux/llist.h>
6+
7+enum {
8+ CSD_FLAG_LOCK = 0x01,
9+
10+ IRQ_WORK_PENDING = 0x01,
11+ IRQ_WORK_BUSY = 0x02,
12+ IRQ_WORK_LAZY = 0x04, /* No IPI, wait for tick */
13+ IRQ_WORK_HARD_IRQ = 0x08, /* IRQ context on PREEMPT_RT */
14+
15+ IRQ_WORK_CLAIMED = (IRQ_WORK_PENDING | IRQ_WORK_BUSY),
16+
17+ CSD_TYPE_ASYNC = 0x00,
18+ CSD_TYPE_SYNC = 0x10,
19+ CSD_TYPE_IRQ_WORK = 0x20,
20+ CSD_TYPE_TTWU = 0x30,
21+
22+ CSD_FLAG_TYPE_MASK = 0xF0,
23+};
24+
25+/*
26+ * struct __call_single_node is the primary type on
27+ * smp.c:call_single_queue.
28+ *
29+ * flush_smp_call_function_queue() only reads the type from
30+ * __call_single_node::u_flags as a regular load, the above
31+ * (anonymous) enum defines all the bits of this word.
32+ *
33+ * Other bits are not modified until the type is known.
34+ *
35+ * CSD_TYPE_SYNC/ASYNC:
36+ * struct {
37+ * struct llist_node node;
38+ * unsigned int flags;
39+ * smp_call_func_t func;
40+ * void *info;
41+ * };
42+ *
43+ * CSD_TYPE_IRQ_WORK:
44+ * struct {
45+ * struct llist_node node;
46+ * atomic_t flags;
47+ * void (*func)(struct irq_work *);
48+ * };
49+ *
50+ * CSD_TYPE_TTWU:
51+ * struct {
52+ * struct llist_node node;
53+ * unsigned int flags;
54+ * };
55+ *
56+ */
57+
58+struct __call_single_node {
59+ struct llist_node llist;
60+ union {
61+ unsigned int u_flags;
62+ atomic_t a_flags;
63+ };
64+};
65+
66+#endif /* __LINUX_SMP_TYPES_H */
include/linux/swap.h+1−0
@@ -313,6 +313,7 @@ struct vma_swap_readahead { · 312 unmodified lines
313313 };
314314
315315 /* linux/mm/workingset.c */
316+void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);
316317 void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg);
317318 void workingset_refault(struct page *page, void *shadow);
318319 void workingset_activation(struct page *page);
include/linux/syscalls.h+1−1
@@ -1360,7 +1360,7 @@ static inline long ksys_lchown(const char __user *filename, uid_t user, · 1359 unmodified lines
13601360
13611361 extern long do_sys_ftruncate(unsigned int fd, loff_t length, int small);
13621362
1363−static inline long ksys_ftruncate(unsigned int fd, unsigned long length)
1363+static inline long ksys_ftruncate(unsigned int fd, loff_t length)
13641364 {
13651365 return do_sys_ftruncate(fd, length, 1);
13661366 }
include/linux/task_work.h+4−1
@@ -13,7 +13,10 @@ init_task_work(struct callback_head *twork, task_work_func_t func) · 12 unmodified lines
1313 twork->func = func;
1414 }
1515
16−int task_work_add(struct task_struct *task, struct callback_head *twork, bool);
16+#define TWA_RESUME 1
17+#define TWA_SIGNAL 2
18+int task_work_add(struct task_struct *task, struct callback_head *twork, int);
19+
1720 struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
1821 void task_work_run(void);
1922
include/linux/timekeeping.h+7−7
@@ -222,9 +222,9 @@ extern bool timekeeping_rtc_skipresume(void); · 221 unmodified lines
222222
223223 extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta);
224224
225−/*
225+/**
226226 * struct system_time_snapshot - simultaneous raw/real time capture with
227− * counter value
227+ * counter value
228228 * @cycles: Clocksource counter value to produce the system times
229229 * @real: Realtime system time
230230 * @raw: Monotonic raw system time
@@ -239,9 +239,9 @@ struct system_time_snapshot { · 8 unmodified lines
239239 u8 cs_was_changed_seq;
240240 };
241241
242−/*
242+/**
243243 * struct system_device_crosststamp - system/device cross-timestamp
244− * (syncronized capture)
244+ * (synchronized capture)
245245 * @device: Device time
246246 * @sys_realtime: Realtime simultaneous with device time
247247 * @sys_monoraw: Monotonic raw simultaneous with device time
@@ -252,12 +252,12 @@ struct system_device_crosststamp { · 4 unmodified lines
252252 ktime_t sys_monoraw;
253253 };
254254
255−/*
255+/**
256256 * struct system_counterval_t - system counter value with the pointer to the
257− * corresponding clocksource
257+ * corresponding clocksource
258258 * @cycles: System counter value
259259 * @cs: Clocksource corresponding to system counter value. Used by
260− * timekeeping code to verify comparibility of two cycle values
260+ * timekeeping code to verify comparibility of two cycle values
261261 */
262262 struct system_counterval_t {
263263 u64 cycles;
include/linux/tpm_eventlog.h+13−1
@@ -81,6 +81,8 @@ struct tcg_efi_specid_event_algs { · 80 unmodified lines
8181 u16 digest_size;
8282 } __packed;
8383
84+#define TCG_SPECID_SIG "Spec ID Event03"
85+
8486 struct tcg_efi_specid_event_head {
8587 u8 signature[16];
8688 u32 platform_class;
@@ -171,6 +173,7 @@ static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, · 84 unmodified lines
171173 int i;
172174 int j;
173175 u32 count, event_type;
176+ const u8 zero_digest[sizeof(event_header->digest)] = {0};
174177
175178 marker = event;
176179 marker_start = marker;
@@ -198,10 +201,19 @@ static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, · 21 unmodified lines
198201 count = READ_ONCE(event->count);
199202 event_type = READ_ONCE(event->event_type);
200203
204+ /* Verify that it's the log header */
205+ if (event_header->pcr_idx != 0 ||
206+ event_header->event_type != NO_ACTION ||
207+ memcmp(event_header->digest, zero_digest, sizeof(zero_digest))) {
208+ size = 0;
209+ goto out;
210+ }
211+
201212 efispecid = (struct tcg_efi_specid_event_head *)event_header->event;
202213
203214 /* Check if event is malformed. */
204− if (count > efispecid->num_algs) {
215+ if (memcmp(efispecid->signature, TCG_SPECID_SIG,
216+ sizeof(TCG_SPECID_SIG)) || count > efispecid->num_algs) {
205217 size = 0;
206218 goto out;
207219 }
include/linux/vmalloc.h+0−1
@@ -106,7 +106,6 @@ extern void *vzalloc(unsigned long size); · 105 unmodified lines
106106 extern void *vmalloc_user(unsigned long size);
107107 extern void *vmalloc_node(unsigned long size, int node);
108108 extern void *vzalloc_node(unsigned long size, int node);
109−extern void *vmalloc_exec(unsigned long size);
110109 extern void *vmalloc_32(unsigned long size);
111110 extern void *vmalloc_32_user(unsigned long size);
112111 extern void *__vmalloc(unsigned long size, gfp_t gfp_mask);