History

Merge branch 'sched/urgent'

Peter Zijlstra committed 6 years ago

Commit faa2fd72 parents 01e377c ce3614d1250 files · +11132 −6391Browse files

Showing the changes to include/linux (50 of 1250 files). Show all

Unified · Split

50 files
  1. include/linux/atomic-fallback.h +235 −1
  2. include/linux/blkdev.h +1 −0
  3. include/linux/can/skb.h +1 −1
  4. include/linux/cb710.h +1 −1
  5. include/linux/ceph/libceph.h +2 −2
  6. include/linux/compiler-clang.h +8 −0
  7. include/linux/compiler-gcc.h +6 −0
  8. include/linux/compiler.h +1 −1
  9. include/linux/compiler_attributes.h +1 −0
  10. include/linux/compiler_types.h +10 −12
  11. include/linux/dma-direct.h +0 −2
  12. include/linux/dmaengine.h +2 −2
  13. include/linux/efi.h +3 −5
  14. include/linux/fs.h +0 −2
  15. include/linux/fscache-cache.h +1 −1
  16. include/linux/host1x.h +3 −0
  17. include/linux/i2c.h +3 −5
  18. include/linux/intel-iommu.h +1 −0
  19. include/linux/irq_work.h +8 −18
  20. include/linux/jbd2.h +5 −1
  21. include/linux/kexec.h +1 −1
  22. include/linux/kgdb.h +2 −3
  23. include/linux/kprobes.h +5 −1
  24. include/linux/kvm_host.h +1 −1
  25. include/linux/libata.h +8 −1
  26. include/linux/lsm_hook_defs.h +2 −2
  27. include/linux/mlx5/mlx5_ifc.h +6 −4
  28. include/linux/mmzone.h +2 −2
  29. include/linux/netdevice.h +1 −1
  30. include/linux/netfilter_ipv4/ip_tables.h +6 −0
  31. include/linux/netfilter_ipv6/ip6_tables.h +3 −0
  32. include/linux/overflow.h +21 −4
  33. include/linux/pci.h +5 −6
  34. include/linux/pgtable.h +7 −0
  35. include/linux/phy.h +1 −0
  36. include/linux/psp-sev.h +1 −1
  37. include/linux/qed/qed_chain.h +16 −10
  38. include/linux/sched.h +1 −6
  39. include/linux/sched/jobctl.h +3 −1
  40. include/linux/sctp.h +18 −18
  41. include/linux/smp.h +8 −15
  42. include/linux/smp_types.h +66 −0
  43. include/linux/swap.h +1 −0
  44. include/linux/syscalls.h +1 −1
  45. include/linux/task_work.h +4 −1
  46. include/linux/tifm.h +1 −1
  47. include/linux/timekeeping.h +7 −7
  48. include/linux/tpm_eventlog.h +13 −1
  49. include/linux/uaccess.h +13 −10
  50. include/linux/vmalloc.h +0 −1
include/linux/atomic-fallback.h+235−1
@@ -77,6 +77,9 @@ · 76 unmodified lines
77 77
78#endif /* cmpxchg64_relaxed */78#endif /* cmpxchg64_relaxed */
79 79
80#define arch_atomic_read atomic_read
81#define arch_atomic_read_acquire atomic_read_acquire
82
80#ifndef atomic_read_acquire83#ifndef atomic_read_acquire
81static __always_inline int84static __always_inline int
82atomic_read_acquire(const atomic_t *v)85atomic_read_acquire(const atomic_t *v)
@@ -86,6 +89,9 @@ atomic_read_acquire(const atomic_t *v) · 3 unmodified lines
86#define atomic_read_acquire atomic_read_acquire89#define atomic_read_acquire atomic_read_acquire
87#endif90#endif
88 91
92#define arch_atomic_set atomic_set
93#define arch_atomic_set_release atomic_set_release
94
89#ifndef atomic_set_release95#ifndef atomic_set_release
90static __always_inline void96static __always_inline void
91atomic_set_release(atomic_t *v, int i)97atomic_set_release(atomic_t *v, int i)
@@ -95,6 +101,13 @@ atomic_set_release(atomic_t *v, int i) · 3 unmodified lines
95#define atomic_set_release atomic_set_release101#define atomic_set_release atomic_set_release
96#endif102#endif
97 103
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
98#ifndef atomic_add_return_relaxed111#ifndef atomic_add_return_relaxed
99#define atomic_add_return_acquire atomic_add_return112#define atomic_add_return_acquire atomic_add_return
100#define atomic_add_return_release atomic_add_return113#define atomic_add_return_release atomic_add_return
@@ -137,6 +150,11 @@ atomic_add_return(int i, atomic_t *v) · 36 unmodified lines
137 150
138#endif /* atomic_add_return_relaxed */151#endif /* atomic_add_return_relaxed */
139 152
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
140#ifndef atomic_fetch_add_relaxed158#ifndef atomic_fetch_add_relaxed
141#define atomic_fetch_add_acquire atomic_fetch_add159#define atomic_fetch_add_acquire atomic_fetch_add
142#define atomic_fetch_add_release atomic_fetch_add160#define atomic_fetch_add_release atomic_fetch_add
@@ -179,6 +197,13 @@ atomic_fetch_add(int i, atomic_t *v) · 36 unmodified lines
179 197
180#endif /* atomic_fetch_add_relaxed */198#endif /* atomic_fetch_add_relaxed */
181 199
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
182#ifndef atomic_sub_return_relaxed207#ifndef atomic_sub_return_relaxed
183#define atomic_sub_return_acquire atomic_sub_return208#define atomic_sub_return_acquire atomic_sub_return
184#define atomic_sub_return_release atomic_sub_return209#define atomic_sub_return_release atomic_sub_return
@@ -221,6 +246,11 @@ atomic_sub_return(int i, atomic_t *v) · 36 unmodified lines
221 246
222#endif /* atomic_sub_return_relaxed */247#endif /* atomic_sub_return_relaxed */
223 248
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
224#ifndef atomic_fetch_sub_relaxed254#ifndef atomic_fetch_sub_relaxed
225#define atomic_fetch_sub_acquire atomic_fetch_sub255#define atomic_fetch_sub_acquire atomic_fetch_sub
226#define atomic_fetch_sub_release atomic_fetch_sub256#define atomic_fetch_sub_release atomic_fetch_sub
@@ -263,6 +293,8 @@ atomic_fetch_sub(int i, atomic_t *v) · 36 unmodified lines
263 293
264#endif /* atomic_fetch_sub_relaxed */294#endif /* atomic_fetch_sub_relaxed */
265 295
296#define arch_atomic_inc atomic_inc
297
266#ifndef atomic_inc298#ifndef atomic_inc
267static __always_inline void299static __always_inline void
268atomic_inc(atomic_t *v)300atomic_inc(atomic_t *v)
@@ -272,6 +304,11 @@ atomic_inc(atomic_t *v) · 3 unmodified lines
272#define atomic_inc atomic_inc304#define atomic_inc atomic_inc
273#endif305#endif
274 306
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
275#ifndef atomic_inc_return_relaxed312#ifndef atomic_inc_return_relaxed
276#ifdef atomic_inc_return313#ifdef atomic_inc_return
277#define atomic_inc_return_acquire atomic_inc_return314#define atomic_inc_return_acquire atomic_inc_return
@@ -353,6 +390,11 @@ atomic_inc_return(atomic_t *v) · 75 unmodified lines
353 390
354#endif /* atomic_inc_return_relaxed */391#endif /* atomic_inc_return_relaxed */
355 392
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
356#ifndef atomic_fetch_inc_relaxed398#ifndef atomic_fetch_inc_relaxed
357#ifdef atomic_fetch_inc399#ifdef atomic_fetch_inc
358#define atomic_fetch_inc_acquire atomic_fetch_inc400#define atomic_fetch_inc_acquire atomic_fetch_inc
@@ -434,6 +476,8 @@ atomic_fetch_inc(atomic_t *v) · 75 unmodified lines
434 476
435#endif /* atomic_fetch_inc_relaxed */477#endif /* atomic_fetch_inc_relaxed */
436 478
479#define arch_atomic_dec atomic_dec
480
437#ifndef atomic_dec481#ifndef atomic_dec
438static __always_inline void482static __always_inline void
439atomic_dec(atomic_t *v)483atomic_dec(atomic_t *v)
@@ -443,6 +487,11 @@ atomic_dec(atomic_t *v) · 3 unmodified lines
443#define atomic_dec atomic_dec487#define atomic_dec atomic_dec
444#endif488#endif
445 489
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
446#ifndef atomic_dec_return_relaxed495#ifndef atomic_dec_return_relaxed
447#ifdef atomic_dec_return496#ifdef atomic_dec_return
448#define atomic_dec_return_acquire atomic_dec_return497#define atomic_dec_return_acquire atomic_dec_return
@@ -524,6 +573,11 @@ atomic_dec_return(atomic_t *v) · 75 unmodified lines
524 573
525#endif /* atomic_dec_return_relaxed */574#endif /* atomic_dec_return_relaxed */
526 575
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
527#ifndef atomic_fetch_dec_relaxed581#ifndef atomic_fetch_dec_relaxed
528#ifdef atomic_fetch_dec582#ifdef atomic_fetch_dec
529#define atomic_fetch_dec_acquire atomic_fetch_dec583#define atomic_fetch_dec_acquire atomic_fetch_dec
@@ -605,6 +659,13 @@ atomic_fetch_dec(atomic_t *v) · 75 unmodified lines
605 659
606#endif /* atomic_fetch_dec_relaxed */660#endif /* atomic_fetch_dec_relaxed */
607 661
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
608#ifndef atomic_fetch_and_relaxed669#ifndef atomic_fetch_and_relaxed
609#define atomic_fetch_and_acquire atomic_fetch_and670#define atomic_fetch_and_acquire atomic_fetch_and
610#define atomic_fetch_and_release atomic_fetch_and671#define atomic_fetch_and_release atomic_fetch_and
@@ -647,6 +708,8 @@ atomic_fetch_and(int i, atomic_t *v) · 36 unmodified lines
647 708
648#endif /* atomic_fetch_and_relaxed */709#endif /* atomic_fetch_and_relaxed */
649 710
711#define arch_atomic_andnot atomic_andnot
712
650#ifndef atomic_andnot713#ifndef atomic_andnot
651static __always_inline void714static __always_inline void
652atomic_andnot(int i, atomic_t *v)715atomic_andnot(int i, atomic_t *v)
@@ -656,6 +719,11 @@ atomic_andnot(int i, atomic_t *v) · 3 unmodified lines
656#define atomic_andnot atomic_andnot719#define atomic_andnot atomic_andnot
657#endif720#endif
658 721
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
659#ifndef atomic_fetch_andnot_relaxed727#ifndef atomic_fetch_andnot_relaxed
660#ifdef atomic_fetch_andnot728#ifdef atomic_fetch_andnot
661#define atomic_fetch_andnot_acquire atomic_fetch_andnot729#define atomic_fetch_andnot_acquire atomic_fetch_andnot
@@ -737,6 +805,13 @@ atomic_fetch_andnot(int i, atomic_t *v) · 75 unmodified lines
737 805
738#endif /* atomic_fetch_andnot_relaxed */806#endif /* atomic_fetch_andnot_relaxed */
739 807
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
740#ifndef atomic_fetch_or_relaxed815#ifndef atomic_fetch_or_relaxed
741#define atomic_fetch_or_acquire atomic_fetch_or816#define atomic_fetch_or_acquire atomic_fetch_or
742#define atomic_fetch_or_release atomic_fetch_or817#define atomic_fetch_or_release atomic_fetch_or
@@ -779,6 +854,13 @@ atomic_fetch_or(int i, atomic_t *v) · 36 unmodified lines
779 854
780#endif /* atomic_fetch_or_relaxed */855#endif /* atomic_fetch_or_relaxed */
781 856
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
782#ifndef atomic_fetch_xor_relaxed864#ifndef atomic_fetch_xor_relaxed
783#define atomic_fetch_xor_acquire atomic_fetch_xor865#define atomic_fetch_xor_acquire atomic_fetch_xor
784#define atomic_fetch_xor_release atomic_fetch_xor866#define atomic_fetch_xor_release atomic_fetch_xor
@@ -821,6 +903,11 @@ atomic_fetch_xor(int i, atomic_t *v) · 36 unmodified lines
821 903
822#endif /* atomic_fetch_xor_relaxed */904#endif /* atomic_fetch_xor_relaxed */
823 905
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
824#ifndef atomic_xchg_relaxed911#ifndef atomic_xchg_relaxed
825#define atomic_xchg_acquire atomic_xchg912#define atomic_xchg_acquire atomic_xchg
826#define atomic_xchg_release atomic_xchg913#define atomic_xchg_release atomic_xchg
@@ -863,6 +950,11 @@ atomic_xchg(atomic_t *v, int i) · 36 unmodified lines
863 950
864#endif /* atomic_xchg_relaxed */951#endif /* atomic_xchg_relaxed */
865 952
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
866#ifndef atomic_cmpxchg_relaxed958#ifndef atomic_cmpxchg_relaxed
867#define atomic_cmpxchg_acquire atomic_cmpxchg959#define atomic_cmpxchg_acquire atomic_cmpxchg
868#define atomic_cmpxchg_release atomic_cmpxchg960#define atomic_cmpxchg_release atomic_cmpxchg
@@ -905,6 +997,11 @@ atomic_cmpxchg(atomic_t *v, int old, int new) · 36 unmodified lines
905 997
906#endif /* atomic_cmpxchg_relaxed */998#endif /* atomic_cmpxchg_relaxed */
907 999
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
908#ifndef atomic_try_cmpxchg_relaxed1005#ifndef atomic_try_cmpxchg_relaxed
909#ifdef atomic_try_cmpxchg1006#ifdef atomic_try_cmpxchg
910#define atomic_try_cmpxchg_acquire atomic_try_cmpxchg1007#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
1002 1099
1003#endif /* atomic_try_cmpxchg_relaxed */1100#endif /* atomic_try_cmpxchg_relaxed */
1004 1101
1102#define arch_atomic_sub_and_test atomic_sub_and_test
1103
1005#ifndef atomic_sub_and_test1104#ifndef atomic_sub_and_test
1006/**1105/**
1007 * atomic_sub_and_test - subtract value from variable and test result1106 * 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
1020#define atomic_sub_and_test atomic_sub_and_test1119#define atomic_sub_and_test atomic_sub_and_test
1021#endif1120#endif
1022 1121
1122#define arch_atomic_dec_and_test atomic_dec_and_test
1123
1023#ifndef atomic_dec_and_test1124#ifndef atomic_dec_and_test
1024/**1125/**
1025 * atomic_dec_and_test - decrement and test1126 * atomic_dec_and_test - decrement and test
@@ -1037,6 +1138,8 @@ atomic_dec_and_test(atomic_t *v) · 11 unmodified lines
1037#define atomic_dec_and_test atomic_dec_and_test1138#define atomic_dec_and_test atomic_dec_and_test
1038#endif1139#endif
1039 1140
1141#define arch_atomic_inc_and_test atomic_inc_and_test
1142
1040#ifndef atomic_inc_and_test1143#ifndef atomic_inc_and_test
1041/**1144/**
1042 * atomic_inc_and_test - increment and test1145 * atomic_inc_and_test - increment and test
@@ -1054,6 +1157,8 @@ atomic_inc_and_test(atomic_t *v) · 11 unmodified lines
1054#define atomic_inc_and_test atomic_inc_and_test1157#define atomic_inc_and_test atomic_inc_and_test
1055#endif1158#endif
1056 1159
1160#define arch_atomic_add_negative atomic_add_negative
1161
1057#ifndef atomic_add_negative1162#ifndef atomic_add_negative
1058/**1163/**
1059 * atomic_add_negative - add and test if negative1164 * atomic_add_negative - add and test if negative
@@ -1072,6 +1177,8 @@ atomic_add_negative(int i, atomic_t *v) · 12 unmodified lines
1072#define atomic_add_negative atomic_add_negative1177#define atomic_add_negative atomic_add_negative
1073#endif1178#endif
1074 1179
1180#define arch_atomic_fetch_add_unless atomic_fetch_add_unless
1181
1075#ifndef atomic_fetch_add_unless1182#ifndef atomic_fetch_add_unless
1076/**1183/**
1077 * atomic_fetch_add_unless - add unless the number is already a given value1184 * 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
1097#define atomic_fetch_add_unless atomic_fetch_add_unless1204#define atomic_fetch_add_unless atomic_fetch_add_unless
1098#endif1205#endif
1099 1206
1207#define arch_atomic_add_unless atomic_add_unless
1208
1100#ifndef atomic_add_unless1209#ifndef atomic_add_unless
1101/**1210/**
1102 * atomic_add_unless - add unless the number is already a given value1211 * 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
1115#define atomic_add_unless atomic_add_unless1224#define atomic_add_unless atomic_add_unless
1116#endif1225#endif
1117 1226
1227#define arch_atomic_inc_not_zero atomic_inc_not_zero
1228
1118#ifndef atomic_inc_not_zero1229#ifndef atomic_inc_not_zero
1119/**1230/**
1120 * atomic_inc_not_zero - increment unless the number is zero1231 * atomic_inc_not_zero - increment unless the number is zero
@@ -1131,6 +1242,8 @@ atomic_inc_not_zero(atomic_t *v) · 10 unmodified lines
1131#define atomic_inc_not_zero atomic_inc_not_zero1242#define atomic_inc_not_zero atomic_inc_not_zero
1132#endif1243#endif
1133 1244
1245#define arch_atomic_inc_unless_negative atomic_inc_unless_negative
1246
1134#ifndef atomic_inc_unless_negative1247#ifndef atomic_inc_unless_negative
1135static __always_inline bool1248static __always_inline bool
1136atomic_inc_unless_negative(atomic_t *v)1249atomic_inc_unless_negative(atomic_t *v)
@@ -1147,6 +1260,8 @@ atomic_inc_unless_negative(atomic_t *v) · 10 unmodified lines
1147#define atomic_inc_unless_negative atomic_inc_unless_negative1260#define atomic_inc_unless_negative atomic_inc_unless_negative
1148#endif1261#endif
1149 1262
1263#define arch_atomic_dec_unless_positive atomic_dec_unless_positive
1264
1150#ifndef atomic_dec_unless_positive1265#ifndef atomic_dec_unless_positive
1151static __always_inline bool1266static __always_inline bool
1152atomic_dec_unless_positive(atomic_t *v)1267atomic_dec_unless_positive(atomic_t *v)
@@ -1163,6 +1278,8 @@ atomic_dec_unless_positive(atomic_t *v) · 10 unmodified lines
1163#define atomic_dec_unless_positive atomic_dec_unless_positive1278#define atomic_dec_unless_positive atomic_dec_unless_positive
1164#endif1279#endif
1165 1280
1281#define arch_atomic_dec_if_positive atomic_dec_if_positive
1282
1166#ifndef atomic_dec_if_positive1283#ifndef atomic_dec_if_positive
1167static __always_inline int1284static __always_inline int
1168atomic_dec_if_positive(atomic_t *v)1285atomic_dec_if_positive(atomic_t *v)
@@ -1184,6 +1301,9 @@ atomic_dec_if_positive(atomic_t *v) · 15 unmodified lines
1184#include <asm-generic/atomic64.h>1301#include <asm-generic/atomic64.h>
1185#endif1302#endif
1186 1303
1304#define arch_atomic64_read atomic64_read
1305#define arch_atomic64_read_acquire atomic64_read_acquire
1306
1187#ifndef atomic64_read_acquire1307#ifndef atomic64_read_acquire
1188static __always_inline s641308static __always_inline s64
1189atomic64_read_acquire(const atomic64_t *v)1309atomic64_read_acquire(const atomic64_t *v)
@@ -1193,6 +1313,9 @@ atomic64_read_acquire(const atomic64_t *v) · 3 unmodified lines
1193#define atomic64_read_acquire atomic64_read_acquire1313#define atomic64_read_acquire atomic64_read_acquire
1194#endif1314#endif
1195 1315
1316#define arch_atomic64_set atomic64_set
1317#define arch_atomic64_set_release atomic64_set_release
1318
1196#ifndef atomic64_set_release1319#ifndef atomic64_set_release
1197static __always_inline void1320static __always_inline void
1198atomic64_set_release(atomic64_t *v, s64 i)1321atomic64_set_release(atomic64_t *v, s64 i)
@@ -1202,6 +1325,13 @@ atomic64_set_release(atomic64_t *v, s64 i) · 3 unmodified lines
1202#define atomic64_set_release atomic64_set_release1325#define atomic64_set_release atomic64_set_release
1203#endif1326#endif
1204 1327
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
1205#ifndef atomic64_add_return_relaxed1335#ifndef atomic64_add_return_relaxed
1206#define atomic64_add_return_acquire atomic64_add_return1336#define atomic64_add_return_acquire atomic64_add_return
1207#define atomic64_add_return_release atomic64_add_return1337#define atomic64_add_return_release atomic64_add_return
@@ -1244,6 +1374,11 @@ atomic64_add_return(s64 i, atomic64_t *v) · 36 unmodified lines
1244 1374
1245#endif /* atomic64_add_return_relaxed */1375#endif /* atomic64_add_return_relaxed */
1246 1376
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
1247#ifndef atomic64_fetch_add_relaxed1382#ifndef atomic64_fetch_add_relaxed
1248#define atomic64_fetch_add_acquire atomic64_fetch_add1383#define atomic64_fetch_add_acquire atomic64_fetch_add
1249#define atomic64_fetch_add_release atomic64_fetch_add1384#define atomic64_fetch_add_release atomic64_fetch_add
@@ -1286,6 +1421,13 @@ atomic64_fetch_add(s64 i, atomic64_t *v) · 36 unmodified lines
1286 1421
1287#endif /* atomic64_fetch_add_relaxed */1422#endif /* atomic64_fetch_add_relaxed */
1288 1423
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
1289#ifndef atomic64_sub_return_relaxed1431#ifndef atomic64_sub_return_relaxed
1290#define atomic64_sub_return_acquire atomic64_sub_return1432#define atomic64_sub_return_acquire atomic64_sub_return
1291#define atomic64_sub_return_release atomic64_sub_return1433#define atomic64_sub_return_release atomic64_sub_return
@@ -1328,6 +1470,11 @@ atomic64_sub_return(s64 i, atomic64_t *v) · 36 unmodified lines
1328 1470
1329#endif /* atomic64_sub_return_relaxed */1471#endif /* atomic64_sub_return_relaxed */
1330 1472
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
1331#ifndef atomic64_fetch_sub_relaxed1478#ifndef atomic64_fetch_sub_relaxed
1332#define atomic64_fetch_sub_acquire atomic64_fetch_sub1479#define atomic64_fetch_sub_acquire atomic64_fetch_sub
1333#define atomic64_fetch_sub_release atomic64_fetch_sub1480#define atomic64_fetch_sub_release atomic64_fetch_sub
@@ -1370,6 +1517,8 @@ atomic64_fetch_sub(s64 i, atomic64_t *v) · 36 unmodified lines
1370 1517
1371#endif /* atomic64_fetch_sub_relaxed */1518#endif /* atomic64_fetch_sub_relaxed */
1372 1519
1520#define arch_atomic64_inc atomic64_inc
1521
1373#ifndef atomic64_inc1522#ifndef atomic64_inc
1374static __always_inline void1523static __always_inline void
1375atomic64_inc(atomic64_t *v)1524atomic64_inc(atomic64_t *v)
@@ -1379,6 +1528,11 @@ atomic64_inc(atomic64_t *v) · 3 unmodified lines
1379#define atomic64_inc atomic64_inc1528#define atomic64_inc atomic64_inc
1380#endif1529#endif
1381 1530
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
1382#ifndef atomic64_inc_return_relaxed1536#ifndef atomic64_inc_return_relaxed
1383#ifdef atomic64_inc_return1537#ifdef atomic64_inc_return
1384#define atomic64_inc_return_acquire atomic64_inc_return1538#define atomic64_inc_return_acquire atomic64_inc_return
@@ -1460,6 +1614,11 @@ atomic64_inc_return(atomic64_t *v) · 75 unmodified lines
1460 1614
1461#endif /* atomic64_inc_return_relaxed */1615#endif /* atomic64_inc_return_relaxed */
1462 1616
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
1463#ifndef atomic64_fetch_inc_relaxed1622#ifndef atomic64_fetch_inc_relaxed
1464#ifdef atomic64_fetch_inc1623#ifdef atomic64_fetch_inc
1465#define atomic64_fetch_inc_acquire atomic64_fetch_inc1624#define atomic64_fetch_inc_acquire atomic64_fetch_inc
@@ -1541,6 +1700,8 @@ atomic64_fetch_inc(atomic64_t *v) · 75 unmodified lines
1541 1700
1542#endif /* atomic64_fetch_inc_relaxed */1701#endif /* atomic64_fetch_inc_relaxed */
1543 1702
1703#define arch_atomic64_dec atomic64_dec
1704
1544#ifndef atomic64_dec1705#ifndef atomic64_dec
1545static __always_inline void1706static __always_inline void
1546atomic64_dec(atomic64_t *v)1707atomic64_dec(atomic64_t *v)
@@ -1550,6 +1711,11 @@ atomic64_dec(atomic64_t *v) · 3 unmodified lines
1550#define atomic64_dec atomic64_dec1711#define atomic64_dec atomic64_dec
1551#endif1712#endif
1552 1713
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
1553#ifndef atomic64_dec_return_relaxed1719#ifndef atomic64_dec_return_relaxed
1554#ifdef atomic64_dec_return1720#ifdef atomic64_dec_return
1555#define atomic64_dec_return_acquire atomic64_dec_return1721#define atomic64_dec_return_acquire atomic64_dec_return
@@ -1631,6 +1797,11 @@ atomic64_dec_return(atomic64_t *v) · 75 unmodified lines
1631 1797
1632#endif /* atomic64_dec_return_relaxed */1798#endif /* atomic64_dec_return_relaxed */
1633 1799
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
1634#ifndef atomic64_fetch_dec_relaxed1805#ifndef atomic64_fetch_dec_relaxed
1635#ifdef atomic64_fetch_dec1806#ifdef atomic64_fetch_dec
1636#define atomic64_fetch_dec_acquire atomic64_fetch_dec1807#define atomic64_fetch_dec_acquire atomic64_fetch_dec
@@ -1712,6 +1883,13 @@ atomic64_fetch_dec(atomic64_t *v) · 75 unmodified lines
1712 1883
1713#endif /* atomic64_fetch_dec_relaxed */1884#endif /* atomic64_fetch_dec_relaxed */
1714 1885
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
1715#ifndef atomic64_fetch_and_relaxed1893#ifndef atomic64_fetch_and_relaxed
1716#define atomic64_fetch_and_acquire atomic64_fetch_and1894#define atomic64_fetch_and_acquire atomic64_fetch_and
1717#define atomic64_fetch_and_release atomic64_fetch_and1895#define atomic64_fetch_and_release atomic64_fetch_and
@@ -1754,6 +1932,8 @@ atomic64_fetch_and(s64 i, atomic64_t *v) · 36 unmodified lines
1754 1932
1755#endif /* atomic64_fetch_and_relaxed */1933#endif /* atomic64_fetch_and_relaxed */
1756 1934
1935#define arch_atomic64_andnot atomic64_andnot
1936
1757#ifndef atomic64_andnot1937#ifndef atomic64_andnot
1758static __always_inline void1938static __always_inline void
1759atomic64_andnot(s64 i, atomic64_t *v)1939atomic64_andnot(s64 i, atomic64_t *v)
@@ -1763,6 +1943,11 @@ atomic64_andnot(s64 i, atomic64_t *v) · 3 unmodified lines
1763#define atomic64_andnot atomic64_andnot1943#define atomic64_andnot atomic64_andnot
1764#endif1944#endif
1765 1945
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
1766#ifndef atomic64_fetch_andnot_relaxed1951#ifndef atomic64_fetch_andnot_relaxed
1767#ifdef atomic64_fetch_andnot1952#ifdef atomic64_fetch_andnot
1768#define atomic64_fetch_andnot_acquire atomic64_fetch_andnot1953#define atomic64_fetch_andnot_acquire atomic64_fetch_andnot
@@ -1844,6 +2029,13 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 75 unmodified lines
1844 2029
1845#endif /* atomic64_fetch_andnot_relaxed */2030#endif /* atomic64_fetch_andnot_relaxed */
1846 2031
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
1847#ifndef atomic64_fetch_or_relaxed2039#ifndef atomic64_fetch_or_relaxed
1848#define atomic64_fetch_or_acquire atomic64_fetch_or2040#define atomic64_fetch_or_acquire atomic64_fetch_or
1849#define atomic64_fetch_or_release atomic64_fetch_or2041#define atomic64_fetch_or_release atomic64_fetch_or
@@ -1886,6 +2078,13 @@ atomic64_fetch_or(s64 i, atomic64_t *v) · 36 unmodified lines
1886 2078
1887#endif /* atomic64_fetch_or_relaxed */2079#endif /* atomic64_fetch_or_relaxed */
1888 2080
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
1889#ifndef atomic64_fetch_xor_relaxed2088#ifndef atomic64_fetch_xor_relaxed
1890#define atomic64_fetch_xor_acquire atomic64_fetch_xor2089#define atomic64_fetch_xor_acquire atomic64_fetch_xor
1891#define atomic64_fetch_xor_release atomic64_fetch_xor2090#define atomic64_fetch_xor_release atomic64_fetch_xor
@@ -1928,6 +2127,11 @@ atomic64_fetch_xor(s64 i, atomic64_t *v) · 36 unmodified lines
1928 2127
1929#endif /* atomic64_fetch_xor_relaxed */2128#endif /* atomic64_fetch_xor_relaxed */
1930 2129
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
1931#ifndef atomic64_xchg_relaxed2135#ifndef atomic64_xchg_relaxed
1932#define atomic64_xchg_acquire atomic64_xchg2136#define atomic64_xchg_acquire atomic64_xchg
1933#define atomic64_xchg_release atomic64_xchg2137#define atomic64_xchg_release atomic64_xchg
@@ -1970,6 +2174,11 @@ atomic64_xchg(atomic64_t *v, s64 i) · 36 unmodified lines
1970 2174
1971#endif /* atomic64_xchg_relaxed */2175#endif /* atomic64_xchg_relaxed */
1972 2176
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
1973#ifndef atomic64_cmpxchg_relaxed2182#ifndef atomic64_cmpxchg_relaxed
1974#define atomic64_cmpxchg_acquire atomic64_cmpxchg2183#define atomic64_cmpxchg_acquire atomic64_cmpxchg
1975#define atomic64_cmpxchg_release atomic64_cmpxchg2184#define atomic64_cmpxchg_release atomic64_cmpxchg
@@ -2012,6 +2221,11 @@ atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) · 36 unmodified lines
2012 2221
2013#endif /* atomic64_cmpxchg_relaxed */2222#endif /* atomic64_cmpxchg_relaxed */
2014 2223
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
2015#ifndef atomic64_try_cmpxchg_relaxed2229#ifndef atomic64_try_cmpxchg_relaxed
2016#ifdef atomic64_try_cmpxchg2230#ifdef atomic64_try_cmpxchg
2017#define atomic64_try_cmpxchg_acquire atomic64_try_cmpxchg2231#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
2109 2323
2110#endif /* atomic64_try_cmpxchg_relaxed */2324#endif /* atomic64_try_cmpxchg_relaxed */
2111 2325
2326#define arch_atomic64_sub_and_test atomic64_sub_and_test
2327
2112#ifndef atomic64_sub_and_test2328#ifndef atomic64_sub_and_test
2113/**2329/**
2114 * atomic64_sub_and_test - subtract value from variable and test result2330 * 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
2127#define atomic64_sub_and_test atomic64_sub_and_test2343#define atomic64_sub_and_test atomic64_sub_and_test
2128#endif2344#endif
2129 2345
2346#define arch_atomic64_dec_and_test atomic64_dec_and_test
2347
2130#ifndef atomic64_dec_and_test2348#ifndef atomic64_dec_and_test
2131/**2349/**
2132 * atomic64_dec_and_test - decrement and test2350 * atomic64_dec_and_test - decrement and test
@@ -2144,6 +2362,8 @@ atomic64_dec_and_test(atomic64_t *v) · 11 unmodified lines
2144#define atomic64_dec_and_test atomic64_dec_and_test2362#define atomic64_dec_and_test atomic64_dec_and_test
2145#endif2363#endif
2146 2364
2365#define arch_atomic64_inc_and_test atomic64_inc_and_test
2366
2147#ifndef atomic64_inc_and_test2367#ifndef atomic64_inc_and_test
2148/**2368/**
2149 * atomic64_inc_and_test - increment and test2369 * atomic64_inc_and_test - increment and test
@@ -2161,6 +2381,8 @@ atomic64_inc_and_test(atomic64_t *v) · 11 unmodified lines
2161#define atomic64_inc_and_test atomic64_inc_and_test2381#define atomic64_inc_and_test atomic64_inc_and_test
2162#endif2382#endif
2163 2383
2384#define arch_atomic64_add_negative atomic64_add_negative
2385
2164#ifndef atomic64_add_negative2386#ifndef atomic64_add_negative
2165/**2387/**
2166 * atomic64_add_negative - add and test if negative2388 * atomic64_add_negative - add and test if negative
@@ -2179,6 +2401,8 @@ atomic64_add_negative(s64 i, atomic64_t *v) · 12 unmodified lines
2179#define atomic64_add_negative atomic64_add_negative2401#define atomic64_add_negative atomic64_add_negative
2180#endif2402#endif
2181 2403
2404#define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless
2405
2182#ifndef atomic64_fetch_add_unless2406#ifndef atomic64_fetch_add_unless
2183/**2407/**
2184 * atomic64_fetch_add_unless - add unless the number is already a given value2408 * 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
2204#define atomic64_fetch_add_unless atomic64_fetch_add_unless2428#define atomic64_fetch_add_unless atomic64_fetch_add_unless
2205#endif2429#endif
2206 2430
2431#define arch_atomic64_add_unless atomic64_add_unless
2432
2207#ifndef atomic64_add_unless2433#ifndef atomic64_add_unless
2208/**2434/**
2209 * atomic64_add_unless - add unless the number is already a given value2435 * 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
2222#define atomic64_add_unless atomic64_add_unless2448#define atomic64_add_unless atomic64_add_unless
2223#endif2449#endif
2224 2450
2451#define arch_atomic64_inc_not_zero atomic64_inc_not_zero
2452
2225#ifndef atomic64_inc_not_zero2453#ifndef atomic64_inc_not_zero
2226/**2454/**
2227 * atomic64_inc_not_zero - increment unless the number is zero2455 * atomic64_inc_not_zero - increment unless the number is zero
@@ -2238,6 +2466,8 @@ atomic64_inc_not_zero(atomic64_t *v) · 10 unmodified lines
2238#define atomic64_inc_not_zero atomic64_inc_not_zero2466#define atomic64_inc_not_zero atomic64_inc_not_zero
2239#endif2467#endif
2240 2468
2469#define arch_atomic64_inc_unless_negative atomic64_inc_unless_negative
2470
2241#ifndef atomic64_inc_unless_negative2471#ifndef atomic64_inc_unless_negative
2242static __always_inline bool2472static __always_inline bool
2243atomic64_inc_unless_negative(atomic64_t *v)2473atomic64_inc_unless_negative(atomic64_t *v)
@@ -2254,6 +2484,8 @@ atomic64_inc_unless_negative(atomic64_t *v) · 10 unmodified lines
2254#define atomic64_inc_unless_negative atomic64_inc_unless_negative2484#define atomic64_inc_unless_negative atomic64_inc_unless_negative
2255#endif2485#endif
2256 2486
2487#define arch_atomic64_dec_unless_positive atomic64_dec_unless_positive
2488
2257#ifndef atomic64_dec_unless_positive2489#ifndef atomic64_dec_unless_positive
2258static __always_inline bool2490static __always_inline bool
2259atomic64_dec_unless_positive(atomic64_t *v)2491atomic64_dec_unless_positive(atomic64_t *v)
@@ -2270,6 +2502,8 @@ atomic64_dec_unless_positive(atomic64_t *v) · 10 unmodified lines
2270#define atomic64_dec_unless_positive atomic64_dec_unless_positive2502#define atomic64_dec_unless_positive atomic64_dec_unless_positive
2271#endif2503#endif
2272 2504
2505#define arch_atomic64_dec_if_positive atomic64_dec_if_positive
2506
2273#ifndef atomic64_dec_if_positive2507#ifndef atomic64_dec_if_positive
2274static __always_inline s642508static __always_inline s64
2275atomic64_dec_if_positive(atomic64_t *v)2509atomic64_dec_if_positive(atomic64_t *v)
@@ -2288,4 +2522,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 12 unmodified lines
2288#endif2522#endif
2289 2523
2290#endif /* _LINUX_ATOMIC_FALLBACK_H */2524#endif /* _LINUX_ATOMIC_FALLBACK_H */
2291// 1fac0941c79bf0ae100723cc2ac9b94061f0b67a2525// 9d95b56f98d82a2a26c7b79ccdd0c47572d50a6f
include/linux/blkdev.h+1−0
@@ -590,6 +590,7 @@ struct request_queue { · 589 unmodified lines
590 u64 write_hints[BLK_MAX_WRITE_HINTS];590 u64 write_hints[BLK_MAX_WRITE_HINTS];
591};591};
592 592
593/* Keep blk_queue_flag_name[] in sync with the definitions below */
593#define QUEUE_FLAG_STOPPED 0 /* queue is stopped */594#define QUEUE_FLAG_STOPPED 0 /* queue is stopped */
594#define QUEUE_FLAG_DYING 1 /* queue being torn down */595#define QUEUE_FLAG_DYING 1 /* queue being torn down */
595#define QUEUE_FLAG_NOMERGES 3 /* disable merge attempts */596#define QUEUE_FLAG_NOMERGES 3 /* disable merge attempts */
include/linux/can/skb.h+1−1
@@ -34,7 +34,7 @@ · 33 unmodified lines
34struct can_skb_priv {34struct can_skb_priv {
35 int ifindex;35 int ifindex;
36 int skbcnt;36 int skbcnt;
37 struct can_frame cf[0];37 struct can_frame cf[];
38};38};
39 39
40static inline struct can_skb_priv *can_skb_prv(struct sk_buff *skb)40static inline struct can_skb_priv *can_skb_prv(struct sk_buff *skb)
include/linux/cb710.h+1−1
@@ -36,7 +36,7 @@ struct cb710_chip { · 35 unmodified lines
36 unsigned slot_mask;36 unsigned slot_mask;
37 unsigned slots;37 unsigned slots;
38 spinlock_t irq_lock;38 spinlock_t irq_lock;
39 struct cb710_slot slot[0];39 struct cb710_slot slot[];
40};40};
41 41
42/* NOTE: cb710_chip.slots is modified only during device init/exit and42/* NOTE: cb710_chip.slots is modified only during device init/exit and
include/linux/ceph/libceph.h+2−2
@@ -52,8 +52,7 @@ struct ceph_options { · 51 unmodified lines
52 unsigned long osd_idle_ttl; /* jiffies */52 unsigned long osd_idle_ttl; /* jiffies */
53 unsigned long osd_keepalive_timeout; /* jiffies */53 unsigned long osd_keepalive_timeout; /* jiffies */
54 unsigned long osd_request_timeout; /* jiffies */54 unsigned long osd_request_timeout; /* jiffies */
55 55 u32 read_from_replica; /* CEPH_OSD_FLAG_BALANCE/LOCALIZE_READS */
56 u32 osd_req_flags; /* CEPH_OSD_FLAG_*, applied to each OSD request */
57 56
58 /*57 /*
59 * any type that can't be simply compared or doesn't need58 * any type that can't be simply compared or doesn't need
@@ -76,6 +75,7 @@ struct ceph_options { · 16 unmodified lines
76#define CEPH_OSD_KEEPALIVE_DEFAULT msecs_to_jiffies(5 * 1000)75#define CEPH_OSD_KEEPALIVE_DEFAULT msecs_to_jiffies(5 * 1000)
77#define CEPH_OSD_IDLE_TTL_DEFAULT msecs_to_jiffies(60 * 1000)76#define CEPH_OSD_IDLE_TTL_DEFAULT msecs_to_jiffies(60 * 1000)
78#define CEPH_OSD_REQUEST_TIMEOUT_DEFAULT 0 /* no timeout */77#define CEPH_OSD_REQUEST_TIMEOUT_DEFAULT 0 /* no timeout */
78#define CEPH_READ_FROM_REPLICA_DEFAULT 0 /* read from primary */
79 79
80#define CEPH_MONC_HUNT_INTERVAL msecs_to_jiffies(3 * 1000)80#define CEPH_MONC_HUNT_INTERVAL msecs_to_jiffies(3 * 1000)
81#define CEPH_MONC_PING_INTERVAL msecs_to_jiffies(10 * 1000)81#define CEPH_MONC_PING_INTERVAL msecs_to_jiffies(10 * 1000)
include/linux/compiler-clang.h+8−0
@@ -33,6 +33,14 @@ · 32 unmodified lines
33#define __no_sanitize_thread33#define __no_sanitize_thread
34#endif34#endif
35 35
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
36/*44/*
37 * Not all versions of clang implement the the type-generic versions45 * Not all versions of clang implement the the type-generic versions
38 * of the builtin overflow checkers. Fortunately, clang implements46 * of the builtin overflow checkers. Fortunately, clang implements
include/linux/compiler-gcc.h+6−0
@@ -150,6 +150,12 @@ · 149 unmodified lines
150#define __no_sanitize_thread150#define __no_sanitize_thread
151#endif151#endif
152 152
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
153#if GCC_VERSION >= 50100159#if GCC_VERSION >= 50100
154#define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1160#define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
155#endif161#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
123#ifdef CONFIG_DEBUG_ENTRY123#ifdef CONFIG_DEBUG_ENTRY
124/* Begin/end of an instrumentation safe region */124/* Begin/end of an instrumentation safe region */
125#define instrumentation_begin() ({ \125#define instrumentation_begin() ({ \
126 asm volatile("%c0:\n\t" \126 asm volatile("%c0: nop\n\t" \
127 ".pushsection .discard.instr_begin\n\t" \127 ".pushsection .discard.instr_begin\n\t" \
128 ".long %c0b - .\n\t" \128 ".long %c0b - .\n\t" \
129 ".popsection\n\t" : : "i" (__COUNTER__)); \129 ".popsection\n\t" : : "i" (__COUNTER__)); \
include/linux/compiler_attributes.h+1−0
@@ -40,6 +40,7 @@ · 39 unmodified lines
40# define __GCC4_has_attribute___noclone__ 140# define __GCC4_has_attribute___noclone__ 1
41# define __GCC4_has_attribute___nonstring__ 041# define __GCC4_has_attribute___nonstring__ 0
42# define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8)42# define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8)
43# define __GCC4_has_attribute___no_sanitize_undefined__ (__GNUC_MINOR__ >= 9)
43# define __GCC4_has_attribute___fallthrough__ 044# define __GCC4_has_attribute___fallthrough__ 0
44#endif45#endif
45 46
include/linux/compiler_types.h+10−12
@@ -5,20 +5,20 @@ · 4 unmodified lines
5#ifndef __ASSEMBLY__5#ifndef __ASSEMBLY__
6 6
7#ifdef __CHECKER__7#ifdef __CHECKER__
8# define __user __attribute__((noderef, address_space(1)))
9# define __kernel __attribute__((address_space(0)))8# define __kernel __attribute__((address_space(0)))
9# define __user __attribute__((noderef, address_space(__user)))
10# define __safe __attribute__((safe))10# define __safe __attribute__((safe))
11# define __force __attribute__((force))11# define __force __attribute__((force))
12# define __nocast __attribute__((nocast))12# define __nocast __attribute__((nocast))
13# define __iomem __attribute__((noderef, address_space(2)))13# define __iomem __attribute__((noderef, address_space(__iomem)))
14# define __must_hold(x) __attribute__((context(x,1,1)))14# define __must_hold(x) __attribute__((context(x,1,1)))
15# define __acquires(x) __attribute__((context(x,0,1)))15# define __acquires(x) __attribute__((context(x,0,1)))
16# define __releases(x) __attribute__((context(x,1,0)))16# define __releases(x) __attribute__((context(x,1,0)))
17# define __acquire(x) __context__(x,1)17# define __acquire(x) __context__(x,1)
18# define __release(x) __context__(x,-1)18# define __release(x) __context__(x,-1)
19# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)19# define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
20# define __percpu __attribute__((noderef, address_space(3)))20# define __percpu __attribute__((noderef, address_space(__percpu)))
21# define __rcu __attribute__((noderef, address_space(4)))21# define __rcu __attribute__((noderef, address_space(__rcu)))
22# define __private __attribute__((noderef))22# define __private __attribute__((noderef))
23extern void __chk_user_ptr(const volatile void __user *);23extern void __chk_user_ptr(const volatile void __user *);
24extern void __chk_io_ptr(const volatile void __iomem *);24extern void __chk_io_ptr(const volatile void __iomem *);
@@ -118,10 +118,6 @@ struct ftrace_likely_data { · 93 unmodified lines
118#define notrace __attribute__((__no_instrument_function__))118#define notrace __attribute__((__no_instrument_function__))
119#endif119#endif
120 120
121/* Section for code which can't be instrumented at all */
122#define noinstr \
123 noinline notrace __attribute((__section__(".noinstr.text")))
124
125/*121/*
126 * it doesn't make sense on ARM (currently the only user of __naked)122 * it doesn't make sense on ARM (currently the only user of __naked)
127 * to trace naked functions because then mcount is called without123 * to trace naked functions because then mcount is called without
@@ -193,16 +189,18 @@ struct ftrace_likely_data { · 65 unmodified lines
193 189
194#define __no_kcsan __no_sanitize_thread190#define __no_kcsan __no_sanitize_thread
195#ifdef __SANITIZE_THREAD__191#ifdef __SANITIZE_THREAD__
196# define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused192# define __no_sanitize_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
200#endif193#endif
201 194
202#ifndef __no_sanitize_or_inline195#ifndef __no_sanitize_or_inline
203#define __no_sanitize_or_inline __always_inline196#define __no_sanitize_or_inline __always_inline
204#endif197#endif
205 198
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
206#endif /* __KERNEL__ */204#endif /* __KERNEL__ */
207 205
208#endif /* __ASSEMBLY__ */206#endif /* __ASSEMBLY__ */
include/linux/dma-direct.h+0−2
@@ -77,8 +77,6 @@ void *dma_direct_alloc_pages(struct device *dev, size_t size, · 76 unmodified lines
77 dma_addr_t *dma_handle, gfp_t gfp, unsigned long attrs);77 dma_addr_t *dma_handle, gfp_t gfp, unsigned long attrs);
78void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr,78void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr,
79 dma_addr_t dma_addr, unsigned long attrs);79 dma_addr_t dma_addr, unsigned long attrs);
80struct page *__dma_direct_alloc_pages(struct device *dev, size_t size,
81 gfp_t gfp, unsigned long attrs);
82int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,80int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt,
83 void *cpu_addr, dma_addr_t dma_addr, size_t size,81 void *cpu_addr, dma_addr_t dma_addr, size_t size,
84 unsigned long attrs);82 unsigned long attrs);
include/linux/dmaengine.h+2−2
@@ -153,7 +153,7 @@ struct dma_interleaved_template { · 152 unmodified lines
153 bool dst_sgl;153 bool dst_sgl;
154 size_t numf;154 size_t numf;
155 size_t frame_size;155 size_t frame_size;
156 struct data_chunk sgl[0];156 struct data_chunk sgl[];
157};157};
158 158
159/**159/**
@@ -535,7 +535,7 @@ struct dmaengine_unmap_data { · 375 unmodified lines
535 struct device *dev;535 struct device *dev;
536 struct kref kref;536 struct kref kref;
537 size_t len;537 size_t len;
538 dma_addr_t addr[0];538 dma_addr_t addr[];
539};539};
540 540
541struct dma_async_tx_descriptor;541struct dma_async_tx_descriptor;
include/linux/efi.h+3−5
@@ -350,6 +350,7 @@ void efi_native_runtime_setup(void); · 349 unmodified lines
350 * associated with ConOut350 * associated with ConOut
351 */351 */
352#define LINUX_EFI_ARM_SCREEN_INFO_TABLE_GUID EFI_GUID(0xe03fc20a, 0x85dc, 0x406e, 0xb9, 0x0e, 0x4a, 0xb5, 0x02, 0x37, 0x1d, 0x95)352#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)
353#define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f)354#define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f)
354#define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b)355#define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b)
355#define LINUX_EFI_TPM_EVENT_LOG_GUID EFI_GUID(0xb7799cb0, 0xeca2, 0x4943, 0x96, 0x67, 0x1f, 0xae, 0x07, 0xb7, 0x47, 0xfa)356#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
1236 struct {1237 struct {
1237 phys_addr_t base;1238 phys_addr_t base;
1238 phys_addr_t size;1239 phys_addr_t size;
1239 } entry[0];1240 } entry[];
1240};1241};
1241 1242
1242#define EFI_MEMRESERVE_SIZE(count) (sizeof(struct linux_efi_memreserve) + \
1243 (count) * sizeof(((struct linux_efi_memreserve *)0)->entry[0]))
1244
1245#define EFI_MEMRESERVE_COUNT(size) (((size) - sizeof(struct linux_efi_memreserve)) \1243#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]))
1247 1245
1248void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size);1246void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size);
1249 1247
include/linux/fs.h+0−2
@@ -2592,7 +2592,6 @@ extern void bdput(struct block_device *); · 2591 unmodified lines
2592extern void invalidate_bdev(struct block_device *);2592extern void invalidate_bdev(struct block_device *);
2593extern void iterate_bdevs(void (*)(struct block_device *, void *), void *);2593extern void iterate_bdevs(void (*)(struct block_device *, void *), void *);
2594extern int sync_blockdev(struct block_device *bdev);2594extern int sync_blockdev(struct block_device *bdev);
2595extern void kill_bdev(struct block_device *);
2596extern struct super_block *freeze_bdev(struct block_device *);2595extern struct super_block *freeze_bdev(struct block_device *);
2597extern void emergency_thaw_all(void);2596extern void emergency_thaw_all(void);
2598extern void emergency_thaw_bdev(struct super_block *sb);2597extern void emergency_thaw_bdev(struct super_block *sb);
@@ -2608,7 +2607,6 @@ static inline bool sb_is_blkdev_sb(struct super_block *sb) · 9 unmodified lines
2608#else2607#else
2609static inline void bd_forget(struct inode *inode) {}2608static inline void bd_forget(struct inode *inode) {}
2610static inline int sync_blockdev(struct block_device *bdev) { return 0; }2609static inline int sync_blockdev(struct block_device *bdev) { return 0; }
2611static inline void kill_bdev(struct block_device *bdev) {}
2612static inline void invalidate_bdev(struct block_device *bdev) {}2610static inline void invalidate_bdev(struct block_device *bdev) {}
2613 2611
2614static inline struct super_block *freeze_bdev(struct block_device *sb)2612static inline struct super_block *freeze_bdev(struct block_device *sb)
include/linux/fscache-cache.h+1−1
@@ -46,7 +46,7 @@ struct fscache_cache_tag { · 45 unmodified lines
46 unsigned long flags;46 unsigned long flags;
47#define FSCACHE_TAG_RESERVED 0 /* T if tag is reserved for a cache */47#define FSCACHE_TAG_RESERVED 0 /* T if tag is reserved for a cache */
48 atomic_t usage;48 atomic_t usage;
49 char name[0]; /* tag name */49 char name[]; /* tag name */
50};50};
51 51
52/*52/*
include/linux/host1x.h+3−0
@@ -48,6 +48,9 @@ struct host1x_client_ops { · 47 unmodified lines
48 * @channel: host1x channel associated with this client48 * @channel: host1x channel associated with this client
49 * @syncpts: array of syncpoints requested for this client49 * @syncpts: array of syncpoints requested for this client
50 * @num_syncpts: number of syncpoints requested for this client50 * @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
51 */54 */
52struct host1x_client {55struct host1x_client {
53 struct list_head list;56 struct list_head list;
include/linux/i2c.h+3−5
@@ -408,7 +408,7 @@ static inline bool i2c_detect_slave_mode(struct device *dev) { return false; } · 407 unmodified lines
408 * that are present. This information is used to grow the driver model tree.408 * that are present. This information is used to grow the driver model tree.
409 * For mainboards this is done statically using i2c_register_board_info();409 * For mainboards this is done statically using i2c_register_board_info();
410 * bus numbers identify adapters that aren't yet available. For add-on boards,410 * bus numbers identify adapters that aren't yet available. For add-on boards,
411 * i2c_new_device() does this dynamically with the adapter already known.411 * i2c_new_client_device() does this dynamically with the adapter already known.
412 */412 */
413struct i2c_board_info {413struct i2c_board_info {
414 char type[I2C_NAME_SIZE];414 char type[I2C_NAME_SIZE];
@@ -439,13 +439,11 @@ struct i2c_board_info { · 24 unmodified lines
439 439
440 440
441#if IS_ENABLED(CONFIG_I2C)441#if IS_ENABLED(CONFIG_I2C)
442/* Add-on boards should register/unregister their devices; e.g. a board442/*
443 * Add-on boards should register/unregister their devices; e.g. a board
443 * with integrated I2C, a config eeprom, sensors, and a codec that's444 * with integrated I2C, a config eeprom, sensors, and a codec that's
444 * used in conjunction with the primary hardware.445 * used in conjunction with the primary hardware.
445 */446 */
446struct i2c_client *
447i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info);
448
449struct i2c_client *447struct i2c_client *
450i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info);448i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info);
451 449
include/linux/intel-iommu.h+1−0
@@ -41,6 +41,7 @@ · 40 unmodified lines
41#define DMA_PTE_SNP BIT_ULL(11)41#define DMA_PTE_SNP BIT_ULL(11)
42 42
43#define DMA_FL_PTE_PRESENT BIT_ULL(0)43#define DMA_FL_PTE_PRESENT BIT_ULL(0)
44#define DMA_FL_PTE_US BIT_ULL(2)
44#define DMA_FL_PTE_XD BIT_ULL(63)45#define DMA_FL_PTE_XD BIT_ULL(63)
45 46
46#define ADDR_WIDTH_5LEVEL (57)47#define ADDR_WIDTH_5LEVEL (57)
include/linux/irq_work.h+8−18
@@ -2,7 +2,7 @@ · 1 unmodified line
2#ifndef _LINUX_IRQ_WORK_H2#ifndef _LINUX_IRQ_WORK_H
3#define _LINUX_IRQ_WORK_H3#define _LINUX_IRQ_WORK_H
4 4
5#include <linux/llist.h>5#include <linux/smp_types.h>
6 6
7/*7/*
8 * An entry can be in one of four states:8 * An entry can be in one of four states:
@@ -13,24 +13,14 @@ · 4 unmodified lines
13 * busy NULL, 2 -> {free, claimed} : callback in progress, can be claimed13 * busy NULL, 2 -> {free, claimed} : callback in progress, can be claimed
14 */14 */
15 15
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 */
31struct irq_work {16struct irq_work {
32 struct llist_node llnode;17 union {
33 atomic_t flags;18 struct __call_single_node node;
19 struct {
20 struct llist_node llnode;
21 atomic_t flags;
22 };
23 };
34 void (*func)(struct irq_work *);24 void (*func)(struct irq_work *);
35};25};
36 26
include/linux/jbd2.h+5−1
@@ -765,6 +765,11 @@ struct journal_s · 764 unmodified lines
765 */765 */
766 int j_errno;766 int j_errno;
767 767
768 /**
769 * @j_abort_mutex: Lock the whole aborting procedure.
770 */
771 struct mutex j_abort_mutex;
772
768 /**773 /**
769 * @j_sb_buffer: The first part of the superblock buffer.774 * @j_sb_buffer: The first part of the superblock buffer.
770 */775 */
@@ -1247,7 +1252,6 @@ JBD2_FEATURE_INCOMPAT_FUNCS(csum3, CSUM_V3) · 476 unmodified lines
1247#define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file1252#define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file
1248 * data write error in ordered1253 * data write error in ordered
1249 * mode */1254 * mode */
1250#define JBD2_REC_ERR 0x080 /* The errno in the sb has been recorded */
1251 1255
1252/*1256/*
1253 * Function declarations for the journaling transaction and buffer1257 * Function declarations for the journaling transaction and buffer
include/linux/kexec.h+1−1
@@ -208,7 +208,7 @@ struct crash_mem_range { · 207 unmodified lines
208struct crash_mem {208struct crash_mem {
209 unsigned int max_nr_ranges;209 unsigned int max_nr_ranges;
210 unsigned int nr_ranges;210 unsigned int nr_ranges;
211 struct crash_mem_range ranges[0];211 struct crash_mem_range ranges[];
212};212};
213 213
214extern int crash_exclude_mem_range(struct crash_mem *mem,214extern int crash_exclude_mem_range(struct crash_mem *mem,
include/linux/kgdb.h+2−3
@@ -276,8 +276,7 @@ struct kgdb_arch { · 275 unmodified lines
276 * the I/O driver.276 * the I/O driver.
277 * @post_exception: Pointer to a function that will do any cleanup work277 * @post_exception: Pointer to a function that will do any cleanup work
278 * for the I/O driver.278 * for the I/O driver.
279 * @is_console: 1 if the end device is a console 0 if the I/O device is279 * @cons: valid if the I/O device is a console; else NULL.
280 * not a console
281 */280 */
282struct kgdb_io {281struct kgdb_io {
283 const char *name;282 const char *name;
@@ -288,7 +287,7 @@ struct kgdb_io { · 4 unmodified lines
288 void (*deinit) (void);287 void (*deinit) (void);
289 void (*pre_exception) (void);288 void (*pre_exception) (void);
290 void (*post_exception) (void);289 void (*post_exception) (void);
291 int is_console;290 struct console *cons;
292};291};
293 292
294extern const struct kgdb_arch arch_kgdb_ops;293extern const struct kgdb_arch arch_kgdb_ops;
include/linux/kprobes.h+5−1
@@ -161,7 +161,7 @@ struct kretprobe_instance { · 160 unmodified lines
161 kprobe_opcode_t *ret_addr;161 kprobe_opcode_t *ret_addr;
162 struct task_struct *task;162 struct task_struct *task;
163 void *fp;163 void *fp;
164 char data[0];164 char data[];
165};165};
166 166
167struct kretprobe_blackpoint {167struct kretprobe_blackpoint {
@@ -350,6 +350,10 @@ static inline struct kprobe_ctlblk *get_kprobe_ctlblk(void) · 182 unmodified lines
350 return this_cpu_ptr(&kprobe_ctlblk);350 return this_cpu_ptr(&kprobe_ctlblk);
351}351}
352 352
353extern struct kprobe kprobe_busy;
354void kprobe_busy_begin(void);
355void kprobe_busy_end(void);
356
353kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset);357kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset);
354int register_kprobe(struct kprobe *p);358int register_kprobe(struct kprobe *p);
355void unregister_kprobe(struct kprobe *p);359void unregister_kprobe(struct kprobe *p);
include/linux/kvm_host.h+1−1
@@ -409,7 +409,7 @@ struct kvm_irq_routing_table { · 408 unmodified lines
409 * Array indexed by gsi. Each entry contains list of irq chips409 * Array indexed by gsi. Each entry contains list of irq chips
410 * the gsi is connected to.410 * the gsi is connected to.
411 */411 */
412 struct hlist_head map[0];412 struct hlist_head map[];
413};413};
414#endif414#endif
415 415
include/linux/libata.h+8−1
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include <linux/acpi.h>22#include <linux/acpi.h>
23#include <linux/cdrom.h>23#include <linux/cdrom.h>
24#include <linux/sched.h>24#include <linux/sched.h>
25#include <linux/async.h>
25 26
26/*27/*
27 * Define if arch has non-standard setup. This is a _PCI_ standard28 * Define if arch has non-standard setup. This is a _PCI_ standard
@@ -609,7 +610,7 @@ struct ata_host { · 581 unmodified lines
609 struct task_struct *eh_owner;610 struct task_struct *eh_owner;
610 611
611 struct ata_port *simplex_claimed; /* channel owning the DMA */612 struct ata_port *simplex_claimed; /* channel owning the DMA */
612 struct ata_port *ports[0];613 struct ata_port *ports[];
613};614};
614 615
615struct ata_queued_cmd {616struct ata_queued_cmd {
@@ -872,6 +873,8 @@ struct ata_port { · 256 unmodified lines
872 struct timer_list fastdrain_timer;873 struct timer_list fastdrain_timer;
873 unsigned long fastdrain_cnt;874 unsigned long fastdrain_cnt;
874 875
876 async_cookie_t cookie;
877
875 int em_message_type;878 int em_message_type;
876 void *private_data;879 void *private_data;
877 880
@@ -1092,7 +1095,11 @@ extern int ata_scsi_ioctl(struct scsi_device *dev, unsigned int cmd, · 214 unmodified lines
1092#define ATA_SCSI_COMPAT_IOCTL /* empty */1095#define ATA_SCSI_COMPAT_IOCTL /* empty */
1093#endif1096#endif
1094extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);1097extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd);
1098#if IS_REACHABLE(CONFIG_ATA)
1095bool ata_scsi_dma_need_drain(struct request *rq);1099bool ata_scsi_dma_need_drain(struct request *rq);
1100#else
1101#define ata_scsi_dma_need_drain NULL
1102#endif
1096extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev,1103extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev,
1097 unsigned int cmd, void __user *arg);1104 unsigned int cmd, void __user *arg);
1098extern bool ata_link_online(struct ata_link *link);1105extern bool ata_link_online(struct ata_link *link);
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
150 size_t buffer_size)150 size_t buffer_size)
151LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)151LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)
152LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)152LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
153LSM_HOOK(int, 0, inode_copy_up_xattr, const char *name)153LSM_HOOK(int, -EOPNOTSUPP, inode_copy_up_xattr, const char *name)
154LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,154LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
155 struct kernfs_node *kn)155 struct kernfs_node *kn)
156LSM_HOOK(int, 0, file_permission, struct file *file, int mask)156LSM_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
360 unsigned long flags)360 unsigned long flags)
361LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key)361LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key)
362LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred,362LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred,
363 unsigned perm)363 enum key_need_perm need_perm)
364LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer)364LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer)
365#endif /* CONFIG_KEYS */365#endif /* CONFIG_KEYS */
366 366
include/linux/mlx5/mlx5_ifc.h+6−4
@@ -4283,7 +4283,8 @@ struct mlx5_ifc_rst2init_qp_out_bits { · 4282 unmodified lines
4283 4283
4284 u8 syndrome[0x20];4284 u8 syndrome[0x20];
4285 4285
4286 u8 reserved_at_40[0x40];4286 u8 reserved_at_40[0x20];
4287 u8 ece[0x20];
4287};4288};
4288 4289
4289struct mlx5_ifc_rst2init_qp_in_bits {4290struct mlx5_ifc_rst2init_qp_in_bits {
@@ -4300,7 +4301,7 @@ struct mlx5_ifc_rst2init_qp_in_bits { · 10 unmodified lines
4300 4301
4301 u8 opt_param_mask[0x20];4302 u8 opt_param_mask[0x20];
4302 4303
4303 u8 reserved_at_a0[0x20];4304 u8 ece[0x20];
4304 4305
4305 struct mlx5_ifc_qpc_bits qpc;4306 struct mlx5_ifc_qpc_bits qpc;
4306 4307
@@ -6619,7 +6620,8 @@ struct mlx5_ifc_init2init_qp_out_bits { · 2312 unmodified lines
6619 6620
6620 u8 syndrome[0x20];6621 u8 syndrome[0x20];
6621 6622
6622 u8 reserved_at_40[0x40];6623 u8 reserved_at_40[0x20];
6624 u8 ece[0x20];
6623};6625};
6624 6626
6625struct mlx5_ifc_init2init_qp_in_bits {6627struct mlx5_ifc_init2init_qp_in_bits {
@@ -6636,7 +6638,7 @@ struct mlx5_ifc_init2init_qp_in_bits { · 10 unmodified lines
6636 6638
6637 u8 opt_param_mask[0x20];6639 u8 opt_param_mask[0x20];
6638 6640
6639 u8 reserved_at_a0[0x20];6641 u8 ece[0x20];
6640 6642
6641 struct mlx5_ifc_qpc_bits qpc;6643 struct mlx5_ifc_qpc_bits qpc;
6642 6644
include/linux/mmzone.h+2−2
@@ -257,8 +257,8 @@ struct lruvec { · 256 unmodified lines
257 */257 */
258 unsigned long anon_cost;258 unsigned long anon_cost;
259 unsigned long file_cost;259 unsigned long file_cost;
260 /* Evictions & activations on the inactive file list */260 /* Non-resident age, driven by LRU movement */
261 atomic_long_t inactive_age;261 atomic_long_t nonresident_age;
262 /* Refaults at the time of last reclaim cycle */262 /* Refaults at the time of last reclaim cycle */
263 unsigned long refaults;263 unsigned long refaults;
264 /* Various lruvec state flags (enum lruvec_flags) */264 /* Various lruvec state flags (enum lruvec_flags) */
include/linux/netdevice.h+1−1
@@ -3157,7 +3157,7 @@ static inline int dev_recursion_level(void) · 3156 unmodified lines
3157 return this_cpu_read(softnet_data.xmit.recursion);3157 return this_cpu_read(softnet_data.xmit.recursion);
3158}3158}
3159 3159
3160#define XMIT_RECURSION_LIMIT 103160#define XMIT_RECURSION_LIMIT 8
3161static inline bool dev_xmit_recursion(void)3161static inline bool dev_xmit_recursion(void)
3162{3162{
3163 return unlikely(__this_cpu_read(softnet_data.xmit.recursion) >3163 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
25int ipt_register_table(struct net *net, const struct xt_table *table,25int ipt_register_table(struct net *net, const struct xt_table *table,
26 const struct ipt_replace *repl,26 const struct ipt_replace *repl,
27 const struct nf_hook_ops *ops, struct xt_table **res);27 const struct nf_hook_ops *ops, struct xt_table **res);
28
29void ipt_unregister_table_pre_exit(struct net *net, struct xt_table *table,
30 const struct nf_hook_ops *ops);
31
32void ipt_unregister_table_exit(struct net *net, struct xt_table *table);
33
28void ipt_unregister_table(struct net *net, struct xt_table *table,34void ipt_unregister_table(struct net *net, struct xt_table *table,
29 const struct nf_hook_ops *ops);35 const struct nf_hook_ops *ops);
30 36
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
29 const struct nf_hook_ops *ops, struct xt_table **res);29 const struct nf_hook_ops *ops, struct xt_table **res);
30void ip6t_unregister_table(struct net *net, struct xt_table *table,30void ip6t_unregister_table(struct net *net, struct xt_table *table,
31 const struct nf_hook_ops *ops);31 const struct nf_hook_ops *ops);
32void ip6t_unregister_table_pre_exit(struct net *net, struct xt_table *table,
33 const struct nf_hook_ops *ops);
34void ip6t_unregister_table_exit(struct net *net, struct xt_table *table);
32extern unsigned int ip6t_do_table(struct sk_buff *skb,35extern unsigned int ip6t_do_table(struct sk_buff *skb,
33 const struct nf_hook_state *state,36 const struct nf_hook_state *state,
34 struct xt_table *table);37 struct xt_table *table);
include/linux/overflow.h+21−4
@@ -304,16 +304,33 @@ static inline __must_check size_t __ab_c_size(size_t a, size_t b, size_t c) · 303 unmodified lines
304 * struct_size() - Calculate size of structure with trailing array.304 * struct_size() - Calculate size of structure with trailing array.
305 * @p: Pointer to the structure.305 * @p: Pointer to the structure.
306 * @member: Name of the array member.306 * @member: Name of the array member.
307 * @n: Number of elements in the array.307 * @count: Number of elements in the array.
308 *308 *
309 * Calculates size of memory needed for structure @p followed by an309 * Calculates size of memory needed for structure @p followed by an
310 * array of @n @member elements.310 * array of @count number of @member elements.
311 *311 *
312 * Return: number of bytes needed or SIZE_MAX on overflow.312 * Return: number of bytes needed or SIZE_MAX on overflow.
313 */313 */
314#define struct_size(p, member, n) \314#define struct_size(p, member, count) \
315 __ab_c_size(n, \315 __ab_c_size(count, \
316 sizeof(*(p)->member) + __must_be_array((p)->member),\316 sizeof(*(p)->member) + __must_be_array((p)->member),\
317 sizeof(*(p)))317 sizeof(*(p)))
318 318
319/**
320 * flex_array_size() - Calculate size of a flexible array member
321 * within an enclosing structure.
322 *
323 * @p: Pointer to the structure.
324 * @member: Name of the flexible array member.
325 * @count: Number of elements in the array.
326 *
327 * Calculates size of a flexible array of @count number of @member
328 * elements, at the end of structure @p.
329 *
330 * Return: number of bytes needed or SIZE_MAX on overflow.
331 */
332#define flex_array_size(p, member, count) \
333 array_size(count, \
334 sizeof(*(p)->member) + __must_be_array((p)->member))
335
319#endif /* __LINUX_OVERFLOW_H */336#endif /* __LINUX_OVERFLOW_H */
include/linux/pci.h+5−6
@@ -2169,12 +2169,11 @@ static inline int pci_pcie_type(const struct pci_dev *dev) · 2168 unmodified lines
2169 */2169 */
2170static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)2170static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev)
2171{2171{
2172 struct pci_dev *bridge = pci_upstream_bridge(dev);2172 while (dev) {
2173 2173 if (pci_is_pcie(dev) &&
2174 while (bridge) {2174 pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT)
2175 if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT)2175 return dev;
2176 return bridge;2176 dev = pci_upstream_bridge(dev);
2177 bridge = pci_upstream_bridge(bridge);
2178 }2177 }
2179 2178
2180 return NULL;2179 return NULL;
include/linux/pgtable.h+7−0
@@ -249,6 +249,13 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, · 248 unmodified lines
249}249}
250#endif250#endif
251 251
252#ifndef __HAVE_ARCH_PTEP_GET
253static inline pte_t ptep_get(pte_t *ptep)
254{
255 return READ_ONCE(*ptep);
256}
257#endif
258
252#ifdef CONFIG_TRANSPARENT_HUGEPAGE259#ifdef CONFIG_TRANSPARENT_HUGEPAGE
253#ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR260#ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR
254static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm,261static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm,
include/linux/phy.h+1−0
@@ -1416,6 +1416,7 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev, · 1415 unmodified lines
1416int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);1416int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
1417int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);1417int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd);
1418int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd);1418int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd);
1419int phy_disable_interrupts(struct phy_device *phydev);
1419void phy_request_interrupt(struct phy_device *phydev);1420void phy_request_interrupt(struct phy_device *phydev);
1420void phy_free_interrupt(struct phy_device *phydev);1421void phy_free_interrupt(struct phy_device *phydev);
1421void phy_print_status(struct phy_device *phydev);1422void phy_print_status(struct phy_device *phydev);
include/linux/psp-sev.h+1−1
@@ -597,7 +597,7 @@ int sev_guest_df_flush(int *error); · 596 unmodified lines
597 */597 */
598int sev_guest_decommission(struct sev_data_decommission *data, int *error);598int sev_guest_decommission(struct sev_data_decommission *data, int *error);
599 599
600void *psp_copy_user_blob(u64 __user uaddr, u32 len);600void *psp_copy_user_blob(u64 uaddr, u32 len);
601 601
602#else /* !CONFIG_CRYPTO_DEV_SP_PSP */602#else /* !CONFIG_CRYPTO_DEV_SP_PSP */
603 603
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
207 207
208static inline u16 qed_chain_get_elem_left(struct qed_chain *p_chain)208static inline u16 qed_chain_get_elem_left(struct qed_chain *p_chain)
209{209{
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;
210 u16 used;213 u16 used;
211 214
212 used = (u16) (((u32)0x10000 +215 if (prod < cons)
213 (u32)p_chain->u.chain16.prod_idx) -216 prod += (u32)U16_MAX + 1;
214 (u32)p_chain->u.chain16.cons_idx);217
218 used = (u16)(prod - cons);
215 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)219 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)
216 used -= p_chain->u.chain16.prod_idx / p_chain->elem_per_page -220 used -= prod / elem_per_page - cons / elem_per_page;
217 p_chain->u.chain16.cons_idx / p_chain->elem_per_page;
218 221
219 return (u16)(p_chain->capacity - used);222 return (u16)(p_chain->capacity - used);
220}223}
221 224
222static inline u32 qed_chain_get_elem_left_u32(struct qed_chain *p_chain)225static inline u32 qed_chain_get_elem_left_u32(struct qed_chain *p_chain)
223{226{
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;
224 u32 used;230 u32 used;
225 231
226 used = (u32) (((u64)0x100000000ULL +232 if (prod < cons)
227 (u64)p_chain->u.chain32.prod_idx) -233 prod += (u64)U32_MAX + 1;
228 (u64)p_chain->u.chain32.cons_idx);234
235 used = (u32)(prod - cons);
229 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)236 if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR)
230 used -= p_chain->u.chain32.prod_idx / p_chain->elem_per_page -237 used -= (u32)(prod / elem_per_page - cons / elem_per_page);
231 p_chain->u.chain32.cons_idx / p_chain->elem_per_page;
232 238
233 return p_chain->capacity - used;239 return p_chain->capacity - used;
234}240}
include/linux/sched.h+1−6
@@ -114,10 +114,6 @@ struct task_group; · 113 unmodified lines
114 114
115#define task_is_stopped_or_traced(task) ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)115#define task_is_stopped_or_traced(task) ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
116 116
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
121#ifdef CONFIG_DEBUG_ATOMIC_SLEEP117#ifdef CONFIG_DEBUG_ATOMIC_SLEEP
122 118
123/*119/*
@@ -654,9 +650,8 @@ struct task_struct { · 530 unmodified lines
654 unsigned int ptrace;650 unsigned int ptrace;
655 651
656#ifdef CONFIG_SMP652#ifdef CONFIG_SMP
657 struct llist_node wake_entry;
658 unsigned int wake_entry_type;
659 int on_cpu;653 int on_cpu;
654 struct __call_single_node wake_entry;
660#ifdef CONFIG_THREAD_INFO_IN_TASK655#ifdef CONFIG_THREAD_INFO_IN_TASK
661 /* Current CPU: */656 /* Current CPU: */
662 unsigned int cpu;657 unsigned int cpu;
include/linux/sched/jobctl.h+3−1
@@ -19,6 +19,7 @@ struct task_struct; · 18 unmodified lines
19#define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */19#define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */
20#define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */20#define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */
21#define JOBCTL_TRAP_FREEZE_BIT 23 /* trap for cgroup freezer */21#define JOBCTL_TRAP_FREEZE_BIT 23 /* trap for cgroup freezer */
22#define JOBCTL_TASK_WORK_BIT 24 /* set by TWA_SIGNAL */
22 23
23#define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)24#define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT)
24#define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)25#define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT)
@@ -28,9 +29,10 @@ struct task_struct; · 3 unmodified lines
28#define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)29#define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT)
29#define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)30#define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT)
30#define JOBCTL_TRAP_FREEZE (1UL << JOBCTL_TRAP_FREEZE_BIT)31#define JOBCTL_TRAP_FREEZE (1UL << JOBCTL_TRAP_FREEZE_BIT)
32#define JOBCTL_TASK_WORK (1UL << JOBCTL_TASK_WORK_BIT)
31 33
32#define JOBCTL_TRAP_MASK (JOBCTL_TRAP_STOP | JOBCTL_TRAP_NOTIFY)34#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)
34 36
35extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);37extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask);
36extern void task_clear_jobctl_trapping(struct task_struct *task);38extern void task_clear_jobctl_trapping(struct task_struct *task);
include/linux/sctp.h+18−18
@@ -221,7 +221,7 @@ struct sctp_datahdr { · 220 unmodified lines
221 __be16 stream;221 __be16 stream;
222 __be16 ssn;222 __be16 ssn;
223 __u32 ppid;223 __u32 ppid;
224 __u8 payload[0];224 __u8 payload[];
225};225};
226 226
227struct sctp_data_chunk {227struct sctp_data_chunk {
@@ -269,7 +269,7 @@ struct sctp_inithdr { · 41 unmodified lines
269 __be16 num_outbound_streams;269 __be16 num_outbound_streams;
270 __be16 num_inbound_streams;270 __be16 num_inbound_streams;
271 __be32 initial_tsn;271 __be32 initial_tsn;
272 __u8 params[0];272 __u8 params[];
273};273};
274 274
275struct sctp_init_chunk {275struct sctp_init_chunk {
@@ -299,13 +299,13 @@ struct sctp_cookie_preserve_param { · 23 unmodified lines
299/* Section 3.3.2.1 Host Name Address (11) */299/* Section 3.3.2.1 Host Name Address (11) */
300struct sctp_hostname_param {300struct sctp_hostname_param {
301 struct sctp_paramhdr param_hdr;301 struct sctp_paramhdr param_hdr;
302 uint8_t hostname[0];302 uint8_t hostname[];
303};303};
304 304
305/* Section 3.3.2.1 Supported Address Types (12) */305/* Section 3.3.2.1 Supported Address Types (12) */
306struct sctp_supported_addrs_param {306struct sctp_supported_addrs_param {
307 struct sctp_paramhdr param_hdr;307 struct sctp_paramhdr param_hdr;
308 __be16 types[0];308 __be16 types[];
309};309};
310 310
311/* ADDIP Section 3.2.6 Adaptation Layer Indication */311/* ADDIP Section 3.2.6 Adaptation Layer Indication */
@@ -317,25 +317,25 @@ struct sctp_adaptation_ind_param { · 5 unmodified lines
317/* ADDIP Section 4.2.7 Supported Extensions Parameter */317/* ADDIP Section 4.2.7 Supported Extensions Parameter */
318struct sctp_supported_ext_param {318struct sctp_supported_ext_param {
319 struct sctp_paramhdr param_hdr;319 struct sctp_paramhdr param_hdr;
320 __u8 chunks[0];320 __u8 chunks[];
321};321};
322 322
323/* AUTH Section 3.1 Random */323/* AUTH Section 3.1 Random */
324struct sctp_random_param {324struct sctp_random_param {
325 struct sctp_paramhdr param_hdr;325 struct sctp_paramhdr param_hdr;
326 __u8 random_val[0];326 __u8 random_val[];
327};327};
328 328
329/* AUTH Section 3.2 Chunk List */329/* AUTH Section 3.2 Chunk List */
330struct sctp_chunks_param {330struct sctp_chunks_param {
331 struct sctp_paramhdr param_hdr;331 struct sctp_paramhdr param_hdr;
332 __u8 chunks[0];332 __u8 chunks[];
333};333};
334 334
335/* AUTH Section 3.3 HMAC Algorithm */335/* AUTH Section 3.3 HMAC Algorithm */
336struct sctp_hmac_algo_param {336struct sctp_hmac_algo_param {
337 struct sctp_paramhdr param_hdr;337 struct sctp_paramhdr param_hdr;
338 __be16 hmac_ids[0];338 __be16 hmac_ids[];
339};339};
340 340
341/* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2):341/* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2):
@@ -350,7 +350,7 @@ struct sctp_initack_chunk { · 8 unmodified lines
350/* Section 3.3.3.1 State Cookie (7) */350/* Section 3.3.3.1 State Cookie (7) */
351struct sctp_cookie_param {351struct sctp_cookie_param {
352 struct sctp_paramhdr p;352 struct sctp_paramhdr p;
353 __u8 body[0];353 __u8 body[];
354};354};
355 355
356/* Section 3.3.3.1 Unrecognized Parameters (8) */356/* Section 3.3.3.1 Unrecognized Parameters (8) */
@@ -384,7 +384,7 @@ struct sctp_sackhdr { · 27 unmodified lines
384 __be32 a_rwnd;384 __be32 a_rwnd;
385 __be16 num_gap_ack_blocks;385 __be16 num_gap_ack_blocks;
386 __be16 num_dup_tsns;386 __be16 num_dup_tsns;
387 union sctp_sack_variable variable[0];387 union sctp_sack_variable variable[];
388};388};
389 389
390struct sctp_sack_chunk {390struct sctp_sack_chunk {
@@ -436,7 +436,7 @@ struct sctp_shutdown_chunk { · 45 unmodified lines
436struct sctp_errhdr {436struct sctp_errhdr {
437 __be16 cause;437 __be16 cause;
438 __be16 length;438 __be16 length;
439 __u8 variable[0];439 __u8 variable[];
440};440};
441 441
442struct sctp_operr_chunk {442struct sctp_operr_chunk {
@@ -594,7 +594,7 @@ struct sctp_fwdtsn_skip { · 151 unmodified lines
594 594
595struct sctp_fwdtsn_hdr {595struct sctp_fwdtsn_hdr {
596 __be32 new_cum_tsn;596 __be32 new_cum_tsn;
597 struct sctp_fwdtsn_skip skip[0];597 struct sctp_fwdtsn_skip skip[];
598};598};
599 599
600struct sctp_fwdtsn_chunk {600struct sctp_fwdtsn_chunk {
@@ -611,7 +611,7 @@ struct sctp_ifwdtsn_skip { · 10 unmodified lines
611 611
612struct sctp_ifwdtsn_hdr {612struct sctp_ifwdtsn_hdr {
613 __be32 new_cum_tsn;613 __be32 new_cum_tsn;
614 struct sctp_ifwdtsn_skip skip[0];614 struct sctp_ifwdtsn_skip skip[];
615};615};
616 616
617struct sctp_ifwdtsn_chunk {617struct sctp_ifwdtsn_chunk {
@@ -658,7 +658,7 @@ struct sctp_addip_param { · 40 unmodified lines
658 658
659struct sctp_addiphdr {659struct sctp_addiphdr {
660 __be32 serial;660 __be32 serial;
661 __u8 params[0];661 __u8 params[];
662};662};
663 663
664struct sctp_addip_chunk {664struct sctp_addip_chunk {
@@ -718,7 +718,7 @@ struct sctp_addip_chunk { · 53 unmodified lines
718struct sctp_authhdr {718struct sctp_authhdr {
719 __be16 shkey_id;719 __be16 shkey_id;
720 __be16 hmac_id;720 __be16 hmac_id;
721 __u8 hmac[0];721 __u8 hmac[];
722};722};
723 723
724struct sctp_auth_chunk {724struct sctp_auth_chunk {
@@ -733,7 +733,7 @@ struct sctp_infox { · 8 unmodified lines
733 733
734struct sctp_reconf_chunk {734struct sctp_reconf_chunk {
735 struct sctp_chunkhdr chunk_hdr;735 struct sctp_chunkhdr chunk_hdr;
736 __u8 params[0];736 __u8 params[];
737};737};
738 738
739struct sctp_strreset_outreq {739struct sctp_strreset_outreq {
@@ -741,13 +741,13 @@ struct sctp_strreset_outreq { · 1 unmodified line
741 __be32 request_seq;741 __be32 request_seq;
742 __be32 response_seq;742 __be32 response_seq;
743 __be32 send_reset_at_tsn;743 __be32 send_reset_at_tsn;
744 __be16 list_of_streams[0];744 __be16 list_of_streams[];
745};745};
746 746
747struct sctp_strreset_inreq {747struct sctp_strreset_inreq {
748 struct sctp_paramhdr param_hdr;748 struct sctp_paramhdr param_hdr;
749 __be32 request_seq;749 __be32 request_seq;
750 __be16 list_of_streams[0];750 __be16 list_of_streams[];
751};751};
752 752
753struct sctp_strreset_tsnreq {753struct sctp_strreset_tsnreq {
include/linux/smp.h+8−15
@@ -12,29 +12,22 @@ · 11 unmodified lines
12#include <linux/list.h>12#include <linux/list.h>
13#include <linux/cpumask.h>13#include <linux/cpumask.h>
14#include <linux/init.h>14#include <linux/init.h>
15#include <linux/llist.h>15#include <linux/smp_types.h>
16 16
17typedef void (*smp_call_func_t)(void *info);17typedef void (*smp_call_func_t)(void *info);
18typedef bool (*smp_cond_func_t)(int cpu, void *info);18typedef bool (*smp_cond_func_t)(int cpu, void *info);
19 19
20enum {
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
32/*20/*
33 * structure shares (partial) layout with struct irq_work21 * structure shares (partial) layout with struct irq_work
34 */22 */
35struct __call_single_data {23struct __call_single_data {
36 struct llist_node llist;24 union {
37 unsigned int flags;25 struct __call_single_node node;
26 struct {
27 struct llist_node llist;
28 unsigned int flags;
29 };
30 };
38 smp_call_func_t func;31 smp_call_func_t func;
39 void *info;32 void *info;
40};33};
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
7enum {
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
58struct __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
313};313};
314 314
315/* linux/mm/workingset.c */315/* linux/mm/workingset.c */
316void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages);
316void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg);317void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg);
317void workingset_refault(struct page *page, void *shadow);318void workingset_refault(struct page *page, void *shadow);
318void workingset_activation(struct page *page);319void 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
1360 1360
1361extern long do_sys_ftruncate(unsigned int fd, loff_t length, int small);1361extern long do_sys_ftruncate(unsigned int fd, loff_t length, int small);
1362 1362
1363static inline long ksys_ftruncate(unsigned int fd, unsigned long length)1363static inline long ksys_ftruncate(unsigned int fd, loff_t length)
1364{1364{
1365 return do_sys_ftruncate(fd, length, 1);1365 return do_sys_ftruncate(fd, length, 1);
1366}1366}
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
13 twork->func = func;13 twork->func = func;
14}14}
15 15
16int task_work_add(struct task_struct *task, struct callback_head *twork, bool);16#define TWA_RESUME 1
17#define TWA_SIGNAL 2
18int task_work_add(struct task_struct *task, struct callback_head *twork, int);
19
17struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);20struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t);
18void task_work_run(void);21void task_work_run(void);
19 22
include/linux/tifm.h+1−1
@@ -124,7 +124,7 @@ struct tifm_adapter { · 123 unmodified lines
124 int (*has_ms_pif)(struct tifm_adapter *fm,124 int (*has_ms_pif)(struct tifm_adapter *fm,
125 struct tifm_dev *sock);125 struct tifm_dev *sock);
126 126
127 struct tifm_dev *sockets[0];127 struct tifm_dev *sockets[];
128};128};
129 129
130struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,130struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets,
include/linux/timekeeping.h+7−7
@@ -222,9 +222,9 @@ extern bool timekeeping_rtc_skipresume(void); · 221 unmodified lines
222 222
223extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta);223extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta);
224 224
225/*225/**
226 * struct system_time_snapshot - simultaneous raw/real time capture with226 * struct system_time_snapshot - simultaneous raw/real time capture with
227 * counter value227 * counter value
228 * @cycles: Clocksource counter value to produce the system times228 * @cycles: Clocksource counter value to produce the system times
229 * @real: Realtime system time229 * @real: Realtime system time
230 * @raw: Monotonic raw system time230 * @raw: Monotonic raw system time
@@ -239,9 +239,9 @@ struct system_time_snapshot { · 8 unmodified lines
239 u8 cs_was_changed_seq;239 u8 cs_was_changed_seq;
240};240};
241 241
242/*242/**
243 * struct system_device_crosststamp - system/device cross-timestamp243 * struct system_device_crosststamp - system/device cross-timestamp
244 * (syncronized capture)244 * (synchronized capture)
245 * @device: Device time245 * @device: Device time
246 * @sys_realtime: Realtime simultaneous with device time246 * @sys_realtime: Realtime simultaneous with device time
247 * @sys_monoraw: Monotonic raw simultaneous with device time247 * @sys_monoraw: Monotonic raw simultaneous with device time
@@ -252,12 +252,12 @@ struct system_device_crosststamp { · 4 unmodified lines
252 ktime_t sys_monoraw;252 ktime_t sys_monoraw;
253};253};
254 254
255/*255/**
256 * struct system_counterval_t - system counter value with the pointer to the256 * struct system_counterval_t - system counter value with the pointer to the
257 * corresponding clocksource257 * corresponding clocksource
258 * @cycles: System counter value258 * @cycles: System counter value
259 * @cs: Clocksource corresponding to system counter value. Used by259 * @cs: Clocksource corresponding to system counter value. Used by
260 * timekeeping code to verify comparibility of two cycle values260 * timekeeping code to verify comparibility of two cycle values
261 */261 */
262struct system_counterval_t {262struct system_counterval_t {
263 u64 cycles;263 u64 cycles;
include/linux/tpm_eventlog.h+13−1
@@ -81,6 +81,8 @@ struct tcg_efi_specid_event_algs { · 80 unmodified lines
81 u16 digest_size;81 u16 digest_size;
82} __packed;82} __packed;
83 83
84#define TCG_SPECID_SIG "Spec ID Event03"
85
84struct tcg_efi_specid_event_head {86struct tcg_efi_specid_event_head {
85 u8 signature[16];87 u8 signature[16];
86 u32 platform_class;88 u32 platform_class;
@@ -171,6 +173,7 @@ static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, · 84 unmodified lines
171 int i;173 int i;
172 int j;174 int j;
173 u32 count, event_type;175 u32 count, event_type;
176 const u8 zero_digest[sizeof(event_header->digest)] = {0};
174 177
175 marker = event;178 marker = event;
176 marker_start = marker;179 marker_start = marker;
@@ -198,10 +201,19 @@ static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, · 21 unmodified lines
198 count = READ_ONCE(event->count);201 count = READ_ONCE(event->count);
199 event_type = READ_ONCE(event->event_type);202 event_type = READ_ONCE(event->event_type);
200 203
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
201 efispecid = (struct tcg_efi_specid_event_head *)event_header->event;212 efispecid = (struct tcg_efi_specid_event_head *)event_header->event;
202 213
203 /* Check if event is malformed. */214 /* 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) {
205 size = 0;217 size = 0;
206 goto out;218 goto out;
207 }219 }
include/linux/uaccess.h+13−10
@@ -301,13 +301,14 @@ copy_struct_from_user(void *dst, size_t ksize, const void __user *src, · 300 unmodified lines
301 return 0;301 return 0;
302}302}
303 303
304bool probe_kernel_read_allowed(const void *unsafe_src, size_t size);304bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size);
305 305
306extern long probe_kernel_read(void *dst, const void *src, size_t size);306long copy_from_kernel_nofault(void *dst, const void *src, size_t size);
307extern long probe_user_read(void *dst, const void __user *src, size_t size);307long notrace copy_to_kernel_nofault(void *dst, const void *src, size_t size);
308 308
309extern long notrace probe_kernel_write(void *dst, const void *src, size_t size);309long copy_from_user_nofault(void *dst, const void __user *src, size_t size);
310extern long notrace probe_user_write(void __user *dst, const void *src, size_t size);310long notrace copy_to_user_nofault(void __user *dst, const void *src,
311 size_t size);
311 312
312long strncpy_from_kernel_nofault(char *dst, const void *unsafe_addr,313long strncpy_from_kernel_nofault(char *dst, const void *unsafe_addr,
313 long count);314 long count);
@@ -317,14 +318,16 @@ long strncpy_from_user_nofault(char *dst, const void __user *unsafe_addr, · 3 unmodified lines
317long strnlen_user_nofault(const void __user *unsafe_addr, long count);318long strnlen_user_nofault(const void __user *unsafe_addr, long count);
318 319
319/**320/**
320 * probe_kernel_address(): safely attempt to read from a location321 * get_kernel_nofault(): safely attempt to read from a location
321 * @addr: address to read from322 * @val: read into this variable
322 * @retval: read into this variable323 * @ptr: address to read from
323 *324 *
324 * Returns 0 on success, or -EFAULT.325 * Returns 0 on success, or -EFAULT.
325 */326 */
326#define probe_kernel_address(addr, retval) \327#define get_kernel_nofault(val, ptr) ({ \
327 probe_kernel_read(&retval, addr, sizeof(retval))328 const typeof(val) *__gk_ptr = (ptr); \
329 copy_from_kernel_nofault(&(val), __gk_ptr, sizeof(val));\
330})
328 331
329#ifndef user_access_begin332#ifndef user_access_begin
330#define user_access_begin(ptr,len) access_ok(ptr, len)333#define user_access_begin(ptr,len) access_ok(ptr, len)
include/linux/vmalloc.h+0−1
@@ -106,7 +106,6 @@ extern void *vzalloc(unsigned long size); · 105 unmodified lines
106extern void *vmalloc_user(unsigned long size);106extern void *vmalloc_user(unsigned long size);
107extern void *vmalloc_node(unsigned long size, int node);107extern void *vmalloc_node(unsigned long size, int node);
108extern void *vzalloc_node(unsigned long size, int node);108extern void *vzalloc_node(unsigned long size, int node);
109extern void *vmalloc_exec(unsigned long size);
110extern void *vmalloc_32(unsigned long size);109extern void *vmalloc_32(unsigned long size);
111extern void *vmalloc_32_user(unsigned long size);110extern void *vmalloc_32_user(unsigned long size);
112extern void *__vmalloc(unsigned long size, gfp_t gfp_mask);111extern void *__vmalloc(unsigned long size, gfp_t gfp_mask);