Showing the changes to include/linux (50 of 1250 files). Show all
Unified · Split
| @@ -77,6 +77,9 @@ · 76 unmodified lines | ||
| 77 | 77 | |
| 78 | 78 | #endif /* cmpxchg64_relaxed */ |
| 79 | 79 | |
| 80 | +#define arch_atomic_read atomic_read | |
| 81 | +#define arch_atomic_read_acquire atomic_read_acquire | |
| 82 | + | |
| 80 | 83 | #ifndef atomic_read_acquire |
| 81 | 84 | static __always_inline int |
| 82 | 85 | atomic_read_acquire(const atomic_t *v) |
| @@ -86,6 +89,9 @@ atomic_read_acquire(const atomic_t *v) · 3 unmodified lines | ||
| 86 | 89 | #define atomic_read_acquire atomic_read_acquire |
| 87 | 90 | #endif |
| 88 | 91 | |
| 92 | +#define arch_atomic_set atomic_set | |
| 93 | +#define arch_atomic_set_release atomic_set_release | |
| 94 | + | |
| 89 | 95 | #ifndef atomic_set_release |
| 90 | 96 | static __always_inline void |
| 91 | 97 | atomic_set_release(atomic_t *v, int i) |
| @@ -95,6 +101,13 @@ atomic_set_release(atomic_t *v, int i) · 3 unmodified lines | ||
| 95 | 101 | #define atomic_set_release atomic_set_release |
| 96 | 102 | #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 | 111 | #ifndef atomic_add_return_relaxed |
| 99 | 112 | #define atomic_add_return_acquire atomic_add_return |
| 100 | 113 | #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 | 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 | 158 | #ifndef atomic_fetch_add_relaxed |
| 141 | 159 | #define atomic_fetch_add_acquire atomic_fetch_add |
| 142 | 160 | #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 | 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 | 207 | #ifndef atomic_sub_return_relaxed |
| 183 | 208 | #define atomic_sub_return_acquire atomic_sub_return |
| 184 | 209 | #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 | 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 | 254 | #ifndef atomic_fetch_sub_relaxed |
| 225 | 255 | #define atomic_fetch_sub_acquire atomic_fetch_sub |
| 226 | 256 | #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 | 294 | #endif /* atomic_fetch_sub_relaxed */ |
| 265 | 295 | |
| 296 | +#define arch_atomic_inc atomic_inc | |
| 297 | + | |
| 266 | 298 | #ifndef atomic_inc |
| 267 | 299 | static __always_inline void |
| 268 | 300 | atomic_inc(atomic_t *v) |
| @@ -272,6 +304,11 @@ atomic_inc(atomic_t *v) · 3 unmodified lines | ||
| 272 | 304 | #define atomic_inc atomic_inc |
| 273 | 305 | #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 | 312 | #ifndef atomic_inc_return_relaxed |
| 276 | 313 | #ifdef atomic_inc_return |
| 277 | 314 | #define atomic_inc_return_acquire atomic_inc_return |
| @@ -353,6 +390,11 @@ atomic_inc_return(atomic_t *v) · 75 unmodified lines | ||
| 353 | 390 | |
| 354 | 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 | 398 | #ifndef atomic_fetch_inc_relaxed |
| 357 | 399 | #ifdef atomic_fetch_inc |
| 358 | 400 | #define atomic_fetch_inc_acquire atomic_fetch_inc |
| @@ -434,6 +476,8 @@ atomic_fetch_inc(atomic_t *v) · 75 unmodified lines | ||
| 434 | 476 | |
| 435 | 477 | #endif /* atomic_fetch_inc_relaxed */ |
| 436 | 478 | |
| 479 | +#define arch_atomic_dec atomic_dec | |
| 480 | + | |
| 437 | 481 | #ifndef atomic_dec |
| 438 | 482 | static __always_inline void |
| 439 | 483 | atomic_dec(atomic_t *v) |
| @@ -443,6 +487,11 @@ atomic_dec(atomic_t *v) · 3 unmodified lines | ||
| 443 | 487 | #define atomic_dec atomic_dec |
| 444 | 488 | #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 | 495 | #ifndef atomic_dec_return_relaxed |
| 447 | 496 | #ifdef atomic_dec_return |
| 448 | 497 | #define atomic_dec_return_acquire atomic_dec_return |
| @@ -524,6 +573,11 @@ atomic_dec_return(atomic_t *v) · 75 unmodified lines | ||
| 524 | 573 | |
| 525 | 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 | 581 | #ifndef atomic_fetch_dec_relaxed |
| 528 | 582 | #ifdef atomic_fetch_dec |
| 529 | 583 | #define atomic_fetch_dec_acquire atomic_fetch_dec |
| @@ -605,6 +659,13 @@ atomic_fetch_dec(atomic_t *v) · 75 unmodified lines | ||
| 605 | 659 | |
| 606 | 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 | 669 | #ifndef atomic_fetch_and_relaxed |
| 609 | 670 | #define atomic_fetch_and_acquire atomic_fetch_and |
| 610 | 671 | #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 | 709 | #endif /* atomic_fetch_and_relaxed */ |
| 649 | 710 | |
| 711 | +#define arch_atomic_andnot atomic_andnot | |
| 712 | + | |
| 650 | 713 | #ifndef atomic_andnot |
| 651 | 714 | static __always_inline void |
| 652 | 715 | atomic_andnot(int i, atomic_t *v) |
| @@ -656,6 +719,11 @@ atomic_andnot(int i, atomic_t *v) · 3 unmodified lines | ||
| 656 | 719 | #define atomic_andnot atomic_andnot |
| 657 | 720 | #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 | 727 | #ifndef atomic_fetch_andnot_relaxed |
| 660 | 728 | #ifdef atomic_fetch_andnot |
| 661 | 729 | #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 | 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 | 815 | #ifndef atomic_fetch_or_relaxed |
| 741 | 816 | #define atomic_fetch_or_acquire atomic_fetch_or |
| 742 | 817 | #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 | 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 | 864 | #ifndef atomic_fetch_xor_relaxed |
| 783 | 865 | #define atomic_fetch_xor_acquire atomic_fetch_xor |
| 784 | 866 | #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 | 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 | 911 | #ifndef atomic_xchg_relaxed |
| 825 | 912 | #define atomic_xchg_acquire atomic_xchg |
| 826 | 913 | #define atomic_xchg_release atomic_xchg |
| @@ -863,6 +950,11 @@ atomic_xchg(atomic_t *v, int i) · 36 unmodified lines | ||
| 863 | 950 | |
| 864 | 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 | 958 | #ifndef atomic_cmpxchg_relaxed |
| 867 | 959 | #define atomic_cmpxchg_acquire atomic_cmpxchg |
| 868 | 960 | #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 | 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 | 1005 | #ifndef atomic_try_cmpxchg_relaxed |
| 909 | 1006 | #ifdef atomic_try_cmpxchg |
| 910 | 1007 | #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 | 1100 | #endif /* atomic_try_cmpxchg_relaxed */ |
| 1004 | 1101 | |
| 1102 | +#define arch_atomic_sub_and_test atomic_sub_and_test | |
| 1103 | + | |
| 1005 | 1104 | #ifndef atomic_sub_and_test |
| 1006 | 1105 | /** |
| 1007 | 1106 | * 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 | 1119 | #define atomic_sub_and_test atomic_sub_and_test |
| 1021 | 1120 | #endif |
| 1022 | 1121 | |
| 1122 | +#define arch_atomic_dec_and_test atomic_dec_and_test | |
| 1123 | + | |
| 1023 | 1124 | #ifndef atomic_dec_and_test |
| 1024 | 1125 | /** |
| 1025 | 1126 | * atomic_dec_and_test - decrement and test |
| @@ -1037,6 +1138,8 @@ atomic_dec_and_test(atomic_t *v) · 11 unmodified lines | ||
| 1037 | 1138 | #define atomic_dec_and_test atomic_dec_and_test |
| 1038 | 1139 | #endif |
| 1039 | 1140 | |
| 1141 | +#define arch_atomic_inc_and_test atomic_inc_and_test | |
| 1142 | + | |
| 1040 | 1143 | #ifndef atomic_inc_and_test |
| 1041 | 1144 | /** |
| 1042 | 1145 | * atomic_inc_and_test - increment and test |
| @@ -1054,6 +1157,8 @@ atomic_inc_and_test(atomic_t *v) · 11 unmodified lines | ||
| 1054 | 1157 | #define atomic_inc_and_test atomic_inc_and_test |
| 1055 | 1158 | #endif |
| 1056 | 1159 | |
| 1160 | +#define arch_atomic_add_negative atomic_add_negative | |
| 1161 | + | |
| 1057 | 1162 | #ifndef atomic_add_negative |
| 1058 | 1163 | /** |
| 1059 | 1164 | * atomic_add_negative - add and test if negative |
| @@ -1072,6 +1177,8 @@ atomic_add_negative(int i, atomic_t *v) · 12 unmodified lines | ||
| 1072 | 1177 | #define atomic_add_negative atomic_add_negative |
| 1073 | 1178 | #endif |
| 1074 | 1179 | |
| 1180 | +#define arch_atomic_fetch_add_unless atomic_fetch_add_unless | |
| 1181 | + | |
| 1075 | 1182 | #ifndef atomic_fetch_add_unless |
| 1076 | 1183 | /** |
| 1077 | 1184 | * 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 | 1204 | #define atomic_fetch_add_unless atomic_fetch_add_unless |
| 1098 | 1205 | #endif |
| 1099 | 1206 | |
| 1207 | +#define arch_atomic_add_unless atomic_add_unless | |
| 1208 | + | |
| 1100 | 1209 | #ifndef atomic_add_unless |
| 1101 | 1210 | /** |
| 1102 | 1211 | * 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 | 1224 | #define atomic_add_unless atomic_add_unless |
| 1116 | 1225 | #endif |
| 1117 | 1226 | |
| 1227 | +#define arch_atomic_inc_not_zero atomic_inc_not_zero | |
| 1228 | + | |
| 1118 | 1229 | #ifndef atomic_inc_not_zero |
| 1119 | 1230 | /** |
| 1120 | 1231 | * 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 | 1242 | #define atomic_inc_not_zero atomic_inc_not_zero |
| 1132 | 1243 | #endif |
| 1133 | 1244 | |
| 1245 | +#define arch_atomic_inc_unless_negative atomic_inc_unless_negative | |
| 1246 | + | |
| 1134 | 1247 | #ifndef atomic_inc_unless_negative |
| 1135 | 1248 | static __always_inline bool |
| 1136 | 1249 | atomic_inc_unless_negative(atomic_t *v) |
| @@ -1147,6 +1260,8 @@ atomic_inc_unless_negative(atomic_t *v) · 10 unmodified lines | ||
| 1147 | 1260 | #define atomic_inc_unless_negative atomic_inc_unless_negative |
| 1148 | 1261 | #endif |
| 1149 | 1262 | |
| 1263 | +#define arch_atomic_dec_unless_positive atomic_dec_unless_positive | |
| 1264 | + | |
| 1150 | 1265 | #ifndef atomic_dec_unless_positive |
| 1151 | 1266 | static __always_inline bool |
| 1152 | 1267 | atomic_dec_unless_positive(atomic_t *v) |
| @@ -1163,6 +1278,8 @@ atomic_dec_unless_positive(atomic_t *v) · 10 unmodified lines | ||
| 1163 | 1278 | #define atomic_dec_unless_positive atomic_dec_unless_positive |
| 1164 | 1279 | #endif |
| 1165 | 1280 | |
| 1281 | +#define arch_atomic_dec_if_positive atomic_dec_if_positive | |
| 1282 | + | |
| 1166 | 1283 | #ifndef atomic_dec_if_positive |
| 1167 | 1284 | static __always_inline int |
| 1168 | 1285 | atomic_dec_if_positive(atomic_t *v) |
| @@ -1184,6 +1301,9 @@ atomic_dec_if_positive(atomic_t *v) · 15 unmodified lines | ||
| 1184 | 1301 | #include <asm-generic/atomic64.h> |
| 1185 | 1302 | #endif |
| 1186 | 1303 | |
| 1304 | +#define arch_atomic64_read atomic64_read | |
| 1305 | +#define arch_atomic64_read_acquire atomic64_read_acquire | |
| 1306 | + | |
| 1187 | 1307 | #ifndef atomic64_read_acquire |
| 1188 | 1308 | static __always_inline s64 |
| 1189 | 1309 | atomic64_read_acquire(const atomic64_t *v) |
| @@ -1193,6 +1313,9 @@ atomic64_read_acquire(const atomic64_t *v) · 3 unmodified lines | ||
| 1193 | 1313 | #define atomic64_read_acquire atomic64_read_acquire |
| 1194 | 1314 | #endif |
| 1195 | 1315 | |
| 1316 | +#define arch_atomic64_set atomic64_set | |
| 1317 | +#define arch_atomic64_set_release atomic64_set_release | |
| 1318 | + | |
| 1196 | 1319 | #ifndef atomic64_set_release |
| 1197 | 1320 | static __always_inline void |
| 1198 | 1321 | atomic64_set_release(atomic64_t *v, s64 i) |
| @@ -1202,6 +1325,13 @@ atomic64_set_release(atomic64_t *v, s64 i) · 3 unmodified lines | ||
| 1202 | 1325 | #define atomic64_set_release atomic64_set_release |
| 1203 | 1326 | #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 | 1335 | #ifndef atomic64_add_return_relaxed |
| 1206 | 1336 | #define atomic64_add_return_acquire atomic64_add_return |
| 1207 | 1337 | #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 | 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 | 1382 | #ifndef atomic64_fetch_add_relaxed |
| 1248 | 1383 | #define atomic64_fetch_add_acquire atomic64_fetch_add |
| 1249 | 1384 | #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 | 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 | 1431 | #ifndef atomic64_sub_return_relaxed |
| 1290 | 1432 | #define atomic64_sub_return_acquire atomic64_sub_return |
| 1291 | 1433 | #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 | 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 | 1478 | #ifndef atomic64_fetch_sub_relaxed |
| 1332 | 1479 | #define atomic64_fetch_sub_acquire atomic64_fetch_sub |
| 1333 | 1480 | #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 | 1518 | #endif /* atomic64_fetch_sub_relaxed */ |
| 1372 | 1519 | |
| 1520 | +#define arch_atomic64_inc atomic64_inc | |
| 1521 | + | |
| 1373 | 1522 | #ifndef atomic64_inc |
| 1374 | 1523 | static __always_inline void |
| 1375 | 1524 | atomic64_inc(atomic64_t *v) |
| @@ -1379,6 +1528,11 @@ atomic64_inc(atomic64_t *v) · 3 unmodified lines | ||
| 1379 | 1528 | #define atomic64_inc atomic64_inc |
| 1380 | 1529 | #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 | 1536 | #ifndef atomic64_inc_return_relaxed |
| 1383 | 1537 | #ifdef atomic64_inc_return |
| 1384 | 1538 | #define atomic64_inc_return_acquire atomic64_inc_return |
| @@ -1460,6 +1614,11 @@ atomic64_inc_return(atomic64_t *v) · 75 unmodified lines | ||
| 1460 | 1614 | |
| 1461 | 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 | 1622 | #ifndef atomic64_fetch_inc_relaxed |
| 1464 | 1623 | #ifdef atomic64_fetch_inc |
| 1465 | 1624 | #define atomic64_fetch_inc_acquire atomic64_fetch_inc |
| @@ -1541,6 +1700,8 @@ atomic64_fetch_inc(atomic64_t *v) · 75 unmodified lines | ||
| 1541 | 1700 | |
| 1542 | 1701 | #endif /* atomic64_fetch_inc_relaxed */ |
| 1543 | 1702 | |
| 1703 | +#define arch_atomic64_dec atomic64_dec | |
| 1704 | + | |
| 1544 | 1705 | #ifndef atomic64_dec |
| 1545 | 1706 | static __always_inline void |
| 1546 | 1707 | atomic64_dec(atomic64_t *v) |
| @@ -1550,6 +1711,11 @@ atomic64_dec(atomic64_t *v) · 3 unmodified lines | ||
| 1550 | 1711 | #define atomic64_dec atomic64_dec |
| 1551 | 1712 | #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 | 1719 | #ifndef atomic64_dec_return_relaxed |
| 1554 | 1720 | #ifdef atomic64_dec_return |
| 1555 | 1721 | #define atomic64_dec_return_acquire atomic64_dec_return |
| @@ -1631,6 +1797,11 @@ atomic64_dec_return(atomic64_t *v) · 75 unmodified lines | ||
| 1631 | 1797 | |
| 1632 | 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 | 1805 | #ifndef atomic64_fetch_dec_relaxed |
| 1635 | 1806 | #ifdef atomic64_fetch_dec |
| 1636 | 1807 | #define atomic64_fetch_dec_acquire atomic64_fetch_dec |
| @@ -1712,6 +1883,13 @@ atomic64_fetch_dec(atomic64_t *v) · 75 unmodified lines | ||
| 1712 | 1883 | |
| 1713 | 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 | 1893 | #ifndef atomic64_fetch_and_relaxed |
| 1716 | 1894 | #define atomic64_fetch_and_acquire atomic64_fetch_and |
| 1717 | 1895 | #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 | 1933 | #endif /* atomic64_fetch_and_relaxed */ |
| 1756 | 1934 | |
| 1935 | +#define arch_atomic64_andnot atomic64_andnot | |
| 1936 | + | |
| 1757 | 1937 | #ifndef atomic64_andnot |
| 1758 | 1938 | static __always_inline void |
| 1759 | 1939 | atomic64_andnot(s64 i, atomic64_t *v) |
| @@ -1763,6 +1943,11 @@ atomic64_andnot(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1763 | 1943 | #define atomic64_andnot atomic64_andnot |
| 1764 | 1944 | #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 | 1951 | #ifndef atomic64_fetch_andnot_relaxed |
| 1767 | 1952 | #ifdef atomic64_fetch_andnot |
| 1768 | 1953 | #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 | 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 | 2039 | #ifndef atomic64_fetch_or_relaxed |
| 1848 | 2040 | #define atomic64_fetch_or_acquire atomic64_fetch_or |
| 1849 | 2041 | #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 | 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 | 2088 | #ifndef atomic64_fetch_xor_relaxed |
| 1890 | 2089 | #define atomic64_fetch_xor_acquire atomic64_fetch_xor |
| 1891 | 2090 | #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 | 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 | 2135 | #ifndef atomic64_xchg_relaxed |
| 1932 | 2136 | #define atomic64_xchg_acquire atomic64_xchg |
| 1933 | 2137 | #define atomic64_xchg_release atomic64_xchg |
| @@ -1970,6 +2174,11 @@ atomic64_xchg(atomic64_t *v, s64 i) · 36 unmodified lines | ||
| 1970 | 2174 | |
| 1971 | 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 | 2182 | #ifndef atomic64_cmpxchg_relaxed |
| 1974 | 2183 | #define atomic64_cmpxchg_acquire atomic64_cmpxchg |
| 1975 | 2184 | #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 | 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 | 2229 | #ifndef atomic64_try_cmpxchg_relaxed |
| 2016 | 2230 | #ifdef atomic64_try_cmpxchg |
| 2017 | 2231 | #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 | 2324 | #endif /* atomic64_try_cmpxchg_relaxed */ |
| 2111 | 2325 | |
| 2326 | +#define arch_atomic64_sub_and_test atomic64_sub_and_test | |
| 2327 | + | |
| 2112 | 2328 | #ifndef atomic64_sub_and_test |
| 2113 | 2329 | /** |
| 2114 | 2330 | * 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 | 2343 | #define atomic64_sub_and_test atomic64_sub_and_test |
| 2128 | 2344 | #endif |
| 2129 | 2345 | |
| 2346 | +#define arch_atomic64_dec_and_test atomic64_dec_and_test | |
| 2347 | + | |
| 2130 | 2348 | #ifndef atomic64_dec_and_test |
| 2131 | 2349 | /** |
| 2132 | 2350 | * atomic64_dec_and_test - decrement and test |
| @@ -2144,6 +2362,8 @@ atomic64_dec_and_test(atomic64_t *v) · 11 unmodified lines | ||
| 2144 | 2362 | #define atomic64_dec_and_test atomic64_dec_and_test |
| 2145 | 2363 | #endif |
| 2146 | 2364 | |
| 2365 | +#define arch_atomic64_inc_and_test atomic64_inc_and_test | |
| 2366 | + | |
| 2147 | 2367 | #ifndef atomic64_inc_and_test |
| 2148 | 2368 | /** |
| 2149 | 2369 | * atomic64_inc_and_test - increment and test |
| @@ -2161,6 +2381,8 @@ atomic64_inc_and_test(atomic64_t *v) · 11 unmodified lines | ||
| 2161 | 2381 | #define atomic64_inc_and_test atomic64_inc_and_test |
| 2162 | 2382 | #endif |
| 2163 | 2383 | |
| 2384 | +#define arch_atomic64_add_negative atomic64_add_negative | |
| 2385 | + | |
| 2164 | 2386 | #ifndef atomic64_add_negative |
| 2165 | 2387 | /** |
| 2166 | 2388 | * atomic64_add_negative - add and test if negative |
| @@ -2179,6 +2401,8 @@ atomic64_add_negative(s64 i, atomic64_t *v) · 12 unmodified lines | ||
| 2179 | 2401 | #define atomic64_add_negative atomic64_add_negative |
| 2180 | 2402 | #endif |
| 2181 | 2403 | |
| 2404 | +#define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless | |
| 2405 | + | |
| 2182 | 2406 | #ifndef atomic64_fetch_add_unless |
| 2183 | 2407 | /** |
| 2184 | 2408 | * 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 | 2428 | #define atomic64_fetch_add_unless atomic64_fetch_add_unless |
| 2205 | 2429 | #endif |
| 2206 | 2430 | |
| 2431 | +#define arch_atomic64_add_unless atomic64_add_unless | |
| 2432 | + | |
| 2207 | 2433 | #ifndef atomic64_add_unless |
| 2208 | 2434 | /** |
| 2209 | 2435 | * 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 | 2448 | #define atomic64_add_unless atomic64_add_unless |
| 2223 | 2449 | #endif |
| 2224 | 2450 | |
| 2451 | +#define arch_atomic64_inc_not_zero atomic64_inc_not_zero | |
| 2452 | + | |
| 2225 | 2453 | #ifndef atomic64_inc_not_zero |
| 2226 | 2454 | /** |
| 2227 | 2455 | * 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 | 2466 | #define atomic64_inc_not_zero atomic64_inc_not_zero |
| 2239 | 2467 | #endif |
| 2240 | 2468 | |
| 2469 | +#define arch_atomic64_inc_unless_negative atomic64_inc_unless_negative | |
| 2470 | + | |
| 2241 | 2471 | #ifndef atomic64_inc_unless_negative |
| 2242 | 2472 | static __always_inline bool |
| 2243 | 2473 | atomic64_inc_unless_negative(atomic64_t *v) |
| @@ -2254,6 +2484,8 @@ atomic64_inc_unless_negative(atomic64_t *v) · 10 unmodified lines | ||
| 2254 | 2484 | #define atomic64_inc_unless_negative atomic64_inc_unless_negative |
| 2255 | 2485 | #endif |
| 2256 | 2486 | |
| 2487 | +#define arch_atomic64_dec_unless_positive atomic64_dec_unless_positive | |
| 2488 | + | |
| 2257 | 2489 | #ifndef atomic64_dec_unless_positive |
| 2258 | 2490 | static __always_inline bool |
| 2259 | 2491 | atomic64_dec_unless_positive(atomic64_t *v) |
| @@ -2270,6 +2502,8 @@ atomic64_dec_unless_positive(atomic64_t *v) · 10 unmodified lines | ||
| 2270 | 2502 | #define atomic64_dec_unless_positive atomic64_dec_unless_positive |
| 2271 | 2503 | #endif |
| 2272 | 2504 | |
| 2505 | +#define arch_atomic64_dec_if_positive atomic64_dec_if_positive | |
| 2506 | + | |
| 2273 | 2507 | #ifndef atomic64_dec_if_positive |
| 2274 | 2508 | static __always_inline s64 |
| 2275 | 2509 | atomic64_dec_if_positive(atomic64_t *v) |
| @@ -2288,4 +2522,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 12 unmodified lines | ||
| 2288 | 2522 | #endif |
| 2289 | 2523 | |
| 2290 | 2524 | #endif /* _LINUX_ATOMIC_FALLBACK_H */ |
| 2291 | −// 1fac0941c79bf0ae100723cc2ac9b94061f0b67a | |
| 2525 | +// 9d95b56f98d82a2a26c7b79ccdd0c47572d50a6f | |
| @@ -590,6 +590,7 @@ struct request_queue { · 589 unmodified lines | ||
| 590 | 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 | 594 | #define QUEUE_FLAG_STOPPED 0 /* queue is stopped */ |
| 594 | 595 | #define QUEUE_FLAG_DYING 1 /* queue being torn down */ |
| 595 | 596 | #define QUEUE_FLAG_NOMERGES 3 /* disable merge attempts */ |
| @@ -34,7 +34,7 @@ · 33 unmodified lines | ||
| 34 | 34 | struct can_skb_priv { |
| 35 | 35 | int ifindex; |
| 36 | 36 | int skbcnt; |
| 37 | − struct can_frame cf[0]; | |
| 37 | + struct can_frame cf[]; | |
| 38 | 38 | }; |
| 39 | 39 | |
| 40 | 40 | static inline struct can_skb_priv *can_skb_prv(struct sk_buff *skb) |
| @@ -36,7 +36,7 @@ struct cb710_chip { · 35 unmodified lines | ||
| 36 | 36 | unsigned slot_mask; |
| 37 | 37 | unsigned slots; |
| 38 | 38 | spinlock_t irq_lock; |
| 39 | − struct cb710_slot slot[0]; | |
| 39 | + struct cb710_slot slot[]; | |
| 40 | 40 | }; |
| 41 | 41 | |
| 42 | 42 | /* NOTE: cb710_chip.slots is modified only during device init/exit and |
| @@ -52,8 +52,7 @@ struct ceph_options { · 51 unmodified lines | ||
| 52 | 52 | unsigned long osd_idle_ttl; /* jiffies */ |
| 53 | 53 | unsigned long osd_keepalive_timeout; /* jiffies */ |
| 54 | 54 | unsigned long osd_request_timeout; /* jiffies */ |
| 55 | − | |
| 56 | − u32 osd_req_flags; /* CEPH_OSD_FLAG_*, applied to each OSD request */ | |
| 55 | + u32 read_from_replica; /* CEPH_OSD_FLAG_BALANCE/LOCALIZE_READS */ | |
| 57 | 56 | |
| 58 | 57 | /* |
| 59 | 58 | * any type that can't be simply compared or doesn't need |
| @@ -76,6 +75,7 @@ struct ceph_options { · 16 unmodified lines | ||
| 76 | 75 | #define CEPH_OSD_KEEPALIVE_DEFAULT msecs_to_jiffies(5 * 1000) |
| 77 | 76 | #define CEPH_OSD_IDLE_TTL_DEFAULT msecs_to_jiffies(60 * 1000) |
| 78 | 77 | #define CEPH_OSD_REQUEST_TIMEOUT_DEFAULT 0 /* no timeout */ |
| 78 | +#define CEPH_READ_FROM_REPLICA_DEFAULT 0 /* read from primary */ | |
| 79 | 79 | |
| 80 | 80 | #define CEPH_MONC_HUNT_INTERVAL msecs_to_jiffies(3 * 1000) |
| 81 | 81 | #define CEPH_MONC_PING_INTERVAL msecs_to_jiffies(10 * 1000) |
| @@ -33,6 +33,14 @@ · 32 unmodified lines | ||
| 33 | 33 | #define __no_sanitize_thread |
| 34 | 34 | #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 | 45 | * Not all versions of clang implement the the type-generic versions |
| 38 | 46 | * of the builtin overflow checkers. Fortunately, clang implements |
| @@ -150,6 +150,12 @@ · 149 unmodified lines | ||
| 150 | 150 | #define __no_sanitize_thread |
| 151 | 151 | #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 | 159 | #if GCC_VERSION >= 50100 |
| 154 | 160 | #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1 |
| 155 | 161 | #endif |
| @@ -123,7 +123,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, · 122 unmodified lines | ||
| 123 | 123 | #ifdef CONFIG_DEBUG_ENTRY |
| 124 | 124 | /* Begin/end of an instrumentation safe region */ |
| 125 | 125 | #define instrumentation_begin() ({ \ |
| 126 | − asm volatile("%c0:\n\t" \ | |
| 126 | + asm volatile("%c0: nop\n\t" \ | |
| 127 | 127 | ".pushsection .discard.instr_begin\n\t" \ |
| 128 | 128 | ".long %c0b - .\n\t" \ |
| 129 | 129 | ".popsection\n\t" : : "i" (__COUNTER__)); \ |
| @@ -40,6 +40,7 @@ · 39 unmodified lines | ||
| 40 | 40 | # define __GCC4_has_attribute___noclone__ 1 |
| 41 | 41 | # define __GCC4_has_attribute___nonstring__ 0 |
| 42 | 42 | # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8) |
| 43 | +# define __GCC4_has_attribute___no_sanitize_undefined__ (__GNUC_MINOR__ >= 9) | |
| 43 | 44 | # define __GCC4_has_attribute___fallthrough__ 0 |
| 44 | 45 | #endif |
| 45 | 46 | |
| @@ -5,20 +5,20 @@ · 4 unmodified lines | ||
| 5 | 5 | #ifndef __ASSEMBLY__ |
| 6 | 6 | |
| 7 | 7 | #ifdef __CHECKER__ |
| 8 | −# define __user __attribute__((noderef, address_space(1))) | |
| 9 | 8 | # define __kernel __attribute__((address_space(0))) |
| 9 | +# define __user __attribute__((noderef, address_space(__user))) | |
| 10 | 10 | # define __safe __attribute__((safe)) |
| 11 | 11 | # define __force __attribute__((force)) |
| 12 | 12 | # define __nocast __attribute__((nocast)) |
| 13 | −# define __iomem __attribute__((noderef, address_space(2))) | |
| 13 | +# define __iomem __attribute__((noderef, address_space(__iomem))) | |
| 14 | 14 | # define __must_hold(x) __attribute__((context(x,1,1))) |
| 15 | 15 | # define __acquires(x) __attribute__((context(x,0,1))) |
| 16 | 16 | # define __releases(x) __attribute__((context(x,1,0))) |
| 17 | 17 | # define __acquire(x) __context__(x,1) |
| 18 | 18 | # define __release(x) __context__(x,-1) |
| 19 | 19 | # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) |
| 20 | −# define __percpu __attribute__((noderef, address_space(3))) | |
| 21 | −# define __rcu __attribute__((noderef, address_space(4))) | |
| 20 | +# define __percpu __attribute__((noderef, address_space(__percpu))) | |
| 21 | +# define __rcu __attribute__((noderef, address_space(__rcu))) | |
| 22 | 22 | # define __private __attribute__((noderef)) |
| 23 | 23 | extern void __chk_user_ptr(const volatile void __user *); |
| 24 | 24 | extern void __chk_io_ptr(const volatile void __iomem *); |
| @@ -118,10 +118,6 @@ struct ftrace_likely_data { · 93 unmodified lines | ||
| 118 | 118 | #define notrace __attribute__((__no_instrument_function__)) |
| 119 | 119 | #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 | 122 | * it doesn't make sense on ARM (currently the only user of __naked) |
| 127 | 123 | * to trace naked functions because then mcount is called without |
| @@ -193,16 +189,18 @@ struct ftrace_likely_data { · 65 unmodified lines | ||
| 193 | 189 | |
| 194 | 190 | #define __no_kcsan __no_sanitize_thread |
| 195 | 191 | #ifdef __SANITIZE_THREAD__ |
| 196 | −# define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused | |
| 197 | −# define __no_sanitize_or_inline __no_kcsan_or_inline | |
| 198 | −#else | |
| 199 | −# define __no_kcsan_or_inline __always_inline | |
| 192 | +# define __no_sanitize_or_inline __no_kcsan notrace __maybe_unused | |
| 200 | 193 | #endif |
| 201 | 194 | |
| 202 | 195 | #ifndef __no_sanitize_or_inline |
| 203 | 196 | #define __no_sanitize_or_inline __always_inline |
| 204 | 197 | #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 | 204 | #endif /* __KERNEL__ */ |
| 207 | 205 | |
| 208 | 206 | #endif /* __ASSEMBLY__ */ |
| @@ -77,8 +77,6 @@ void *dma_direct_alloc_pages(struct device *dev, size_t size, · 76 unmodified lines | ||
| 77 | 77 | dma_addr_t *dma_handle, gfp_t gfp, unsigned long attrs); |
| 78 | 78 | void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr, |
| 79 | 79 | dma_addr_t dma_addr, unsigned long attrs); |
| 80 | −struct page *__dma_direct_alloc_pages(struct device *dev, size_t size, | |
| 81 | − gfp_t gfp, unsigned long attrs); | |
| 82 | 80 | int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt, |
| 83 | 81 | void *cpu_addr, dma_addr_t dma_addr, size_t size, |
| 84 | 82 | unsigned long attrs); |
| @@ -153,7 +153,7 @@ struct dma_interleaved_template { · 152 unmodified lines | ||
| 153 | 153 | bool dst_sgl; |
| 154 | 154 | size_t numf; |
| 155 | 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 | 535 | struct device *dev; |
| 536 | 536 | struct kref kref; |
| 537 | 537 | size_t len; |
| 538 | − dma_addr_t addr[0]; | |
| 538 | + dma_addr_t addr[]; | |
| 539 | 539 | }; |
| 540 | 540 | |
| 541 | 541 | struct dma_async_tx_descriptor; |
| @@ -350,6 +350,7 @@ void efi_native_runtime_setup(void); · 349 unmodified lines | ||
| 350 | 350 | * associated with ConOut |
| 351 | 351 | */ |
| 352 | 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 | 354 | #define LINUX_EFI_LOADER_ENTRY_GUID EFI_GUID(0x4a67b082, 0x0a4c, 0x41cf, 0xb6, 0xc7, 0x44, 0x0b, 0x29, 0xbb, 0x8c, 0x4f) |
| 354 | 355 | #define LINUX_EFI_RANDOM_SEED_TABLE_GUID EFI_GUID(0x1ce1e5bc, 0x7ceb, 0x42f2, 0x81, 0xe5, 0x8a, 0xad, 0xf1, 0x80, 0xf5, 0x7b) |
| 355 | 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 | 1237 | struct { |
| 1237 | 1238 | phys_addr_t base; |
| 1238 | 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 | 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 | |
| 1248 | 1246 | void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size); |
| 1249 | 1247 | |
| @@ -2592,7 +2592,6 @@ extern void bdput(struct block_device *); · 2591 unmodified lines | ||
| 2592 | 2592 | extern void invalidate_bdev(struct block_device *); |
| 2593 | 2593 | extern void iterate_bdevs(void (*)(struct block_device *, void *), void *); |
| 2594 | 2594 | extern int sync_blockdev(struct block_device *bdev); |
| 2595 | −extern void kill_bdev(struct block_device *); | |
| 2596 | 2595 | extern struct super_block *freeze_bdev(struct block_device *); |
| 2597 | 2596 | extern void emergency_thaw_all(void); |
| 2598 | 2597 | extern 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 | 2607 | #else |
| 2609 | 2608 | static inline void bd_forget(struct inode *inode) {} |
| 2610 | 2609 | static inline int sync_blockdev(struct block_device *bdev) { return 0; } |
| 2611 | −static inline void kill_bdev(struct block_device *bdev) {} | |
| 2612 | 2610 | static inline void invalidate_bdev(struct block_device *bdev) {} |
| 2613 | 2611 | |
| 2614 | 2612 | static inline struct super_block *freeze_bdev(struct block_device *sb) |
| @@ -46,7 +46,7 @@ struct fscache_cache_tag { · 45 unmodified lines | ||
| 46 | 46 | unsigned long flags; |
| 47 | 47 | #define FSCACHE_TAG_RESERVED 0 /* T if tag is reserved for a cache */ |
| 48 | 48 | atomic_t usage; |
| 49 | − char name[0]; /* tag name */ | |
| 49 | + char name[]; /* tag name */ | |
| 50 | 50 | }; |
| 51 | 51 | |
| 52 | 52 | /* |
| @@ -48,6 +48,9 @@ struct host1x_client_ops { · 47 unmodified lines | ||
| 48 | 48 | * @channel: host1x channel associated with this client |
| 49 | 49 | * @syncpts: array of syncpoints requested for this client |
| 50 | 50 | * @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 | */ |
| 52 | 55 | struct host1x_client { |
| 53 | 56 | struct list_head list; |
| @@ -408,7 +408,7 @@ static inline bool i2c_detect_slave_mode(struct device *dev) { return false; } · 407 unmodified lines | ||
| 408 | 408 | * that are present. This information is used to grow the driver model tree. |
| 409 | 409 | * For mainboards this is done statically using i2c_register_board_info(); |
| 410 | 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 | */ |
| 413 | 413 | struct i2c_board_info { |
| 414 | 414 | char type[I2C_NAME_SIZE]; |
| @@ -439,13 +439,11 @@ struct i2c_board_info { · 24 unmodified lines | ||
| 439 | 439 | |
| 440 | 440 | |
| 441 | 441 | #if IS_ENABLED(CONFIG_I2C) |
| 442 | −/* Add-on boards should register/unregister their devices; e.g. a board | |
| 442 | +/* | |
| 443 | + * Add-on boards should register/unregister their devices; e.g. a board | |
| 443 | 444 | * with integrated I2C, a config eeprom, sensors, and a codec that's |
| 444 | 445 | * used in conjunction with the primary hardware. |
| 445 | 446 | */ |
| 446 | −struct i2c_client * | |
| 447 | −i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info); | |
| 448 | − | |
| 449 | 447 | struct i2c_client * |
| 450 | 448 | i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info); |
| 451 | 449 | |
| @@ -41,6 +41,7 @@ · 40 unmodified lines | ||
| 41 | 41 | #define DMA_PTE_SNP BIT_ULL(11) |
| 42 | 42 | |
| 43 | 43 | #define DMA_FL_PTE_PRESENT BIT_ULL(0) |
| 44 | +#define DMA_FL_PTE_US BIT_ULL(2) | |
| 44 | 45 | #define DMA_FL_PTE_XD BIT_ULL(63) |
| 45 | 46 | |
| 46 | 47 | #define ADDR_WIDTH_5LEVEL (57) |
| @@ -2,7 +2,7 @@ · 1 unmodified line | ||
| 2 | 2 | #ifndef _LINUX_IRQ_WORK_H |
| 3 | 3 | #define _LINUX_IRQ_WORK_H |
| 4 | 4 | |
| 5 | −#include <linux/llist.h> | |
| 5 | +#include <linux/smp_types.h> | |
| 6 | 6 | |
| 7 | 7 | /* |
| 8 | 8 | * An entry can be in one of four states: |
| @@ -13,24 +13,14 @@ · 4 unmodified lines | ||
| 13 | 13 | * 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 | − */ | |
| 31 | 16 | struct irq_work { |
| 32 | − struct llist_node llnode; | |
| 33 | − atomic_t flags; | |
| 17 | + union { | |
| 18 | + struct __call_single_node node; | |
| 19 | + struct { | |
| 20 | + struct llist_node llnode; | |
| 21 | + atomic_t flags; | |
| 22 | + }; | |
| 23 | + }; | |
| 34 | 24 | void (*func)(struct irq_work *); |
| 35 | 25 | }; |
| 36 | 26 | |
| @@ -765,6 +765,11 @@ struct journal_s · 764 unmodified lines | ||
| 765 | 765 | */ |
| 766 | 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 | 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 | 1252 | #define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file |
| 1248 | 1253 | * data write error in ordered |
| 1249 | 1254 | * mode */ |
| 1250 | −#define JBD2_REC_ERR 0x080 /* The errno in the sb has been recorded */ | |
| 1251 | 1255 | |
| 1252 | 1256 | /* |
| 1253 | 1257 | * Function declarations for the journaling transaction and buffer |
| @@ -208,7 +208,7 @@ struct crash_mem_range { · 207 unmodified lines | ||
| 208 | 208 | struct crash_mem { |
| 209 | 209 | unsigned int max_nr_ranges; |
| 210 | 210 | unsigned int nr_ranges; |
| 211 | − struct crash_mem_range ranges[0]; | |
| 211 | + struct crash_mem_range ranges[]; | |
| 212 | 212 | }; |
| 213 | 213 | |
| 214 | 214 | extern int crash_exclude_mem_range(struct crash_mem *mem, |
| @@ -276,8 +276,7 @@ struct kgdb_arch { · 275 unmodified lines | ||
| 276 | 276 | * the I/O driver. |
| 277 | 277 | * @post_exception: Pointer to a function that will do any cleanup work |
| 278 | 278 | * for the I/O driver. |
| 279 | − * @is_console: 1 if the end device is a console 0 if the I/O device is | |
| 280 | − * not a console | |
| 279 | + * @cons: valid if the I/O device is a console; else NULL. | |
| 281 | 280 | */ |
| 282 | 281 | struct kgdb_io { |
| 283 | 282 | const char *name; |
| @@ -288,7 +287,7 @@ struct kgdb_io { · 4 unmodified lines | ||
| 288 | 287 | void (*deinit) (void); |
| 289 | 288 | void (*pre_exception) (void); |
| 290 | 289 | void (*post_exception) (void); |
| 291 | − int is_console; | |
| 290 | + struct console *cons; | |
| 292 | 291 | }; |
| 293 | 292 | |
| 294 | 293 | extern const struct kgdb_arch arch_kgdb_ops; |
| @@ -161,7 +161,7 @@ struct kretprobe_instance { · 160 unmodified lines | ||
| 161 | 161 | kprobe_opcode_t *ret_addr; |
| 162 | 162 | struct task_struct *task; |
| 163 | 163 | void *fp; |
| 164 | − char data[0]; | |
| 164 | + char data[]; | |
| 165 | 165 | }; |
| 166 | 166 | |
| 167 | 167 | struct kretprobe_blackpoint { |
| @@ -350,6 +350,10 @@ static inline struct kprobe_ctlblk *get_kprobe_ctlblk(void) · 182 unmodified lines | ||
| 350 | 350 | return this_cpu_ptr(&kprobe_ctlblk); |
| 351 | 351 | } |
| 352 | 352 | |
| 353 | +extern struct kprobe kprobe_busy; | |
| 354 | +void kprobe_busy_begin(void); | |
| 355 | +void kprobe_busy_end(void); | |
| 356 | + | |
| 353 | 357 | kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset); |
| 354 | 358 | int register_kprobe(struct kprobe *p); |
| 355 | 359 | void unregister_kprobe(struct kprobe *p); |
| @@ -409,7 +409,7 @@ struct kvm_irq_routing_table { · 408 unmodified lines | ||
| 409 | 409 | * Array indexed by gsi. Each entry contains list of irq chips |
| 410 | 410 | * the gsi is connected to. |
| 411 | 411 | */ |
| 412 | − struct hlist_head map[0]; | |
| 412 | + struct hlist_head map[]; | |
| 413 | 413 | }; |
| 414 | 414 | #endif |
| 415 | 415 | |
| @@ -22,6 +22,7 @@ · 21 unmodified lines | ||
| 22 | 22 | #include <linux/acpi.h> |
| 23 | 23 | #include <linux/cdrom.h> |
| 24 | 24 | #include <linux/sched.h> |
| 25 | +#include <linux/async.h> | |
| 25 | 26 | |
| 26 | 27 | /* |
| 27 | 28 | * Define if arch has non-standard setup. This is a _PCI_ standard |
| @@ -609,7 +610,7 @@ struct ata_host { · 581 unmodified lines | ||
| 609 | 610 | struct task_struct *eh_owner; |
| 610 | 611 | |
| 611 | 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 | |
| 615 | 616 | struct ata_queued_cmd { |
| @@ -872,6 +873,8 @@ struct ata_port { · 256 unmodified lines | ||
| 872 | 873 | struct timer_list fastdrain_timer; |
| 873 | 874 | unsigned long fastdrain_cnt; |
| 874 | 875 | |
| 876 | + async_cookie_t cookie; | |
| 877 | + | |
| 875 | 878 | int em_message_type; |
| 876 | 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 | 1095 | #define ATA_SCSI_COMPAT_IOCTL /* empty */ |
| 1093 | 1096 | #endif |
| 1094 | 1097 | extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); |
| 1098 | +#if IS_REACHABLE(CONFIG_ATA) | |
| 1095 | 1099 | bool ata_scsi_dma_need_drain(struct request *rq); |
| 1100 | +#else | |
| 1101 | +#define ata_scsi_dma_need_drain NULL | |
| 1102 | +#endif | |
| 1096 | 1103 | extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, |
| 1097 | 1104 | unsigned int cmd, void __user *arg); |
| 1098 | 1105 | extern bool ata_link_online(struct ata_link *link); |
| @@ -150,7 +150,7 @@ LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer, · 149 unmodified lines | ||
| 150 | 150 | size_t buffer_size) |
| 151 | 151 | LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid) |
| 152 | 152 | LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new) |
| 153 | −LSM_HOOK(int, 0, inode_copy_up_xattr, const char *name) | |
| 153 | +LSM_HOOK(int, -EOPNOTSUPP, inode_copy_up_xattr, const char *name) | |
| 154 | 154 | LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir, |
| 155 | 155 | struct kernfs_node *kn) |
| 156 | 156 | LSM_HOOK(int, 0, file_permission, struct file *file, int mask) |
| @@ -360,7 +360,7 @@ LSM_HOOK(int, 0, key_alloc, struct key *key, const struct cred *cred, · 203 unmodified lines | ||
| 360 | 360 | unsigned long flags) |
| 361 | 361 | LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key) |
| 362 | 362 | LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred, |
| 363 | − unsigned perm) | |
| 363 | + enum key_need_perm need_perm) | |
| 364 | 364 | LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer) |
| 365 | 365 | #endif /* CONFIG_KEYS */ |
| 366 | 366 | |
| @@ -4283,7 +4283,8 @@ struct mlx5_ifc_rst2init_qp_out_bits { · 4282 unmodified lines | ||
| 4283 | 4283 | |
| 4284 | 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 | |
| 4289 | 4290 | struct mlx5_ifc_rst2init_qp_in_bits { |
| @@ -4300,7 +4301,7 @@ struct mlx5_ifc_rst2init_qp_in_bits { · 10 unmodified lines | ||
| 4300 | 4301 | |
| 4301 | 4302 | u8 opt_param_mask[0x20]; |
| 4302 | 4303 | |
| 4303 | − u8 reserved_at_a0[0x20]; | |
| 4304 | + u8 ece[0x20]; | |
| 4304 | 4305 | |
| 4305 | 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 | 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 | |
| 6625 | 6627 | struct mlx5_ifc_init2init_qp_in_bits { |
| @@ -6636,7 +6638,7 @@ struct mlx5_ifc_init2init_qp_in_bits { · 10 unmodified lines | ||
| 6636 | 6638 | |
| 6637 | 6639 | u8 opt_param_mask[0x20]; |
| 6638 | 6640 | |
| 6639 | − u8 reserved_at_a0[0x20]; | |
| 6641 | + u8 ece[0x20]; | |
| 6640 | 6642 | |
| 6641 | 6643 | struct mlx5_ifc_qpc_bits qpc; |
| 6642 | 6644 | |
| @@ -257,8 +257,8 @@ struct lruvec { · 256 unmodified lines | ||
| 257 | 257 | */ |
| 258 | 258 | unsigned long anon_cost; |
| 259 | 259 | unsigned long file_cost; |
| 260 | − /* Evictions & activations on the inactive file list */ | |
| 261 | − atomic_long_t inactive_age; | |
| 260 | + /* Non-resident age, driven by LRU movement */ | |
| 261 | + atomic_long_t nonresident_age; | |
| 262 | 262 | /* Refaults at the time of last reclaim cycle */ |
| 263 | 263 | unsigned long refaults; |
| 264 | 264 | /* Various lruvec state flags (enum lruvec_flags) */ |
| @@ -3157,7 +3157,7 @@ static inline int dev_recursion_level(void) · 3156 unmodified lines | ||
| 3157 | 3157 | return this_cpu_read(softnet_data.xmit.recursion); |
| 3158 | 3158 | } |
| 3159 | 3159 | |
| 3160 | −#define XMIT_RECURSION_LIMIT 10 | |
| 3160 | +#define XMIT_RECURSION_LIMIT 8 | |
| 3161 | 3161 | static inline bool dev_xmit_recursion(void) |
| 3162 | 3162 | { |
| 3163 | 3163 | return unlikely(__this_cpu_read(softnet_data.xmit.recursion) > |
| @@ -25,6 +25,12 @@ · 24 unmodified lines | ||
| 25 | 25 | int ipt_register_table(struct net *net, const struct xt_table *table, |
| 26 | 26 | const struct ipt_replace *repl, |
| 27 | 27 | const struct nf_hook_ops *ops, struct xt_table **res); |
| 28 | + | |
| 29 | +void ipt_unregister_table_pre_exit(struct net *net, struct xt_table *table, | |
| 30 | + const struct nf_hook_ops *ops); | |
| 31 | + | |
| 32 | +void ipt_unregister_table_exit(struct net *net, struct xt_table *table); | |
| 33 | + | |
| 28 | 34 | void ipt_unregister_table(struct net *net, struct xt_table *table, |
| 29 | 35 | const struct nf_hook_ops *ops); |
| 30 | 36 | |
| @@ -29,6 +29,9 @@ int ip6t_register_table(struct net *net, const struct xt_table *table, · 28 unmodified lines | ||
| 29 | 29 | const struct nf_hook_ops *ops, struct xt_table **res); |
| 30 | 30 | void ip6t_unregister_table(struct net *net, struct xt_table *table, |
| 31 | 31 | const struct nf_hook_ops *ops); |
| 32 | +void ip6t_unregister_table_pre_exit(struct net *net, struct xt_table *table, | |
| 33 | + const struct nf_hook_ops *ops); | |
| 34 | +void ip6t_unregister_table_exit(struct net *net, struct xt_table *table); | |
| 32 | 35 | extern unsigned int ip6t_do_table(struct sk_buff *skb, |
| 33 | 36 | const struct nf_hook_state *state, |
| 34 | 37 | struct xt_table *table); |
| @@ -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 | 304 | * struct_size() - Calculate size of structure with trailing array. |
| 305 | 305 | * @p: Pointer to the structure. |
| 306 | 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 | 309 | * 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 | 312 | * Return: number of bytes needed or SIZE_MAX on overflow. |
| 313 | 313 | */ |
| 314 | −#define struct_size(p, member, n) \ | |
| 315 | − __ab_c_size(n, \ | |
| 314 | +#define struct_size(p, member, count) \ | |
| 315 | + __ab_c_size(count, \ | |
| 316 | 316 | sizeof(*(p)->member) + __must_be_array((p)->member),\ |
| 317 | 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 | 336 | #endif /* __LINUX_OVERFLOW_H */ |
| @@ -2169,12 +2169,11 @@ static inline int pci_pcie_type(const struct pci_dev *dev) · 2168 unmodified lines | ||
| 2169 | 2169 | */ |
| 2170 | 2170 | static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev) |
| 2171 | 2171 | { |
| 2172 | − struct pci_dev *bridge = pci_upstream_bridge(dev); | |
| 2173 | − | |
| 2174 | − while (bridge) { | |
| 2175 | − if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT) | |
| 2176 | − return bridge; | |
| 2177 | − bridge = pci_upstream_bridge(bridge); | |
| 2172 | + while (dev) { | |
| 2173 | + if (pci_is_pcie(dev) && | |
| 2174 | + pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) | |
| 2175 | + return dev; | |
| 2176 | + dev = pci_upstream_bridge(dev); | |
| 2178 | 2177 | } |
| 2179 | 2178 | |
| 2180 | 2179 | return NULL; |
| @@ -249,6 +249,13 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, · 248 unmodified lines | ||
| 249 | 249 | } |
| 250 | 250 | #endif |
| 251 | 251 | |
| 252 | +#ifndef __HAVE_ARCH_PTEP_GET | |
| 253 | +static inline pte_t ptep_get(pte_t *ptep) | |
| 254 | +{ | |
| 255 | + return READ_ONCE(*ptep); | |
| 256 | +} | |
| 257 | +#endif | |
| 258 | + | |
| 252 | 259 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
| 253 | 260 | #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR |
| 254 | 261 | static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, |
| @@ -1416,6 +1416,7 @@ int phy_ethtool_ksettings_set(struct phy_device *phydev, · 1415 unmodified lines | ||
| 1416 | 1416 | int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); |
| 1417 | 1417 | int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); |
| 1418 | 1418 | int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd); |
| 1419 | +int phy_disable_interrupts(struct phy_device *phydev); | |
| 1419 | 1420 | void phy_request_interrupt(struct phy_device *phydev); |
| 1420 | 1421 | void phy_free_interrupt(struct phy_device *phydev); |
| 1421 | 1422 | void phy_print_status(struct phy_device *phydev); |
| @@ -597,7 +597,7 @@ int sev_guest_df_flush(int *error); · 596 unmodified lines | ||
| 597 | 597 | */ |
| 598 | 598 | int sev_guest_decommission(struct sev_data_decommission *data, int *error); |
| 599 | 599 | |
| 600 | −void *psp_copy_user_blob(u64 __user uaddr, u32 len); | |
| 600 | +void *psp_copy_user_blob(u64 uaddr, u32 len); | |
| 601 | 601 | |
| 602 | 602 | #else /* !CONFIG_CRYPTO_DEV_SP_PSP */ |
| 603 | 603 | |
| @@ -207,28 +207,34 @@ static inline u32 qed_chain_get_cons_idx_u32(struct qed_chain *p_chain) · 206 unmodified lines | ||
| 207 | 207 | |
| 208 | 208 | static 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 | 213 | u16 used; |
| 211 | 214 | |
| 212 | − used = (u16) (((u32)0x10000 + | |
| 213 | − (u32)p_chain->u.chain16.prod_idx) - | |
| 214 | − (u32)p_chain->u.chain16.cons_idx); | |
| 215 | + if (prod < cons) | |
| 216 | + prod += (u32)U16_MAX + 1; | |
| 217 | + | |
| 218 | + used = (u16)(prod - cons); | |
| 215 | 219 | if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR) |
| 216 | − used -= p_chain->u.chain16.prod_idx / p_chain->elem_per_page - | |
| 217 | − p_chain->u.chain16.cons_idx / p_chain->elem_per_page; | |
| 220 | + used -= prod / elem_per_page - cons / elem_per_page; | |
| 218 | 221 | |
| 219 | 222 | return (u16)(p_chain->capacity - used); |
| 220 | 223 | } |
| 221 | 224 | |
| 222 | 225 | static 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 | 230 | u32 used; |
| 225 | 231 | |
| 226 | − used = (u32) (((u64)0x100000000ULL + | |
| 227 | − (u64)p_chain->u.chain32.prod_idx) - | |
| 228 | − (u64)p_chain->u.chain32.cons_idx); | |
| 232 | + if (prod < cons) | |
| 233 | + prod += (u64)U32_MAX + 1; | |
| 234 | + | |
| 235 | + used = (u32)(prod - cons); | |
| 229 | 236 | if (p_chain->mode == QED_CHAIN_MODE_NEXT_PTR) |
| 230 | − used -= p_chain->u.chain32.prod_idx / p_chain->elem_per_page - | |
| 231 | − p_chain->u.chain32.cons_idx / p_chain->elem_per_page; | |
| 237 | + used -= (u32)(prod / elem_per_page - cons / elem_per_page); | |
| 232 | 238 | |
| 233 | 239 | return p_chain->capacity - used; |
| 234 | 240 | } |
| @@ -114,10 +114,6 @@ struct task_group; · 113 unmodified lines | ||
| 114 | 114 | |
| 115 | 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 | 117 | #ifdef CONFIG_DEBUG_ATOMIC_SLEEP |
| 122 | 118 | |
| 123 | 119 | /* |
| @@ -654,9 +650,8 @@ struct task_struct { · 530 unmodified lines | ||
| 654 | 650 | unsigned int ptrace; |
| 655 | 651 | |
| 656 | 652 | #ifdef CONFIG_SMP |
| 657 | − struct llist_node wake_entry; | |
| 658 | − unsigned int wake_entry_type; | |
| 659 | 653 | int on_cpu; |
| 654 | + struct __call_single_node wake_entry; | |
| 660 | 655 | #ifdef CONFIG_THREAD_INFO_IN_TASK |
| 661 | 656 | /* Current CPU: */ |
| 662 | 657 | unsigned int cpu; |
| @@ -19,6 +19,7 @@ struct task_struct; · 18 unmodified lines | ||
| 19 | 19 | #define JOBCTL_TRAPPING_BIT 21 /* switching to TRACED */ |
| 20 | 20 | #define JOBCTL_LISTENING_BIT 22 /* ptracer is listening for events */ |
| 21 | 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 | 24 | #define JOBCTL_STOP_DEQUEUED (1UL << JOBCTL_STOP_DEQUEUED_BIT) |
| 24 | 25 | #define JOBCTL_STOP_PENDING (1UL << JOBCTL_STOP_PENDING_BIT) |
| @@ -28,9 +29,10 @@ struct task_struct; · 3 unmodified lines | ||
| 28 | 29 | #define JOBCTL_TRAPPING (1UL << JOBCTL_TRAPPING_BIT) |
| 29 | 30 | #define JOBCTL_LISTENING (1UL << JOBCTL_LISTENING_BIT) |
| 30 | 31 | #define JOBCTL_TRAP_FREEZE (1UL << JOBCTL_TRAP_FREEZE_BIT) |
| 32 | +#define JOBCTL_TASK_WORK (1UL << JOBCTL_TASK_WORK_BIT) | |
| 31 | 33 | |
| 32 | 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 | |
| 35 | 37 | extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask); |
| 36 | 38 | extern void task_clear_jobctl_trapping(struct task_struct *task); |
| @@ -221,7 +221,7 @@ struct sctp_datahdr { · 220 unmodified lines | ||
| 221 | 221 | __be16 stream; |
| 222 | 222 | __be16 ssn; |
| 223 | 223 | __u32 ppid; |
| 224 | − __u8 payload[0]; | |
| 224 | + __u8 payload[]; | |
| 225 | 225 | }; |
| 226 | 226 | |
| 227 | 227 | struct sctp_data_chunk { |
| @@ -269,7 +269,7 @@ struct sctp_inithdr { · 41 unmodified lines | ||
| 269 | 269 | __be16 num_outbound_streams; |
| 270 | 270 | __be16 num_inbound_streams; |
| 271 | 271 | __be32 initial_tsn; |
| 272 | − __u8 params[0]; | |
| 272 | + __u8 params[]; | |
| 273 | 273 | }; |
| 274 | 274 | |
| 275 | 275 | struct sctp_init_chunk { |
| @@ -299,13 +299,13 @@ struct sctp_cookie_preserve_param { · 23 unmodified lines | ||
| 299 | 299 | /* Section 3.3.2.1 Host Name Address (11) */ |
| 300 | 300 | struct sctp_hostname_param { |
| 301 | 301 | struct sctp_paramhdr param_hdr; |
| 302 | − uint8_t hostname[0]; | |
| 302 | + uint8_t hostname[]; | |
| 303 | 303 | }; |
| 304 | 304 | |
| 305 | 305 | /* Section 3.3.2.1 Supported Address Types (12) */ |
| 306 | 306 | struct sctp_supported_addrs_param { |
| 307 | 307 | struct sctp_paramhdr param_hdr; |
| 308 | − __be16 types[0]; | |
| 308 | + __be16 types[]; | |
| 309 | 309 | }; |
| 310 | 310 | |
| 311 | 311 | /* ADDIP Section 3.2.6 Adaptation Layer Indication */ |
| @@ -317,25 +317,25 @@ struct sctp_adaptation_ind_param { · 5 unmodified lines | ||
| 317 | 317 | /* ADDIP Section 4.2.7 Supported Extensions Parameter */ |
| 318 | 318 | struct sctp_supported_ext_param { |
| 319 | 319 | struct sctp_paramhdr param_hdr; |
| 320 | − __u8 chunks[0]; | |
| 320 | + __u8 chunks[]; | |
| 321 | 321 | }; |
| 322 | 322 | |
| 323 | 323 | /* AUTH Section 3.1 Random */ |
| 324 | 324 | struct sctp_random_param { |
| 325 | 325 | struct sctp_paramhdr param_hdr; |
| 326 | − __u8 random_val[0]; | |
| 326 | + __u8 random_val[]; | |
| 327 | 327 | }; |
| 328 | 328 | |
| 329 | 329 | /* AUTH Section 3.2 Chunk List */ |
| 330 | 330 | struct sctp_chunks_param { |
| 331 | 331 | struct sctp_paramhdr param_hdr; |
| 332 | − __u8 chunks[0]; | |
| 332 | + __u8 chunks[]; | |
| 333 | 333 | }; |
| 334 | 334 | |
| 335 | 335 | /* AUTH Section 3.3 HMAC Algorithm */ |
| 336 | 336 | struct sctp_hmac_algo_param { |
| 337 | 337 | struct sctp_paramhdr param_hdr; |
| 338 | − __be16 hmac_ids[0]; | |
| 338 | + __be16 hmac_ids[]; | |
| 339 | 339 | }; |
| 340 | 340 | |
| 341 | 341 | /* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2): |
| @@ -350,7 +350,7 @@ struct sctp_initack_chunk { · 8 unmodified lines | ||
| 350 | 350 | /* Section 3.3.3.1 State Cookie (7) */ |
| 351 | 351 | struct sctp_cookie_param { |
| 352 | 352 | struct sctp_paramhdr p; |
| 353 | − __u8 body[0]; | |
| 353 | + __u8 body[]; | |
| 354 | 354 | }; |
| 355 | 355 | |
| 356 | 356 | /* Section 3.3.3.1 Unrecognized Parameters (8) */ |
| @@ -384,7 +384,7 @@ struct sctp_sackhdr { · 27 unmodified lines | ||
| 384 | 384 | __be32 a_rwnd; |
| 385 | 385 | __be16 num_gap_ack_blocks; |
| 386 | 386 | __be16 num_dup_tsns; |
| 387 | − union sctp_sack_variable variable[0]; | |
| 387 | + union sctp_sack_variable variable[]; | |
| 388 | 388 | }; |
| 389 | 389 | |
| 390 | 390 | struct sctp_sack_chunk { |
| @@ -436,7 +436,7 @@ struct sctp_shutdown_chunk { · 45 unmodified lines | ||
| 436 | 436 | struct sctp_errhdr { |
| 437 | 437 | __be16 cause; |
| 438 | 438 | __be16 length; |
| 439 | − __u8 variable[0]; | |
| 439 | + __u8 variable[]; | |
| 440 | 440 | }; |
| 441 | 441 | |
| 442 | 442 | struct sctp_operr_chunk { |
| @@ -594,7 +594,7 @@ struct sctp_fwdtsn_skip { · 151 unmodified lines | ||
| 594 | 594 | |
| 595 | 595 | struct sctp_fwdtsn_hdr { |
| 596 | 596 | __be32 new_cum_tsn; |
| 597 | − struct sctp_fwdtsn_skip skip[0]; | |
| 597 | + struct sctp_fwdtsn_skip skip[]; | |
| 598 | 598 | }; |
| 599 | 599 | |
| 600 | 600 | struct sctp_fwdtsn_chunk { |
| @@ -611,7 +611,7 @@ struct sctp_ifwdtsn_skip { · 10 unmodified lines | ||
| 611 | 611 | |
| 612 | 612 | struct sctp_ifwdtsn_hdr { |
| 613 | 613 | __be32 new_cum_tsn; |
| 614 | − struct sctp_ifwdtsn_skip skip[0]; | |
| 614 | + struct sctp_ifwdtsn_skip skip[]; | |
| 615 | 615 | }; |
| 616 | 616 | |
| 617 | 617 | struct sctp_ifwdtsn_chunk { |
| @@ -658,7 +658,7 @@ struct sctp_addip_param { · 40 unmodified lines | ||
| 658 | 658 | |
| 659 | 659 | struct sctp_addiphdr { |
| 660 | 660 | __be32 serial; |
| 661 | − __u8 params[0]; | |
| 661 | + __u8 params[]; | |
| 662 | 662 | }; |
| 663 | 663 | |
| 664 | 664 | struct sctp_addip_chunk { |
| @@ -718,7 +718,7 @@ struct sctp_addip_chunk { · 53 unmodified lines | ||
| 718 | 718 | struct sctp_authhdr { |
| 719 | 719 | __be16 shkey_id; |
| 720 | 720 | __be16 hmac_id; |
| 721 | − __u8 hmac[0]; | |
| 721 | + __u8 hmac[]; | |
| 722 | 722 | }; |
| 723 | 723 | |
| 724 | 724 | struct sctp_auth_chunk { |
| @@ -733,7 +733,7 @@ struct sctp_infox { · 8 unmodified lines | ||
| 733 | 733 | |
| 734 | 734 | struct sctp_reconf_chunk { |
| 735 | 735 | struct sctp_chunkhdr chunk_hdr; |
| 736 | − __u8 params[0]; | |
| 736 | + __u8 params[]; | |
| 737 | 737 | }; |
| 738 | 738 | |
| 739 | 739 | struct sctp_strreset_outreq { |
| @@ -741,13 +741,13 @@ struct sctp_strreset_outreq { · 1 unmodified line | ||
| 741 | 741 | __be32 request_seq; |
| 742 | 742 | __be32 response_seq; |
| 743 | 743 | __be32 send_reset_at_tsn; |
| 744 | − __be16 list_of_streams[0]; | |
| 744 | + __be16 list_of_streams[]; | |
| 745 | 745 | }; |
| 746 | 746 | |
| 747 | 747 | struct sctp_strreset_inreq { |
| 748 | 748 | struct sctp_paramhdr param_hdr; |
| 749 | 749 | __be32 request_seq; |
| 750 | − __be16 list_of_streams[0]; | |
| 750 | + __be16 list_of_streams[]; | |
| 751 | 751 | }; |
| 752 | 752 | |
| 753 | 753 | struct sctp_strreset_tsnreq { |
| @@ -12,29 +12,22 @@ · 11 unmodified lines | ||
| 12 | 12 | #include <linux/list.h> |
| 13 | 13 | #include <linux/cpumask.h> |
| 14 | 14 | #include <linux/init.h> |
| 15 | −#include <linux/llist.h> | |
| 15 | +#include <linux/smp_types.h> | |
| 16 | 16 | |
| 17 | 17 | typedef void (*smp_call_func_t)(void *info); |
| 18 | 18 | typedef bool (*smp_cond_func_t)(int cpu, void *info); |
| 19 | 19 | |
| 20 | −enum { | |
| 21 | − CSD_FLAG_LOCK = 0x01, | |
| 22 | − | |
| 23 | − /* IRQ_WORK_flags */ | |
| 24 | − | |
| 25 | − CSD_TYPE_ASYNC = 0x00, | |
| 26 | − CSD_TYPE_SYNC = 0x10, | |
| 27 | − CSD_TYPE_IRQ_WORK = 0x20, | |
| 28 | − CSD_TYPE_TTWU = 0x30, | |
| 29 | − CSD_FLAG_TYPE_MASK = 0xF0, | |
| 30 | −}; | |
| 31 | − | |
| 32 | 20 | /* |
| 33 | 21 | * structure shares (partial) layout with struct irq_work |
| 34 | 22 | */ |
| 35 | 23 | struct __call_single_data { |
| 36 | − struct llist_node llist; | |
| 37 | − unsigned int flags; | |
| 24 | + union { | |
| 25 | + struct __call_single_node node; | |
| 26 | + struct { | |
| 27 | + struct llist_node llist; | |
| 28 | + unsigned int flags; | |
| 29 | + }; | |
| 30 | + }; | |
| 38 | 31 | smp_call_func_t func; |
| 39 | 32 | void *info; |
| 40 | 33 | }; |
| @@ -0,0 +1,66 @@ | ||
| 1 | +/* SPDX-License-Identifier: GPL-2.0 */ | |
| 2 | +#ifndef __LINUX_SMP_TYPES_H | |
| 3 | +#define __LINUX_SMP_TYPES_H | |
| 4 | + | |
| 5 | +#include <linux/llist.h> | |
| 6 | + | |
| 7 | +enum { | |
| 8 | + CSD_FLAG_LOCK = 0x01, | |
| 9 | + | |
| 10 | + IRQ_WORK_PENDING = 0x01, | |
| 11 | + IRQ_WORK_BUSY = 0x02, | |
| 12 | + IRQ_WORK_LAZY = 0x04, /* No IPI, wait for tick */ | |
| 13 | + IRQ_WORK_HARD_IRQ = 0x08, /* IRQ context on PREEMPT_RT */ | |
| 14 | + | |
| 15 | + IRQ_WORK_CLAIMED = (IRQ_WORK_PENDING | IRQ_WORK_BUSY), | |
| 16 | + | |
| 17 | + CSD_TYPE_ASYNC = 0x00, | |
| 18 | + CSD_TYPE_SYNC = 0x10, | |
| 19 | + CSD_TYPE_IRQ_WORK = 0x20, | |
| 20 | + CSD_TYPE_TTWU = 0x30, | |
| 21 | + | |
| 22 | + CSD_FLAG_TYPE_MASK = 0xF0, | |
| 23 | +}; | |
| 24 | + | |
| 25 | +/* | |
| 26 | + * struct __call_single_node is the primary type on | |
| 27 | + * smp.c:call_single_queue. | |
| 28 | + * | |
| 29 | + * flush_smp_call_function_queue() only reads the type from | |
| 30 | + * __call_single_node::u_flags as a regular load, the above | |
| 31 | + * (anonymous) enum defines all the bits of this word. | |
| 32 | + * | |
| 33 | + * Other bits are not modified until the type is known. | |
| 34 | + * | |
| 35 | + * CSD_TYPE_SYNC/ASYNC: | |
| 36 | + * struct { | |
| 37 | + * struct llist_node node; | |
| 38 | + * unsigned int flags; | |
| 39 | + * smp_call_func_t func; | |
| 40 | + * void *info; | |
| 41 | + * }; | |
| 42 | + * | |
| 43 | + * CSD_TYPE_IRQ_WORK: | |
| 44 | + * struct { | |
| 45 | + * struct llist_node node; | |
| 46 | + * atomic_t flags; | |
| 47 | + * void (*func)(struct irq_work *); | |
| 48 | + * }; | |
| 49 | + * | |
| 50 | + * CSD_TYPE_TTWU: | |
| 51 | + * struct { | |
| 52 | + * struct llist_node node; | |
| 53 | + * unsigned int flags; | |
| 54 | + * }; | |
| 55 | + * | |
| 56 | + */ | |
| 57 | + | |
| 58 | +struct __call_single_node { | |
| 59 | + struct llist_node llist; | |
| 60 | + union { | |
| 61 | + unsigned int u_flags; | |
| 62 | + atomic_t a_flags; | |
| 63 | + }; | |
| 64 | +}; | |
| 65 | + | |
| 66 | +#endif /* __LINUX_SMP_TYPES_H */ | |
| @@ -313,6 +313,7 @@ struct vma_swap_readahead { · 312 unmodified lines | ||
| 313 | 313 | }; |
| 314 | 314 | |
| 315 | 315 | /* linux/mm/workingset.c */ |
| 316 | +void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages); | |
| 316 | 317 | void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg); |
| 317 | 318 | void workingset_refault(struct page *page, void *shadow); |
| 318 | 319 | void workingset_activation(struct page *page); |
| @@ -1360,7 +1360,7 @@ static inline long ksys_lchown(const char __user *filename, uid_t user, · 1359 unmodified lines | ||
| 1360 | 1360 | |
| 1361 | 1361 | extern long do_sys_ftruncate(unsigned int fd, loff_t length, int small); |
| 1362 | 1362 | |
| 1363 | −static inline long ksys_ftruncate(unsigned int fd, unsigned long length) | |
| 1363 | +static inline long ksys_ftruncate(unsigned int fd, loff_t length) | |
| 1364 | 1364 | { |
| 1365 | 1365 | return do_sys_ftruncate(fd, length, 1); |
| 1366 | 1366 | } |
| @@ -13,7 +13,10 @@ init_task_work(struct callback_head *twork, task_work_func_t func) · 12 unmodified lines | ||
| 13 | 13 | twork->func = func; |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | −int task_work_add(struct task_struct *task, struct callback_head *twork, bool); | |
| 16 | +#define TWA_RESUME 1 | |
| 17 | +#define TWA_SIGNAL 2 | |
| 18 | +int task_work_add(struct task_struct *task, struct callback_head *twork, int); | |
| 19 | + | |
| 17 | 20 | struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t); |
| 18 | 21 | void task_work_run(void); |
| 19 | 22 | |
| @@ -124,7 +124,7 @@ struct tifm_adapter { · 123 unmodified lines | ||
| 124 | 124 | int (*has_ms_pif)(struct tifm_adapter *fm, |
| 125 | 125 | struct tifm_dev *sock); |
| 126 | 126 | |
| 127 | − struct tifm_dev *sockets[0]; | |
| 127 | + struct tifm_dev *sockets[]; | |
| 128 | 128 | }; |
| 129 | 129 | |
| 130 | 130 | struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets, |
| @@ -222,9 +222,9 @@ extern bool timekeeping_rtc_skipresume(void); · 221 unmodified lines | ||
| 222 | 222 | |
| 223 | 223 | extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta); |
| 224 | 224 | |
| 225 | −/* | |
| 225 | +/** | |
| 226 | 226 | * struct system_time_snapshot - simultaneous raw/real time capture with |
| 227 | − * counter value | |
| 227 | + * counter value | |
| 228 | 228 | * @cycles: Clocksource counter value to produce the system times |
| 229 | 229 | * @real: Realtime system time |
| 230 | 230 | * @raw: Monotonic raw system time |
| @@ -239,9 +239,9 @@ struct system_time_snapshot { · 8 unmodified lines | ||
| 239 | 239 | u8 cs_was_changed_seq; |
| 240 | 240 | }; |
| 241 | 241 | |
| 242 | −/* | |
| 242 | +/** | |
| 243 | 243 | * struct system_device_crosststamp - system/device cross-timestamp |
| 244 | − * (syncronized capture) | |
| 244 | + * (synchronized capture) | |
| 245 | 245 | * @device: Device time |
| 246 | 246 | * @sys_realtime: Realtime simultaneous with device time |
| 247 | 247 | * @sys_monoraw: Monotonic raw simultaneous with device time |
| @@ -252,12 +252,12 @@ struct system_device_crosststamp { · 4 unmodified lines | ||
| 252 | 252 | ktime_t sys_monoraw; |
| 253 | 253 | }; |
| 254 | 254 | |
| 255 | −/* | |
| 255 | +/** | |
| 256 | 256 | * struct system_counterval_t - system counter value with the pointer to the |
| 257 | − * corresponding clocksource | |
| 257 | + * corresponding clocksource | |
| 258 | 258 | * @cycles: System counter value |
| 259 | 259 | * @cs: Clocksource corresponding to system counter value. Used by |
| 260 | − * timekeeping code to verify comparibility of two cycle values | |
| 260 | + * timekeeping code to verify comparibility of two cycle values | |
| 261 | 261 | */ |
| 262 | 262 | struct system_counterval_t { |
| 263 | 263 | u64 cycles; |
| @@ -81,6 +81,8 @@ struct tcg_efi_specid_event_algs { · 80 unmodified lines | ||
| 81 | 81 | u16 digest_size; |
| 82 | 82 | } __packed; |
| 83 | 83 | |
| 84 | +#define TCG_SPECID_SIG "Spec ID Event03" | |
| 85 | + | |
| 84 | 86 | struct tcg_efi_specid_event_head { |
| 85 | 87 | u8 signature[16]; |
| 86 | 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 | 173 | int i; |
| 172 | 174 | int j; |
| 173 | 175 | u32 count, event_type; |
| 176 | + const u8 zero_digest[sizeof(event_header->digest)] = {0}; | |
| 174 | 177 | |
| 175 | 178 | marker = event; |
| 176 | 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 | 201 | count = READ_ONCE(event->count); |
| 199 | 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 | 212 | efispecid = (struct tcg_efi_specid_event_head *)event_header->event; |
| 202 | 213 | |
| 203 | 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 | 217 | size = 0; |
| 206 | 218 | goto out; |
| 207 | 219 | } |
| @@ -301,13 +301,14 @@ copy_struct_from_user(void *dst, size_t ksize, const void __user *src, · 300 unmodified lines | ||
| 301 | 301 | return 0; |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | −bool probe_kernel_read_allowed(const void *unsafe_src, size_t size); | |
| 304 | +bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size); | |
| 305 | 305 | |
| 306 | −extern long probe_kernel_read(void *dst, const void *src, size_t size); | |
| 307 | −extern long probe_user_read(void *dst, const void __user *src, size_t size); | |
| 306 | +long copy_from_kernel_nofault(void *dst, const void *src, size_t size); | |
| 307 | +long notrace copy_to_kernel_nofault(void *dst, const void *src, size_t size); | |
| 308 | 308 | |
| 309 | −extern long notrace probe_kernel_write(void *dst, const void *src, size_t size); | |
| 310 | −extern long notrace probe_user_write(void __user *dst, const void *src, size_t size); | |
| 309 | +long copy_from_user_nofault(void *dst, const void __user *src, size_t size); | |
| 310 | +long notrace copy_to_user_nofault(void __user *dst, const void *src, | |
| 311 | + size_t size); | |
| 311 | 312 | |
| 312 | 313 | long strncpy_from_kernel_nofault(char *dst, const void *unsafe_addr, |
| 313 | 314 | long count); |
| @@ -317,14 +318,16 @@ long strncpy_from_user_nofault(char *dst, const void __user *unsafe_addr, · 3 unmodified lines | ||
| 317 | 318 | long strnlen_user_nofault(const void __user *unsafe_addr, long count); |
| 318 | 319 | |
| 319 | 320 | /** |
| 320 | − * probe_kernel_address(): safely attempt to read from a location | |
| 321 | − * @addr: address to read from | |
| 322 | − * @retval: read into this variable | |
| 321 | + * get_kernel_nofault(): safely attempt to read from a location | |
| 322 | + * @val: read into this variable | |
| 323 | + * @ptr: address to read from | |
| 323 | 324 | * |
| 324 | 325 | * Returns 0 on success, or -EFAULT. |
| 325 | 326 | */ |
| 326 | −#define probe_kernel_address(addr, retval) \ | |
| 327 | − probe_kernel_read(&retval, addr, sizeof(retval)) | |
| 327 | +#define get_kernel_nofault(val, ptr) ({ \ | |
| 328 | + const typeof(val) *__gk_ptr = (ptr); \ | |
| 329 | + copy_from_kernel_nofault(&(val), __gk_ptr, sizeof(val));\ | |
| 330 | +}) | |
| 328 | 331 | |
| 329 | 332 | #ifndef user_access_begin |
| 330 | 333 | #define user_access_begin(ptr,len) access_ok(ptr, len) |
| @@ -106,7 +106,6 @@ extern void *vzalloc(unsigned long size); · 105 unmodified lines | ||
| 106 | 106 | extern void *vmalloc_user(unsigned long size); |
| 107 | 107 | extern void *vmalloc_node(unsigned long size, int node); |
| 108 | 108 | extern void *vzalloc_node(unsigned long size, int node); |
| 109 | −extern void *vmalloc_exec(unsigned long size); | |
| 110 | 109 | extern void *vmalloc_32(unsigned long size); |
| 111 | 110 | extern void *vmalloc_32_user(unsigned long size); |
| 112 | 111 | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask); |