Showing the changes to include/linux (50 of 1250 files). Show all
Unified · Split
| @@ -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_acquire | 83 | #ifndef atomic_read_acquire |
| 81 | static __always_inline int | 84 | static __always_inline int |
| 82 | atomic_read_acquire(const atomic_t *v) | 85 | atomic_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_acquire | 89 | #define atomic_read_acquire atomic_read_acquire |
| 87 | #endif | 90 | #endif |
| 88 | 91 | ||
| 92 | #define arch_atomic_set atomic_set | ||
| 93 | #define arch_atomic_set_release atomic_set_release | ||
| 94 | |||
| 89 | #ifndef atomic_set_release | 95 | #ifndef atomic_set_release |
| 90 | static __always_inline void | 96 | static __always_inline void |
| 91 | atomic_set_release(atomic_t *v, int i) | 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 | #define atomic_set_release atomic_set_release | 101 | #define atomic_set_release atomic_set_release |
| 96 | #endif | 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 | #ifndef atomic_add_return_relaxed | 111 | #ifndef atomic_add_return_relaxed |
| 99 | #define atomic_add_return_acquire atomic_add_return | 112 | #define atomic_add_return_acquire atomic_add_return |
| 100 | #define atomic_add_return_release atomic_add_return | 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 | #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_relaxed | 158 | #ifndef atomic_fetch_add_relaxed |
| 141 | #define atomic_fetch_add_acquire atomic_fetch_add | 159 | #define atomic_fetch_add_acquire atomic_fetch_add |
| 142 | #define atomic_fetch_add_release atomic_fetch_add | 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 | #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_relaxed | 207 | #ifndef atomic_sub_return_relaxed |
| 183 | #define atomic_sub_return_acquire atomic_sub_return | 208 | #define atomic_sub_return_acquire atomic_sub_return |
| 184 | #define atomic_sub_return_release atomic_sub_return | 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 | #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_relaxed | 254 | #ifndef atomic_fetch_sub_relaxed |
| 225 | #define atomic_fetch_sub_acquire atomic_fetch_sub | 255 | #define atomic_fetch_sub_acquire atomic_fetch_sub |
| 226 | #define atomic_fetch_sub_release atomic_fetch_sub | 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 | #endif /* atomic_fetch_sub_relaxed */ | 294 | #endif /* atomic_fetch_sub_relaxed */ |
| 265 | 295 | ||
| 296 | #define arch_atomic_inc atomic_inc | ||
| 297 | |||
| 266 | #ifndef atomic_inc | 298 | #ifndef atomic_inc |
| 267 | static __always_inline void | 299 | static __always_inline void |
| 268 | atomic_inc(atomic_t *v) | 300 | atomic_inc(atomic_t *v) |
| @@ -272,6 +304,11 @@ atomic_inc(atomic_t *v) · 3 unmodified lines | |||
| 272 | #define atomic_inc atomic_inc | 304 | #define atomic_inc atomic_inc |
| 273 | #endif | 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 | #ifndef atomic_inc_return_relaxed | 312 | #ifndef atomic_inc_return_relaxed |
| 276 | #ifdef atomic_inc_return | 313 | #ifdef atomic_inc_return |
| 277 | #define atomic_inc_return_acquire atomic_inc_return | 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 | #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_relaxed | 398 | #ifndef atomic_fetch_inc_relaxed |
| 357 | #ifdef atomic_fetch_inc | 399 | #ifdef atomic_fetch_inc |
| 358 | #define atomic_fetch_inc_acquire atomic_fetch_inc | 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 | #endif /* atomic_fetch_inc_relaxed */ | 477 | #endif /* atomic_fetch_inc_relaxed */ |
| 436 | 478 | ||
| 479 | #define arch_atomic_dec atomic_dec | ||
| 480 | |||
| 437 | #ifndef atomic_dec | 481 | #ifndef atomic_dec |
| 438 | static __always_inline void | 482 | static __always_inline void |
| 439 | atomic_dec(atomic_t *v) | 483 | atomic_dec(atomic_t *v) |
| @@ -443,6 +487,11 @@ atomic_dec(atomic_t *v) · 3 unmodified lines | |||
| 443 | #define atomic_dec atomic_dec | 487 | #define atomic_dec atomic_dec |
| 444 | #endif | 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 | #ifndef atomic_dec_return_relaxed | 495 | #ifndef atomic_dec_return_relaxed |
| 447 | #ifdef atomic_dec_return | 496 | #ifdef atomic_dec_return |
| 448 | #define atomic_dec_return_acquire atomic_dec_return | 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 | #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_relaxed | 581 | #ifndef atomic_fetch_dec_relaxed |
| 528 | #ifdef atomic_fetch_dec | 582 | #ifdef atomic_fetch_dec |
| 529 | #define atomic_fetch_dec_acquire atomic_fetch_dec | 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 | #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_relaxed | 669 | #ifndef atomic_fetch_and_relaxed |
| 609 | #define atomic_fetch_and_acquire atomic_fetch_and | 670 | #define atomic_fetch_and_acquire atomic_fetch_and |
| 610 | #define atomic_fetch_and_release atomic_fetch_and | 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 | #endif /* atomic_fetch_and_relaxed */ | 709 | #endif /* atomic_fetch_and_relaxed */ |
| 649 | 710 | ||
| 711 | #define arch_atomic_andnot atomic_andnot | ||
| 712 | |||
| 650 | #ifndef atomic_andnot | 713 | #ifndef atomic_andnot |
| 651 | static __always_inline void | 714 | static __always_inline void |
| 652 | atomic_andnot(int i, atomic_t *v) | 715 | atomic_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_andnot | 719 | #define atomic_andnot atomic_andnot |
| 657 | #endif | 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 | #ifndef atomic_fetch_andnot_relaxed | 727 | #ifndef atomic_fetch_andnot_relaxed |
| 660 | #ifdef atomic_fetch_andnot | 728 | #ifdef atomic_fetch_andnot |
| 661 | #define atomic_fetch_andnot_acquire atomic_fetch_andnot | 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 | #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_relaxed | 815 | #ifndef atomic_fetch_or_relaxed |
| 741 | #define atomic_fetch_or_acquire atomic_fetch_or | 816 | #define atomic_fetch_or_acquire atomic_fetch_or |
| 742 | #define atomic_fetch_or_release atomic_fetch_or | 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 | #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_relaxed | 864 | #ifndef atomic_fetch_xor_relaxed |
| 783 | #define atomic_fetch_xor_acquire atomic_fetch_xor | 865 | #define atomic_fetch_xor_acquire atomic_fetch_xor |
| 784 | #define atomic_fetch_xor_release atomic_fetch_xor | 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 | #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_relaxed | 911 | #ifndef atomic_xchg_relaxed |
| 825 | #define atomic_xchg_acquire atomic_xchg | 912 | #define atomic_xchg_acquire atomic_xchg |
| 826 | #define atomic_xchg_release atomic_xchg | 913 | #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_relaxed | 958 | #ifndef atomic_cmpxchg_relaxed |
| 867 | #define atomic_cmpxchg_acquire atomic_cmpxchg | 959 | #define atomic_cmpxchg_acquire atomic_cmpxchg |
| 868 | #define atomic_cmpxchg_release atomic_cmpxchg | 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 | #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_relaxed | 1005 | #ifndef atomic_try_cmpxchg_relaxed |
| 909 | #ifdef atomic_try_cmpxchg | 1006 | #ifdef atomic_try_cmpxchg |
| 910 | #define atomic_try_cmpxchg_acquire atomic_try_cmpxchg | 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 | #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_test | 1104 | #ifndef atomic_sub_and_test |
| 1006 | /** | 1105 | /** |
| 1007 | * atomic_sub_and_test - subtract value from variable and test result | 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 | #define atomic_sub_and_test atomic_sub_and_test | 1119 | #define atomic_sub_and_test atomic_sub_and_test |
| 1021 | #endif | 1120 | #endif |
| 1022 | 1121 | ||
| 1122 | #define arch_atomic_dec_and_test atomic_dec_and_test | ||
| 1123 | |||
| 1023 | #ifndef atomic_dec_and_test | 1124 | #ifndef atomic_dec_and_test |
| 1024 | /** | 1125 | /** |
| 1025 | * atomic_dec_and_test - decrement and test | 1126 | * 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_test | 1138 | #define atomic_dec_and_test atomic_dec_and_test |
| 1038 | #endif | 1139 | #endif |
| 1039 | 1140 | ||
| 1141 | #define arch_atomic_inc_and_test atomic_inc_and_test | ||
| 1142 | |||
| 1040 | #ifndef atomic_inc_and_test | 1143 | #ifndef atomic_inc_and_test |
| 1041 | /** | 1144 | /** |
| 1042 | * atomic_inc_and_test - increment and test | 1145 | * 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_test | 1157 | #define atomic_inc_and_test atomic_inc_and_test |
| 1055 | #endif | 1158 | #endif |
| 1056 | 1159 | ||
| 1160 | #define arch_atomic_add_negative atomic_add_negative | ||
| 1161 | |||
| 1057 | #ifndef atomic_add_negative | 1162 | #ifndef atomic_add_negative |
| 1058 | /** | 1163 | /** |
| 1059 | * atomic_add_negative - add and test if negative | 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 | #define atomic_add_negative atomic_add_negative | 1177 | #define atomic_add_negative atomic_add_negative |
| 1073 | #endif | 1178 | #endif |
| 1074 | 1179 | ||
| 1180 | #define arch_atomic_fetch_add_unless atomic_fetch_add_unless | ||
| 1181 | |||
| 1075 | #ifndef atomic_fetch_add_unless | 1182 | #ifndef atomic_fetch_add_unless |
| 1076 | /** | 1183 | /** |
| 1077 | * atomic_fetch_add_unless - add unless the number is already a given value | 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 | #define atomic_fetch_add_unless atomic_fetch_add_unless | 1204 | #define atomic_fetch_add_unless atomic_fetch_add_unless |
| 1098 | #endif | 1205 | #endif |
| 1099 | 1206 | ||
| 1207 | #define arch_atomic_add_unless atomic_add_unless | ||
| 1208 | |||
| 1100 | #ifndef atomic_add_unless | 1209 | #ifndef atomic_add_unless |
| 1101 | /** | 1210 | /** |
| 1102 | * atomic_add_unless - add unless the number is already a given value | 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 | #define atomic_add_unless atomic_add_unless | 1224 | #define atomic_add_unless atomic_add_unless |
| 1116 | #endif | 1225 | #endif |
| 1117 | 1226 | ||
| 1227 | #define arch_atomic_inc_not_zero atomic_inc_not_zero | ||
| 1228 | |||
| 1118 | #ifndef atomic_inc_not_zero | 1229 | #ifndef atomic_inc_not_zero |
| 1119 | /** | 1230 | /** |
| 1120 | * atomic_inc_not_zero - increment unless the number is zero | 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 | #define atomic_inc_not_zero atomic_inc_not_zero | 1242 | #define atomic_inc_not_zero atomic_inc_not_zero |
| 1132 | #endif | 1243 | #endif |
| 1133 | 1244 | ||
| 1245 | #define arch_atomic_inc_unless_negative atomic_inc_unless_negative | ||
| 1246 | |||
| 1134 | #ifndef atomic_inc_unless_negative | 1247 | #ifndef atomic_inc_unless_negative |
| 1135 | static __always_inline bool | 1248 | static __always_inline bool |
| 1136 | atomic_inc_unless_negative(atomic_t *v) | 1249 | atomic_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_negative | 1260 | #define atomic_inc_unless_negative atomic_inc_unless_negative |
| 1148 | #endif | 1261 | #endif |
| 1149 | 1262 | ||
| 1263 | #define arch_atomic_dec_unless_positive atomic_dec_unless_positive | ||
| 1264 | |||
| 1150 | #ifndef atomic_dec_unless_positive | 1265 | #ifndef atomic_dec_unless_positive |
| 1151 | static __always_inline bool | 1266 | static __always_inline bool |
| 1152 | atomic_dec_unless_positive(atomic_t *v) | 1267 | atomic_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_positive | 1278 | #define atomic_dec_unless_positive atomic_dec_unless_positive |
| 1164 | #endif | 1279 | #endif |
| 1165 | 1280 | ||
| 1281 | #define arch_atomic_dec_if_positive atomic_dec_if_positive | ||
| 1282 | |||
| 1166 | #ifndef atomic_dec_if_positive | 1283 | #ifndef atomic_dec_if_positive |
| 1167 | static __always_inline int | 1284 | static __always_inline int |
| 1168 | atomic_dec_if_positive(atomic_t *v) | 1285 | atomic_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 | #endif | 1302 | #endif |
| 1186 | 1303 | ||
| 1304 | #define arch_atomic64_read atomic64_read | ||
| 1305 | #define arch_atomic64_read_acquire atomic64_read_acquire | ||
| 1306 | |||
| 1187 | #ifndef atomic64_read_acquire | 1307 | #ifndef atomic64_read_acquire |
| 1188 | static __always_inline s64 | 1308 | static __always_inline s64 |
| 1189 | atomic64_read_acquire(const atomic64_t *v) | 1309 | atomic64_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_acquire | 1313 | #define atomic64_read_acquire atomic64_read_acquire |
| 1194 | #endif | 1314 | #endif |
| 1195 | 1315 | ||
| 1316 | #define arch_atomic64_set atomic64_set | ||
| 1317 | #define arch_atomic64_set_release atomic64_set_release | ||
| 1318 | |||
| 1196 | #ifndef atomic64_set_release | 1319 | #ifndef atomic64_set_release |
| 1197 | static __always_inline void | 1320 | static __always_inline void |
| 1198 | atomic64_set_release(atomic64_t *v, s64 i) | 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 | #define atomic64_set_release atomic64_set_release | 1325 | #define atomic64_set_release atomic64_set_release |
| 1203 | #endif | 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 | #ifndef atomic64_add_return_relaxed | 1335 | #ifndef atomic64_add_return_relaxed |
| 1206 | #define atomic64_add_return_acquire atomic64_add_return | 1336 | #define atomic64_add_return_acquire atomic64_add_return |
| 1207 | #define atomic64_add_return_release atomic64_add_return | 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 | #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_relaxed | 1382 | #ifndef atomic64_fetch_add_relaxed |
| 1248 | #define atomic64_fetch_add_acquire atomic64_fetch_add | 1383 | #define atomic64_fetch_add_acquire atomic64_fetch_add |
| 1249 | #define atomic64_fetch_add_release atomic64_fetch_add | 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 | #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_relaxed | 1431 | #ifndef atomic64_sub_return_relaxed |
| 1290 | #define atomic64_sub_return_acquire atomic64_sub_return | 1432 | #define atomic64_sub_return_acquire atomic64_sub_return |
| 1291 | #define atomic64_sub_return_release atomic64_sub_return | 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 | #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_relaxed | 1478 | #ifndef atomic64_fetch_sub_relaxed |
| 1332 | #define atomic64_fetch_sub_acquire atomic64_fetch_sub | 1479 | #define atomic64_fetch_sub_acquire atomic64_fetch_sub |
| 1333 | #define atomic64_fetch_sub_release atomic64_fetch_sub | 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 | #endif /* atomic64_fetch_sub_relaxed */ | 1518 | #endif /* atomic64_fetch_sub_relaxed */ |
| 1372 | 1519 | ||
| 1520 | #define arch_atomic64_inc atomic64_inc | ||
| 1521 | |||
| 1373 | #ifndef atomic64_inc | 1522 | #ifndef atomic64_inc |
| 1374 | static __always_inline void | 1523 | static __always_inline void |
| 1375 | atomic64_inc(atomic64_t *v) | 1524 | atomic64_inc(atomic64_t *v) |
| @@ -1379,6 +1528,11 @@ atomic64_inc(atomic64_t *v) · 3 unmodified lines | |||
| 1379 | #define atomic64_inc atomic64_inc | 1528 | #define atomic64_inc atomic64_inc |
| 1380 | #endif | 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 | #ifndef atomic64_inc_return_relaxed | 1536 | #ifndef atomic64_inc_return_relaxed |
| 1383 | #ifdef atomic64_inc_return | 1537 | #ifdef atomic64_inc_return |
| 1384 | #define atomic64_inc_return_acquire atomic64_inc_return | 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 | #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_relaxed | 1622 | #ifndef atomic64_fetch_inc_relaxed |
| 1464 | #ifdef atomic64_fetch_inc | 1623 | #ifdef atomic64_fetch_inc |
| 1465 | #define atomic64_fetch_inc_acquire atomic64_fetch_inc | 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 | #endif /* atomic64_fetch_inc_relaxed */ | 1701 | #endif /* atomic64_fetch_inc_relaxed */ |
| 1543 | 1702 | ||
| 1703 | #define arch_atomic64_dec atomic64_dec | ||
| 1704 | |||
| 1544 | #ifndef atomic64_dec | 1705 | #ifndef atomic64_dec |
| 1545 | static __always_inline void | 1706 | static __always_inline void |
| 1546 | atomic64_dec(atomic64_t *v) | 1707 | atomic64_dec(atomic64_t *v) |
| @@ -1550,6 +1711,11 @@ atomic64_dec(atomic64_t *v) · 3 unmodified lines | |||
| 1550 | #define atomic64_dec atomic64_dec | 1711 | #define atomic64_dec atomic64_dec |
| 1551 | #endif | 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 | #ifndef atomic64_dec_return_relaxed | 1719 | #ifndef atomic64_dec_return_relaxed |
| 1554 | #ifdef atomic64_dec_return | 1720 | #ifdef atomic64_dec_return |
| 1555 | #define atomic64_dec_return_acquire atomic64_dec_return | 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 | #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_relaxed | 1805 | #ifndef atomic64_fetch_dec_relaxed |
| 1635 | #ifdef atomic64_fetch_dec | 1806 | #ifdef atomic64_fetch_dec |
| 1636 | #define atomic64_fetch_dec_acquire atomic64_fetch_dec | 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 | #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_relaxed | 1893 | #ifndef atomic64_fetch_and_relaxed |
| 1716 | #define atomic64_fetch_and_acquire atomic64_fetch_and | 1894 | #define atomic64_fetch_and_acquire atomic64_fetch_and |
| 1717 | #define atomic64_fetch_and_release atomic64_fetch_and | 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 | #endif /* atomic64_fetch_and_relaxed */ | 1933 | #endif /* atomic64_fetch_and_relaxed */ |
| 1756 | 1934 | ||
| 1935 | #define arch_atomic64_andnot atomic64_andnot | ||
| 1936 | |||
| 1757 | #ifndef atomic64_andnot | 1937 | #ifndef atomic64_andnot |
| 1758 | static __always_inline void | 1938 | static __always_inline void |
| 1759 | atomic64_andnot(s64 i, atomic64_t *v) | 1939 | atomic64_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_andnot | 1943 | #define atomic64_andnot atomic64_andnot |
| 1764 | #endif | 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 | #ifndef atomic64_fetch_andnot_relaxed | 1951 | #ifndef atomic64_fetch_andnot_relaxed |
| 1767 | #ifdef atomic64_fetch_andnot | 1952 | #ifdef atomic64_fetch_andnot |
| 1768 | #define atomic64_fetch_andnot_acquire atomic64_fetch_andnot | 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 | #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_relaxed | 2039 | #ifndef atomic64_fetch_or_relaxed |
| 1848 | #define atomic64_fetch_or_acquire atomic64_fetch_or | 2040 | #define atomic64_fetch_or_acquire atomic64_fetch_or |
| 1849 | #define atomic64_fetch_or_release atomic64_fetch_or | 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 | #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_relaxed | 2088 | #ifndef atomic64_fetch_xor_relaxed |
| 1890 | #define atomic64_fetch_xor_acquire atomic64_fetch_xor | 2089 | #define atomic64_fetch_xor_acquire atomic64_fetch_xor |
| 1891 | #define atomic64_fetch_xor_release atomic64_fetch_xor | 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 | #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_relaxed | 2135 | #ifndef atomic64_xchg_relaxed |
| 1932 | #define atomic64_xchg_acquire atomic64_xchg | 2136 | #define atomic64_xchg_acquire atomic64_xchg |
| 1933 | #define atomic64_xchg_release atomic64_xchg | 2137 | #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_relaxed | 2182 | #ifndef atomic64_cmpxchg_relaxed |
| 1974 | #define atomic64_cmpxchg_acquire atomic64_cmpxchg | 2183 | #define atomic64_cmpxchg_acquire atomic64_cmpxchg |
| 1975 | #define atomic64_cmpxchg_release atomic64_cmpxchg | 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 | #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_relaxed | 2229 | #ifndef atomic64_try_cmpxchg_relaxed |
| 2016 | #ifdef atomic64_try_cmpxchg | 2230 | #ifdef atomic64_try_cmpxchg |
| 2017 | #define atomic64_try_cmpxchg_acquire atomic64_try_cmpxchg | 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 | #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_test | 2328 | #ifndef atomic64_sub_and_test |
| 2113 | /** | 2329 | /** |
| 2114 | * atomic64_sub_and_test - subtract value from variable and test result | 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 | #define atomic64_sub_and_test atomic64_sub_and_test | 2343 | #define atomic64_sub_and_test atomic64_sub_and_test |
| 2128 | #endif | 2344 | #endif |
| 2129 | 2345 | ||
| 2346 | #define arch_atomic64_dec_and_test atomic64_dec_and_test | ||
| 2347 | |||
| 2130 | #ifndef atomic64_dec_and_test | 2348 | #ifndef atomic64_dec_and_test |
| 2131 | /** | 2349 | /** |
| 2132 | * atomic64_dec_and_test - decrement and test | 2350 | * 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_test | 2362 | #define atomic64_dec_and_test atomic64_dec_and_test |
| 2145 | #endif | 2363 | #endif |
| 2146 | 2364 | ||
| 2365 | #define arch_atomic64_inc_and_test atomic64_inc_and_test | ||
| 2366 | |||
| 2147 | #ifndef atomic64_inc_and_test | 2367 | #ifndef atomic64_inc_and_test |
| 2148 | /** | 2368 | /** |
| 2149 | * atomic64_inc_and_test - increment and test | 2369 | * 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_test | 2381 | #define atomic64_inc_and_test atomic64_inc_and_test |
| 2162 | #endif | 2382 | #endif |
| 2163 | 2383 | ||
| 2384 | #define arch_atomic64_add_negative atomic64_add_negative | ||
| 2385 | |||
| 2164 | #ifndef atomic64_add_negative | 2386 | #ifndef atomic64_add_negative |
| 2165 | /** | 2387 | /** |
| 2166 | * atomic64_add_negative - add and test if negative | 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 | #define atomic64_add_negative atomic64_add_negative | 2401 | #define atomic64_add_negative atomic64_add_negative |
| 2180 | #endif | 2402 | #endif |
| 2181 | 2403 | ||
| 2404 | #define arch_atomic64_fetch_add_unless atomic64_fetch_add_unless | ||
| 2405 | |||
| 2182 | #ifndef atomic64_fetch_add_unless | 2406 | #ifndef atomic64_fetch_add_unless |
| 2183 | /** | 2407 | /** |
| 2184 | * atomic64_fetch_add_unless - add unless the number is already a given value | 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 | #define atomic64_fetch_add_unless atomic64_fetch_add_unless | 2428 | #define atomic64_fetch_add_unless atomic64_fetch_add_unless |
| 2205 | #endif | 2429 | #endif |
| 2206 | 2430 | ||
| 2431 | #define arch_atomic64_add_unless atomic64_add_unless | ||
| 2432 | |||
| 2207 | #ifndef atomic64_add_unless | 2433 | #ifndef atomic64_add_unless |
| 2208 | /** | 2434 | /** |
| 2209 | * atomic64_add_unless - add unless the number is already a given value | 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 | #define atomic64_add_unless atomic64_add_unless | 2448 | #define atomic64_add_unless atomic64_add_unless |
| 2223 | #endif | 2449 | #endif |
| 2224 | 2450 | ||
| 2451 | #define arch_atomic64_inc_not_zero atomic64_inc_not_zero | ||
| 2452 | |||
| 2225 | #ifndef atomic64_inc_not_zero | 2453 | #ifndef atomic64_inc_not_zero |
| 2226 | /** | 2454 | /** |
| 2227 | * atomic64_inc_not_zero - increment unless the number is zero | 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 | #define atomic64_inc_not_zero atomic64_inc_not_zero | 2466 | #define atomic64_inc_not_zero atomic64_inc_not_zero |
| 2239 | #endif | 2467 | #endif |
| 2240 | 2468 | ||
| 2469 | #define arch_atomic64_inc_unless_negative atomic64_inc_unless_negative | ||
| 2470 | |||
| 2241 | #ifndef atomic64_inc_unless_negative | 2471 | #ifndef atomic64_inc_unless_negative |
| 2242 | static __always_inline bool | 2472 | static __always_inline bool |
| 2243 | atomic64_inc_unless_negative(atomic64_t *v) | 2473 | atomic64_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_negative | 2484 | #define atomic64_inc_unless_negative atomic64_inc_unless_negative |
| 2255 | #endif | 2485 | #endif |
| 2256 | 2486 | ||
| 2487 | #define arch_atomic64_dec_unless_positive atomic64_dec_unless_positive | ||
| 2488 | |||
| 2257 | #ifndef atomic64_dec_unless_positive | 2489 | #ifndef atomic64_dec_unless_positive |
| 2258 | static __always_inline bool | 2490 | static __always_inline bool |
| 2259 | atomic64_dec_unless_positive(atomic64_t *v) | 2491 | atomic64_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_positive | 2502 | #define atomic64_dec_unless_positive atomic64_dec_unless_positive |
| 2271 | #endif | 2503 | #endif |
| 2272 | 2504 | ||
| 2505 | #define arch_atomic64_dec_if_positive atomic64_dec_if_positive | ||
| 2506 | |||
| 2273 | #ifndef atomic64_dec_if_positive | 2507 | #ifndef atomic64_dec_if_positive |
| 2274 | static __always_inline s64 | 2508 | static __always_inline s64 |
| 2275 | atomic64_dec_if_positive(atomic64_t *v) | 2509 | atomic64_dec_if_positive(atomic64_t *v) |
| @@ -2288,4 +2522,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 12 unmodified lines | |||
| 2288 | #endif | 2522 | #endif |
| 2289 | 2523 | ||
| 2290 | #endif /* _LINUX_ATOMIC_FALLBACK_H */ | 2524 | #endif /* _LINUX_ATOMIC_FALLBACK_H */ |
| 2291 | // 1fac0941c79bf0ae100723cc2ac9b94061f0b67a | 2525 | // 9d95b56f98d82a2a26c7b79ccdd0c47572d50a6f |
| @@ -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 */ |
| @@ -34,7 +34,7 @@ · 33 unmodified lines | |||
| 34 | struct can_skb_priv { | 34 | struct 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 | ||
| 40 | static inline struct can_skb_priv *can_skb_prv(struct sk_buff *skb) | 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 | 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 and | 42 | /* NOTE: cb710_chip.slots is modified only during device init/exit and |
| @@ -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 need | 58 | * 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) |
| @@ -33,6 +33,14 @@ · 32 unmodified lines | |||
| 33 | #define __no_sanitize_thread | 33 | #define __no_sanitize_thread |
| 34 | #endif | 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 | * Not all versions of clang implement the the type-generic versions | 45 | * Not all versions of clang implement the the type-generic versions |
| 38 | * of the builtin overflow checkers. Fortunately, clang implements | 46 | * of the builtin overflow checkers. Fortunately, clang implements |
| @@ -150,6 +150,12 @@ · 149 unmodified lines | |||
| 150 | #define __no_sanitize_thread | 150 | #define __no_sanitize_thread |
| 151 | #endif | 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 | #if GCC_VERSION >= 50100 | 159 | #if GCC_VERSION >= 50100 |
| 154 | #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1 | 160 | #define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1 |
| 155 | #endif | 161 | #endif |
| @@ -123,7 +123,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val, · 122 unmodified lines | |||
| 123 | #ifdef CONFIG_DEBUG_ENTRY | 123 | #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__)); \ |
| @@ -40,6 +40,7 @@ · 39 unmodified lines | |||
| 40 | # define __GCC4_has_attribute___noclone__ 1 | 40 | # define __GCC4_has_attribute___noclone__ 1 |
| 41 | # define __GCC4_has_attribute___nonstring__ 0 | 41 | # 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__ 0 | 44 | # define __GCC4_has_attribute___fallthrough__ 0 |
| 44 | #endif | 45 | #endif |
| 45 | 46 | ||
| @@ -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)) |
| 23 | extern void __chk_user_ptr(const volatile void __user *); | 23 | extern void __chk_user_ptr(const volatile void __user *); |
| 24 | extern void __chk_io_ptr(const volatile void __iomem *); | 24 | extern 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 | #endif | 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 | * 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 without | 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 | #define __no_kcsan __no_sanitize_thread | 190 | #define __no_kcsan __no_sanitize_thread |
| 195 | #ifdef __SANITIZE_THREAD__ | 191 | #ifdef __SANITIZE_THREAD__ |
| 196 | # define __no_kcsan_or_inline __no_kcsan notrace __maybe_unused | 192 | # 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 | #endif | 193 | #endif |
| 201 | 194 | ||
| 202 | #ifndef __no_sanitize_or_inline | 195 | #ifndef __no_sanitize_or_inline |
| 203 | #define __no_sanitize_or_inline __always_inline | 196 | #define __no_sanitize_or_inline __always_inline |
| 204 | #endif | 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 | #endif /* __KERNEL__ */ | 204 | #endif /* __KERNEL__ */ |
| 207 | 205 | ||
| 208 | #endif /* __ASSEMBLY__ */ | 206 | #endif /* __ASSEMBLY__ */ |
| @@ -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); |
| 78 | void dma_direct_free_pages(struct device *dev, size_t size, void *cpu_addr, | 78 | void 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); |
| 80 | struct page *__dma_direct_alloc_pages(struct device *dev, size_t size, | ||
| 81 | gfp_t gfp, unsigned long attrs); | ||
| 82 | int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt, | 80 | int 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); |
| @@ -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 | ||
| 541 | struct dma_async_tx_descriptor; | 541 | struct dma_async_tx_descriptor; |
| @@ -350,6 +350,7 @@ void efi_native_runtime_setup(void); · 349 unmodified lines | |||
| 350 | * associated with ConOut | 350 | * 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 | ||
| 1248 | void __init efi_arch_mem_reserve(phys_addr_t addr, u64 size); | 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 | extern void invalidate_bdev(struct block_device *); | 2592 | extern void invalidate_bdev(struct block_device *); |
| 2593 | extern void iterate_bdevs(void (*)(struct block_device *, void *), void *); | 2593 | extern void iterate_bdevs(void (*)(struct block_device *, void *), void *); |
| 2594 | extern int sync_blockdev(struct block_device *bdev); | 2594 | extern int sync_blockdev(struct block_device *bdev); |
| 2595 | extern void kill_bdev(struct block_device *); | ||
| 2596 | extern struct super_block *freeze_bdev(struct block_device *); | 2595 | extern struct super_block *freeze_bdev(struct block_device *); |
| 2597 | extern void emergency_thaw_all(void); | 2596 | extern void emergency_thaw_all(void); |
| 2598 | extern void emergency_thaw_bdev(struct super_block *sb); | 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 | #else | 2607 | #else |
| 2609 | static inline void bd_forget(struct inode *inode) {} | 2608 | static inline void bd_forget(struct inode *inode) {} |
| 2610 | static inline int sync_blockdev(struct block_device *bdev) { return 0; } | 2609 | static inline int sync_blockdev(struct block_device *bdev) { return 0; } |
| 2611 | static inline void kill_bdev(struct block_device *bdev) {} | ||
| 2612 | static inline void invalidate_bdev(struct block_device *bdev) {} | 2610 | static inline void invalidate_bdev(struct block_device *bdev) {} |
| 2613 | 2611 | ||
| 2614 | static inline struct super_block *freeze_bdev(struct block_device *sb) | 2612 | static inline struct super_block *freeze_bdev(struct block_device *sb) |
| @@ -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 | /* |
| @@ -48,6 +48,9 @@ struct host1x_client_ops { · 47 unmodified lines | |||
| 48 | * @channel: host1x channel associated with this client | 48 | * @channel: host1x channel associated with this client |
| 49 | * @syncpts: array of syncpoints requested for this client | 49 | * @syncpts: array of syncpoints requested for this client |
| 50 | * @num_syncpts: number of syncpoints requested for this client | 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 | struct host1x_client { | 55 | struct host1x_client { |
| 53 | struct list_head list; | 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 | * 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 | */ |
| 413 | struct i2c_board_info { | 413 | struct 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 board | 442 | /* |
| 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's | 444 | * 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 | */ |
| 446 | struct i2c_client * | ||
| 447 | i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info); | ||
| 448 | |||
| 449 | struct i2c_client * | 447 | struct i2c_client * |
| 450 | i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info); | 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 | #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) |
| @@ -2,7 +2,7 @@ · 1 unmodified line | |||
| 2 | #ifndef _LINUX_IRQ_WORK_H | 2 | #ifndef _LINUX_IRQ_WORK_H |
| 3 | #define _LINUX_IRQ_WORK_H | 3 | #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 claimed | 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 | struct irq_work { | 16 | struct 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 | ||
| @@ -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 file | 1252 | #define JBD2_ABORT_ON_SYNCDATA_ERR 0x040 /* Abort the journal on file |
| 1248 | * data write error in ordered | 1253 | * 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 buffer | 1257 | * Function declarations for the journaling transaction and buffer |
| @@ -208,7 +208,7 @@ struct crash_mem_range { · 207 unmodified lines | |||
| 208 | struct crash_mem { | 208 | struct 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 | ||
| 214 | extern int crash_exclude_mem_range(struct crash_mem *mem, | 214 | extern int crash_exclude_mem_range(struct crash_mem *mem, |
| @@ -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 work | 277 | * @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 is | 279 | * @cons: valid if the I/O device is a console; else NULL. |
| 280 | * not a console | ||
| 281 | */ | 280 | */ |
| 282 | struct kgdb_io { | 281 | struct 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 | ||
| 294 | extern const struct kgdb_arch arch_kgdb_ops; | 293 | extern const struct kgdb_arch arch_kgdb_ops; |
| @@ -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 | ||
| 167 | struct kretprobe_blackpoint { | 167 | struct 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 | ||
| 353 | extern struct kprobe kprobe_busy; | ||
| 354 | void kprobe_busy_begin(void); | ||
| 355 | void kprobe_busy_end(void); | ||
| 356 | |||
| 353 | kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset); | 357 | kprobe_opcode_t *kprobe_lookup_name(const char *name, unsigned int offset); |
| 354 | int register_kprobe(struct kprobe *p); | 358 | int register_kprobe(struct kprobe *p); |
| 355 | void unregister_kprobe(struct kprobe *p); | 359 | void unregister_kprobe(struct kprobe *p); |
| @@ -409,7 +409,7 @@ struct kvm_irq_routing_table { · 408 unmodified lines | |||
| 409 | * Array indexed by gsi. Each entry contains list of irq chips | 409 | * 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 | #endif | 414 | #endif |
| 415 | 415 | ||
| @@ -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_ standard | 28 | * 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 | ||
| 615 | struct ata_queued_cmd { | 616 | struct 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 | #endif | 1096 | #endif |
| 1094 | extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); | 1097 | extern int ata_scsi_queuecmd(struct Scsi_Host *h, struct scsi_cmnd *cmd); |
| 1098 | #if IS_REACHABLE(CONFIG_ATA) | ||
| 1095 | bool ata_scsi_dma_need_drain(struct request *rq); | 1099 | bool ata_scsi_dma_need_drain(struct request *rq); |
| 1100 | #else | ||
| 1101 | #define ata_scsi_dma_need_drain NULL | ||
| 1102 | #endif | ||
| 1096 | extern int ata_sas_scsi_ioctl(struct ata_port *ap, struct scsi_device *dev, | 1103 | extern 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); |
| 1098 | extern bool ata_link_online(struct ata_link *link); | 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 | size_t buffer_size) | 150 | size_t buffer_size) |
| 151 | LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid) | 151 | LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid) |
| 152 | LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new) | 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 | LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir, | 154 | LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir, |
| 155 | struct kernfs_node *kn) | 155 | struct kernfs_node *kn) |
| 156 | LSM_HOOK(int, 0, file_permission, struct file *file, int mask) | 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 | unsigned long flags) | 360 | unsigned long flags) |
| 361 | LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key) | 361 | LSM_HOOK(void, LSM_RET_VOID, key_free, struct key *key) |
| 362 | LSM_HOOK(int, 0, key_permission, key_ref_t key_ref, const struct cred *cred, | 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 | LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer) | 364 | LSM_HOOK(int, 0, key_getsecurity, struct key *key, char **_buffer) |
| 365 | #endif /* CONFIG_KEYS */ | 365 | #endif /* CONFIG_KEYS */ |
| 366 | 366 | ||
| @@ -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 | ||
| 4289 | struct mlx5_ifc_rst2init_qp_in_bits { | 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 | 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 | ||
| 6625 | struct mlx5_ifc_init2init_qp_in_bits { | 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 | 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 | ||
| @@ -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) */ |
| @@ -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 10 | 3160 | #define XMIT_RECURSION_LIMIT 8 |
| 3161 | static inline bool dev_xmit_recursion(void) | 3161 | static 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) > |
| @@ -25,6 +25,12 @@ · 24 unmodified lines | |||
| 25 | int ipt_register_table(struct net *net, const struct xt_table *table, | 25 | int 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 | |||
| 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 | void ipt_unregister_table(struct net *net, struct xt_table *table, | 34 | void 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 | ||
| @@ -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); |
| 30 | void ip6t_unregister_table(struct net *net, struct xt_table *table, | 30 | void ip6t_unregister_table(struct net *net, struct xt_table *table, |
| 31 | const struct nf_hook_ops *ops); | 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 | extern unsigned int ip6t_do_table(struct sk_buff *skb, | 35 | extern 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); |
| @@ -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 an | 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 | * 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 */ |
| @@ -2169,12 +2169,11 @@ static inline int pci_pcie_type(const struct pci_dev *dev) · 2168 unmodified lines | |||
| 2169 | */ | 2169 | */ |
| 2170 | static inline struct pci_dev *pcie_find_root_port(struct pci_dev *dev) | 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); | 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; |
| @@ -249,6 +249,13 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, · 248 unmodified lines | |||
| 249 | } | 249 | } |
| 250 | #endif | 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 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 259 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
| 253 | #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR | 260 | #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR |
| 254 | static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, | 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 | int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); | 1416 | int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); |
| 1417 | int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); | 1417 | int phy_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd); |
| 1418 | int phy_do_ioctl_running(struct net_device *dev, struct ifreq *ifr, int cmd); | 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 | void phy_request_interrupt(struct phy_device *phydev); | 1420 | void phy_request_interrupt(struct phy_device *phydev); |
| 1420 | void phy_free_interrupt(struct phy_device *phydev); | 1421 | void phy_free_interrupt(struct phy_device *phydev); |
| 1421 | void phy_print_status(struct phy_device *phydev); | 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 | int sev_guest_decommission(struct sev_data_decommission *data, int *error); | 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 | #else /* !CONFIG_CRYPTO_DEV_SP_PSP */ | 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 | static inline u16 qed_chain_get_elem_left(struct qed_chain *p_chain) | 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 | 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 | ||
| 222 | static inline u32 qed_chain_get_elem_left_u32(struct qed_chain *p_chain) | 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 | 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 | } |
| @@ -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_SLEEP | 117 | #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_SMP | 652 | #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_TASK | 655 | #ifdef CONFIG_THREAD_INFO_IN_TASK |
| 661 | /* Current CPU: */ | 656 | /* Current CPU: */ |
| 662 | unsigned int cpu; | 657 | unsigned int cpu; |
| @@ -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 | ||
| 35 | extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask); | 37 | extern bool task_set_jobctl_pending(struct task_struct *task, unsigned long mask); |
| 36 | extern void task_clear_jobctl_trapping(struct task_struct *task); | 38 | extern void task_clear_jobctl_trapping(struct task_struct *task); |
| @@ -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 | ||
| 227 | struct sctp_data_chunk { | 227 | struct 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 | ||
| 275 | struct sctp_init_chunk { | 275 | struct 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) */ |
| 300 | struct sctp_hostname_param { | 300 | struct 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) */ |
| 306 | struct sctp_supported_addrs_param { | 306 | struct 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 */ |
| 318 | struct sctp_supported_ext_param { | 318 | struct 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 */ |
| 324 | struct sctp_random_param { | 324 | struct 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 */ |
| 330 | struct sctp_chunks_param { | 330 | struct 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 */ |
| 336 | struct sctp_hmac_algo_param { | 336 | struct 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) */ |
| 351 | struct sctp_cookie_param { | 351 | struct 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 | ||
| 390 | struct sctp_sack_chunk { | 390 | struct sctp_sack_chunk { |
| @@ -436,7 +436,7 @@ struct sctp_shutdown_chunk { · 45 unmodified lines | |||
| 436 | struct sctp_errhdr { | 436 | struct 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 | ||
| 442 | struct sctp_operr_chunk { | 442 | struct sctp_operr_chunk { |
| @@ -594,7 +594,7 @@ struct sctp_fwdtsn_skip { · 151 unmodified lines | |||
| 594 | 594 | ||
| 595 | struct sctp_fwdtsn_hdr { | 595 | struct 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 | ||
| 600 | struct sctp_fwdtsn_chunk { | 600 | struct sctp_fwdtsn_chunk { |
| @@ -611,7 +611,7 @@ struct sctp_ifwdtsn_skip { · 10 unmodified lines | |||
| 611 | 611 | ||
| 612 | struct sctp_ifwdtsn_hdr { | 612 | struct 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 | ||
| 617 | struct sctp_ifwdtsn_chunk { | 617 | struct sctp_ifwdtsn_chunk { |
| @@ -658,7 +658,7 @@ struct sctp_addip_param { · 40 unmodified lines | |||
| 658 | 658 | ||
| 659 | struct sctp_addiphdr { | 659 | struct sctp_addiphdr { |
| 660 | __be32 serial; | 660 | __be32 serial; |
| 661 | __u8 params[0]; | 661 | __u8 params[]; |
| 662 | }; | 662 | }; |
| 663 | 663 | ||
| 664 | struct sctp_addip_chunk { | 664 | struct sctp_addip_chunk { |
| @@ -718,7 +718,7 @@ struct sctp_addip_chunk { · 53 unmodified lines | |||
| 718 | struct sctp_authhdr { | 718 | struct 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 | ||
| 724 | struct sctp_auth_chunk { | 724 | struct sctp_auth_chunk { |
| @@ -733,7 +733,7 @@ struct sctp_infox { · 8 unmodified lines | |||
| 733 | 733 | ||
| 734 | struct sctp_reconf_chunk { | 734 | struct 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 | ||
| 739 | struct sctp_strreset_outreq { | 739 | struct 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 | ||
| 747 | struct sctp_strreset_inreq { | 747 | struct 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 | ||
| 753 | struct sctp_strreset_tsnreq { | 753 | struct sctp_strreset_tsnreq { |
| @@ -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 | ||
| 17 | typedef void (*smp_call_func_t)(void *info); | 17 | typedef void (*smp_call_func_t)(void *info); |
| 18 | typedef bool (*smp_cond_func_t)(int cpu, void *info); | 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 | * structure shares (partial) layout with struct irq_work | 21 | * structure shares (partial) layout with struct irq_work |
| 34 | */ | 22 | */ |
| 35 | struct __call_single_data { | 23 | struct __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 | }; |
| @@ -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 | /* linux/mm/workingset.c */ | 315 | /* linux/mm/workingset.c */ |
| 316 | void workingset_age_nonresident(struct lruvec *lruvec, unsigned long nr_pages); | ||
| 316 | void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg); | 317 | void *workingset_eviction(struct page *page, struct mem_cgroup *target_memcg); |
| 317 | void workingset_refault(struct page *page, void *shadow); | 318 | void workingset_refault(struct page *page, void *shadow); |
| 318 | void workingset_activation(struct page *page); | 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 | extern long do_sys_ftruncate(unsigned int fd, loff_t length, int small); | 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 | return do_sys_ftruncate(fd, length, 1); | 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 | twork->func = func; | 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 | struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t); | 20 | struct callback_head *task_work_cancel(struct task_struct *, task_work_func_t); |
| 18 | void task_work_run(void); | 21 | void task_work_run(void); |
| 19 | 22 | ||
| @@ -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 | ||
| 130 | struct tifm_adapter *tifm_alloc_adapter(unsigned int num_sockets, | 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 | extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta); | 223 | extern void timekeeping_inject_sleeptime64(const struct timespec64 *delta); |
| 224 | 224 | ||
| 225 | /* | 225 | /** |
| 226 | * struct system_time_snapshot - simultaneous raw/real time capture with | 226 | * struct system_time_snapshot - simultaneous raw/real time capture with |
| 227 | * counter value | 227 | * counter value |
| 228 | * @cycles: Clocksource counter value to produce the system times | 228 | * @cycles: Clocksource counter value to produce the system times |
| 229 | * @real: Realtime system time | 229 | * @real: Realtime system time |
| 230 | * @raw: Monotonic raw system time | 230 | * @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-timestamp | 243 | * struct system_device_crosststamp - system/device cross-timestamp |
| 244 | * (syncronized capture) | 244 | * (synchronized capture) |
| 245 | * @device: Device time | 245 | * @device: Device time |
| 246 | * @sys_realtime: Realtime simultaneous with device time | 246 | * @sys_realtime: Realtime simultaneous with device time |
| 247 | * @sys_monoraw: Monotonic raw simultaneous with device time | 247 | * @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 the | 256 | * struct system_counterval_t - system counter value with the pointer to the |
| 257 | * corresponding clocksource | 257 | * corresponding clocksource |
| 258 | * @cycles: System counter value | 258 | * @cycles: System counter value |
| 259 | * @cs: Clocksource corresponding to system counter value. Used by | 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 | struct system_counterval_t { | 262 | struct system_counterval_t { |
| 263 | u64 cycles; | 263 | u64 cycles; |
| @@ -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 | |||
| 84 | struct tcg_efi_specid_event_head { | 86 | struct 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 | } |
| @@ -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 | ||
| 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); | 306 | long copy_from_kernel_nofault(void *dst, const void *src, size_t size); |
| 307 | extern long probe_user_read(void *dst, const void __user *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); | 309 | long copy_from_user_nofault(void *dst, const void __user *src, size_t size); |
| 310 | extern long notrace probe_user_write(void __user *dst, const void *src, size_t size); | 310 | long notrace copy_to_user_nofault(void __user *dst, const void *src, |
| 311 | size_t size); | ||
| 311 | 312 | ||
| 312 | long strncpy_from_kernel_nofault(char *dst, const void *unsafe_addr, | 313 | long 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 | |||
| 317 | long strnlen_user_nofault(const void __user *unsafe_addr, long count); | 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 | * get_kernel_nofault(): safely attempt to read from a location |
| 321 | * @addr: address to read from | 322 | * @val: read into this variable |
| 322 | * @retval: read into this variable | 323 | * @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_begin | 332 | #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) |
| @@ -106,7 +106,6 @@ extern void *vzalloc(unsigned long size); · 105 unmodified lines | |||
| 106 | extern void *vmalloc_user(unsigned long size); | 106 | extern void *vmalloc_user(unsigned long size); |
| 107 | extern void *vmalloc_node(unsigned long size, int node); | 107 | extern void *vmalloc_node(unsigned long size, int node); |
| 108 | extern void *vzalloc_node(unsigned long size, int node); | 108 | extern void *vzalloc_node(unsigned long size, int node); |
| 109 | extern void *vmalloc_exec(unsigned long size); | ||
| 110 | extern void *vmalloc_32(unsigned long size); | 109 | extern void *vmalloc_32(unsigned long size); |
| 111 | extern void *vmalloc_32_user(unsigned long size); | 110 | extern void *vmalloc_32_user(unsigned long size); |
| 112 | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask); | 111 | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask); |