Use __always_inline for atomic fallback wrappers. When building for size (CC_OPTIMIZE_FOR_SIZE), some compilers appear to be less inclined to inline even relatively small static inline functions that are assumed to be inlinable such as atomic ops. This can cause problems, for example in UACCESS regions. While the fallback wrappers aren't pure wrappers, they are trivial nonetheless, and the function they wrap should determine the final inlining policy. For x86 tinyconfig we observe: - vmlinux baseline: 1315988 - vmlinux with patch: 1315928 (-60 bytes)
Showing the changes to include/linux (1 of 21 files). Show all
Unified · Split
| @@ -6,6 +6,8 @@ · 5 unmodified lines | ||
| 6 | 6 | #ifndef _LINUX_ATOMIC_FALLBACK_H |
| 7 | 7 | #define _LINUX_ATOMIC_FALLBACK_H |
| 8 | 8 | |
| 9 | +#include <linux/compiler.h> | |
| 10 | + | |
| 9 | 11 | #ifndef xchg_relaxed |
| 10 | 12 | #define xchg_relaxed xchg |
| 11 | 13 | #define xchg_acquire xchg |
| @@ -76,7 +78,7 @@ · 64 unmodified lines | ||
| 76 | 78 | #endif /* cmpxchg64_relaxed */ |
| 77 | 79 | |
| 78 | 80 | #ifndef atomic_read_acquire |
| 79 | −static inline int | |
| 81 | +static __always_inline int | |
| 80 | 82 | atomic_read_acquire(const atomic_t *v) |
| 81 | 83 | { |
| 82 | 84 | return smp_load_acquire(&(v)->counter); |
| @@ -85,7 +87,7 @@ atomic_read_acquire(const atomic_t *v) · 2 unmodified lines | ||
| 85 | 87 | #endif |
| 86 | 88 | |
| 87 | 89 | #ifndef atomic_set_release |
| 88 | −static inline void | |
| 90 | +static __always_inline void | |
| 89 | 91 | atomic_set_release(atomic_t *v, int i) |
| 90 | 92 | { |
| 91 | 93 | smp_store_release(&(v)->counter, i); |
| @@ -100,7 +102,7 @@ atomic_set_release(atomic_t *v, int i) · 8 unmodified lines | ||
| 100 | 102 | #else /* atomic_add_return_relaxed */ |
| 101 | 103 | |
| 102 | 104 | #ifndef atomic_add_return_acquire |
| 103 | −static inline int | |
| 105 | +static __always_inline int | |
| 104 | 106 | atomic_add_return_acquire(int i, atomic_t *v) |
| 105 | 107 | { |
| 106 | 108 | int ret = atomic_add_return_relaxed(i, v); |
| @@ -111,7 +113,7 @@ atomic_add_return_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 111 | 113 | #endif |
| 112 | 114 | |
| 113 | 115 | #ifndef atomic_add_return_release |
| 114 | −static inline int | |
| 116 | +static __always_inline int | |
| 115 | 117 | atomic_add_return_release(int i, atomic_t *v) |
| 116 | 118 | { |
| 117 | 119 | __atomic_release_fence(); |
| @@ -121,7 +123,7 @@ atomic_add_return_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 121 | 123 | #endif |
| 122 | 124 | |
| 123 | 125 | #ifndef atomic_add_return |
| 124 | −static inline int | |
| 126 | +static __always_inline int | |
| 125 | 127 | atomic_add_return(int i, atomic_t *v) |
| 126 | 128 | { |
| 127 | 129 | int ret; |
| @@ -142,7 +144,7 @@ atomic_add_return(int i, atomic_t *v) · 14 unmodified lines | ||
| 142 | 144 | #else /* atomic_fetch_add_relaxed */ |
| 143 | 145 | |
| 144 | 146 | #ifndef atomic_fetch_add_acquire |
| 145 | −static inline int | |
| 147 | +static __always_inline int | |
| 146 | 148 | atomic_fetch_add_acquire(int i, atomic_t *v) |
| 147 | 149 | { |
| 148 | 150 | int ret = atomic_fetch_add_relaxed(i, v); |
| @@ -153,7 +155,7 @@ atomic_fetch_add_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 153 | 155 | #endif |
| 154 | 156 | |
| 155 | 157 | #ifndef atomic_fetch_add_release |
| 156 | −static inline int | |
| 158 | +static __always_inline int | |
| 157 | 159 | atomic_fetch_add_release(int i, atomic_t *v) |
| 158 | 160 | { |
| 159 | 161 | __atomic_release_fence(); |
| @@ -163,7 +165,7 @@ atomic_fetch_add_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 163 | 165 | #endif |
| 164 | 166 | |
| 165 | 167 | #ifndef atomic_fetch_add |
| 166 | −static inline int | |
| 168 | +static __always_inline int | |
| 167 | 169 | atomic_fetch_add(int i, atomic_t *v) |
| 168 | 170 | { |
| 169 | 171 | int ret; |
| @@ -184,7 +186,7 @@ atomic_fetch_add(int i, atomic_t *v) · 14 unmodified lines | ||
| 184 | 186 | #else /* atomic_sub_return_relaxed */ |
| 185 | 187 | |
| 186 | 188 | #ifndef atomic_sub_return_acquire |
| 187 | −static inline int | |
| 189 | +static __always_inline int | |
| 188 | 190 | atomic_sub_return_acquire(int i, atomic_t *v) |
| 189 | 191 | { |
| 190 | 192 | int ret = atomic_sub_return_relaxed(i, v); |
| @@ -195,7 +197,7 @@ atomic_sub_return_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 195 | 197 | #endif |
| 196 | 198 | |
| 197 | 199 | #ifndef atomic_sub_return_release |
| 198 | −static inline int | |
| 200 | +static __always_inline int | |
| 199 | 201 | atomic_sub_return_release(int i, atomic_t *v) |
| 200 | 202 | { |
| 201 | 203 | __atomic_release_fence(); |
| @@ -205,7 +207,7 @@ atomic_sub_return_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 205 | 207 | #endif |
| 206 | 208 | |
| 207 | 209 | #ifndef atomic_sub_return |
| 208 | −static inline int | |
| 210 | +static __always_inline int | |
| 209 | 211 | atomic_sub_return(int i, atomic_t *v) |
| 210 | 212 | { |
| 211 | 213 | int ret; |
| @@ -226,7 +228,7 @@ atomic_sub_return(int i, atomic_t *v) · 14 unmodified lines | ||
| 226 | 228 | #else /* atomic_fetch_sub_relaxed */ |
| 227 | 229 | |
| 228 | 230 | #ifndef atomic_fetch_sub_acquire |
| 229 | −static inline int | |
| 231 | +static __always_inline int | |
| 230 | 232 | atomic_fetch_sub_acquire(int i, atomic_t *v) |
| 231 | 233 | { |
| 232 | 234 | int ret = atomic_fetch_sub_relaxed(i, v); |
| @@ -237,7 +239,7 @@ atomic_fetch_sub_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 237 | 239 | #endif |
| 238 | 240 | |
| 239 | 241 | #ifndef atomic_fetch_sub_release |
| 240 | −static inline int | |
| 242 | +static __always_inline int | |
| 241 | 243 | atomic_fetch_sub_release(int i, atomic_t *v) |
| 242 | 244 | { |
| 243 | 245 | __atomic_release_fence(); |
| @@ -247,7 +249,7 @@ atomic_fetch_sub_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 247 | 249 | #endif |
| 248 | 250 | |
| 249 | 251 | #ifndef atomic_fetch_sub |
| 250 | −static inline int | |
| 252 | +static __always_inline int | |
| 251 | 253 | atomic_fetch_sub(int i, atomic_t *v) |
| 252 | 254 | { |
| 253 | 255 | int ret; |
| @@ -262,7 +264,7 @@ atomic_fetch_sub(int i, atomic_t *v) · 8 unmodified lines | ||
| 262 | 264 | #endif /* atomic_fetch_sub_relaxed */ |
| 263 | 265 | |
| 264 | 266 | #ifndef atomic_inc |
| 265 | −static inline void | |
| 267 | +static __always_inline void | |
| 266 | 268 | atomic_inc(atomic_t *v) |
| 267 | 269 | { |
| 268 | 270 | atomic_add(1, v); |
| @@ -278,7 +280,7 @@ atomic_inc(atomic_t *v) · 9 unmodified lines | ||
| 278 | 280 | #endif /* atomic_inc_return */ |
| 279 | 281 | |
| 280 | 282 | #ifndef atomic_inc_return |
| 281 | −static inline int | |
| 283 | +static __always_inline int | |
| 282 | 284 | atomic_inc_return(atomic_t *v) |
| 283 | 285 | { |
| 284 | 286 | return atomic_add_return(1, v); |
| @@ -287,7 +289,7 @@ atomic_inc_return(atomic_t *v) · 2 unmodified lines | ||
| 287 | 289 | #endif |
| 288 | 290 | |
| 289 | 291 | #ifndef atomic_inc_return_acquire |
| 290 | −static inline int | |
| 292 | +static __always_inline int | |
| 291 | 293 | atomic_inc_return_acquire(atomic_t *v) |
| 292 | 294 | { |
| 293 | 295 | return atomic_add_return_acquire(1, v); |
| @@ -296,7 +298,7 @@ atomic_inc_return_acquire(atomic_t *v) · 2 unmodified lines | ||
| 296 | 298 | #endif |
| 297 | 299 | |
| 298 | 300 | #ifndef atomic_inc_return_release |
| 299 | −static inline int | |
| 301 | +static __always_inline int | |
| 300 | 302 | atomic_inc_return_release(atomic_t *v) |
| 301 | 303 | { |
| 302 | 304 | return atomic_add_return_release(1, v); |
| @@ -305,7 +307,7 @@ atomic_inc_return_release(atomic_t *v) · 2 unmodified lines | ||
| 305 | 307 | #endif |
| 306 | 308 | |
| 307 | 309 | #ifndef atomic_inc_return_relaxed |
| 308 | −static inline int | |
| 310 | +static __always_inline int | |
| 309 | 311 | atomic_inc_return_relaxed(atomic_t *v) |
| 310 | 312 | { |
| 311 | 313 | return atomic_add_return_relaxed(1, v); |
| @@ -316,7 +318,7 @@ atomic_inc_return_relaxed(atomic_t *v) · 4 unmodified lines | ||
| 316 | 318 | #else /* atomic_inc_return_relaxed */ |
| 317 | 319 | |
| 318 | 320 | #ifndef atomic_inc_return_acquire |
| 319 | −static inline int | |
| 321 | +static __always_inline int | |
| 320 | 322 | atomic_inc_return_acquire(atomic_t *v) |
| 321 | 323 | { |
| 322 | 324 | int ret = atomic_inc_return_relaxed(v); |
| @@ -327,7 +329,7 @@ atomic_inc_return_acquire(atomic_t *v) · 4 unmodified lines | ||
| 327 | 329 | #endif |
| 328 | 330 | |
| 329 | 331 | #ifndef atomic_inc_return_release |
| 330 | −static inline int | |
| 332 | +static __always_inline int | |
| 331 | 333 | atomic_inc_return_release(atomic_t *v) |
| 332 | 334 | { |
| 333 | 335 | __atomic_release_fence(); |
| @@ -337,7 +339,7 @@ atomic_inc_return_release(atomic_t *v) · 3 unmodified lines | ||
| 337 | 339 | #endif |
| 338 | 340 | |
| 339 | 341 | #ifndef atomic_inc_return |
| 340 | −static inline int | |
| 342 | +static __always_inline int | |
| 341 | 343 | atomic_inc_return(atomic_t *v) |
| 342 | 344 | { |
| 343 | 345 | int ret; |
| @@ -359,7 +361,7 @@ atomic_inc_return(atomic_t *v) · 15 unmodified lines | ||
| 359 | 361 | #endif /* atomic_fetch_inc */ |
| 360 | 362 | |
| 361 | 363 | #ifndef atomic_fetch_inc |
| 362 | −static inline int | |
| 364 | +static __always_inline int | |
| 363 | 365 | atomic_fetch_inc(atomic_t *v) |
| 364 | 366 | { |
| 365 | 367 | return atomic_fetch_add(1, v); |
| @@ -368,7 +370,7 @@ atomic_fetch_inc(atomic_t *v) · 2 unmodified lines | ||
| 368 | 370 | #endif |
| 369 | 371 | |
| 370 | 372 | #ifndef atomic_fetch_inc_acquire |
| 371 | −static inline int | |
| 373 | +static __always_inline int | |
| 372 | 374 | atomic_fetch_inc_acquire(atomic_t *v) |
| 373 | 375 | { |
| 374 | 376 | return atomic_fetch_add_acquire(1, v); |
| @@ -377,7 +379,7 @@ atomic_fetch_inc_acquire(atomic_t *v) · 2 unmodified lines | ||
| 377 | 379 | #endif |
| 378 | 380 | |
| 379 | 381 | #ifndef atomic_fetch_inc_release |
| 380 | −static inline int | |
| 382 | +static __always_inline int | |
| 381 | 383 | atomic_fetch_inc_release(atomic_t *v) |
| 382 | 384 | { |
| 383 | 385 | return atomic_fetch_add_release(1, v); |
| @@ -386,7 +388,7 @@ atomic_fetch_inc_release(atomic_t *v) · 2 unmodified lines | ||
| 386 | 388 | #endif |
| 387 | 389 | |
| 388 | 390 | #ifndef atomic_fetch_inc_relaxed |
| 389 | −static inline int | |
| 391 | +static __always_inline int | |
| 390 | 392 | atomic_fetch_inc_relaxed(atomic_t *v) |
| 391 | 393 | { |
| 392 | 394 | return atomic_fetch_add_relaxed(1, v); |
| @@ -397,7 +399,7 @@ atomic_fetch_inc_relaxed(atomic_t *v) · 4 unmodified lines | ||
| 397 | 399 | #else /* atomic_fetch_inc_relaxed */ |
| 398 | 400 | |
| 399 | 401 | #ifndef atomic_fetch_inc_acquire |
| 400 | −static inline int | |
| 402 | +static __always_inline int | |
| 401 | 403 | atomic_fetch_inc_acquire(atomic_t *v) |
| 402 | 404 | { |
| 403 | 405 | int ret = atomic_fetch_inc_relaxed(v); |
| @@ -408,7 +410,7 @@ atomic_fetch_inc_acquire(atomic_t *v) · 4 unmodified lines | ||
| 408 | 410 | #endif |
| 409 | 411 | |
| 410 | 412 | #ifndef atomic_fetch_inc_release |
| 411 | −static inline int | |
| 413 | +static __always_inline int | |
| 412 | 414 | atomic_fetch_inc_release(atomic_t *v) |
| 413 | 415 | { |
| 414 | 416 | __atomic_release_fence(); |
| @@ -418,7 +420,7 @@ atomic_fetch_inc_release(atomic_t *v) · 3 unmodified lines | ||
| 418 | 420 | #endif |
| 419 | 421 | |
| 420 | 422 | #ifndef atomic_fetch_inc |
| 421 | −static inline int | |
| 423 | +static __always_inline int | |
| 422 | 424 | atomic_fetch_inc(atomic_t *v) |
| 423 | 425 | { |
| 424 | 426 | int ret; |
| @@ -433,7 +435,7 @@ atomic_fetch_inc(atomic_t *v) · 8 unmodified lines | ||
| 433 | 435 | #endif /* atomic_fetch_inc_relaxed */ |
| 434 | 436 | |
| 435 | 437 | #ifndef atomic_dec |
| 436 | −static inline void | |
| 438 | +static __always_inline void | |
| 437 | 439 | atomic_dec(atomic_t *v) |
| 438 | 440 | { |
| 439 | 441 | atomic_sub(1, v); |
| @@ -449,7 +451,7 @@ atomic_dec(atomic_t *v) · 9 unmodified lines | ||
| 449 | 451 | #endif /* atomic_dec_return */ |
| 450 | 452 | |
| 451 | 453 | #ifndef atomic_dec_return |
| 452 | −static inline int | |
| 454 | +static __always_inline int | |
| 453 | 455 | atomic_dec_return(atomic_t *v) |
| 454 | 456 | { |
| 455 | 457 | return atomic_sub_return(1, v); |
| @@ -458,7 +460,7 @@ atomic_dec_return(atomic_t *v) · 2 unmodified lines | ||
| 458 | 460 | #endif |
| 459 | 461 | |
| 460 | 462 | #ifndef atomic_dec_return_acquire |
| 461 | −static inline int | |
| 463 | +static __always_inline int | |
| 462 | 464 | atomic_dec_return_acquire(atomic_t *v) |
| 463 | 465 | { |
| 464 | 466 | return atomic_sub_return_acquire(1, v); |
| @@ -467,7 +469,7 @@ atomic_dec_return_acquire(atomic_t *v) · 2 unmodified lines | ||
| 467 | 469 | #endif |
| 468 | 470 | |
| 469 | 471 | #ifndef atomic_dec_return_release |
| 470 | −static inline int | |
| 472 | +static __always_inline int | |
| 471 | 473 | atomic_dec_return_release(atomic_t *v) |
| 472 | 474 | { |
| 473 | 475 | return atomic_sub_return_release(1, v); |
| @@ -476,7 +478,7 @@ atomic_dec_return_release(atomic_t *v) · 2 unmodified lines | ||
| 476 | 478 | #endif |
| 477 | 479 | |
| 478 | 480 | #ifndef atomic_dec_return_relaxed |
| 479 | −static inline int | |
| 481 | +static __always_inline int | |
| 480 | 482 | atomic_dec_return_relaxed(atomic_t *v) |
| 481 | 483 | { |
| 482 | 484 | return atomic_sub_return_relaxed(1, v); |
| @@ -487,7 +489,7 @@ atomic_dec_return_relaxed(atomic_t *v) · 4 unmodified lines | ||
| 487 | 489 | #else /* atomic_dec_return_relaxed */ |
| 488 | 490 | |
| 489 | 491 | #ifndef atomic_dec_return_acquire |
| 490 | −static inline int | |
| 492 | +static __always_inline int | |
| 491 | 493 | atomic_dec_return_acquire(atomic_t *v) |
| 492 | 494 | { |
| 493 | 495 | int ret = atomic_dec_return_relaxed(v); |
| @@ -498,7 +500,7 @@ atomic_dec_return_acquire(atomic_t *v) · 4 unmodified lines | ||
| 498 | 500 | #endif |
| 499 | 501 | |
| 500 | 502 | #ifndef atomic_dec_return_release |
| 501 | −static inline int | |
| 503 | +static __always_inline int | |
| 502 | 504 | atomic_dec_return_release(atomic_t *v) |
| 503 | 505 | { |
| 504 | 506 | __atomic_release_fence(); |
| @@ -508,7 +510,7 @@ atomic_dec_return_release(atomic_t *v) · 3 unmodified lines | ||
| 508 | 510 | #endif |
| 509 | 511 | |
| 510 | 512 | #ifndef atomic_dec_return |
| 511 | −static inline int | |
| 513 | +static __always_inline int | |
| 512 | 514 | atomic_dec_return(atomic_t *v) |
| 513 | 515 | { |
| 514 | 516 | int ret; |
| @@ -530,7 +532,7 @@ atomic_dec_return(atomic_t *v) · 15 unmodified lines | ||
| 530 | 532 | #endif /* atomic_fetch_dec */ |
| 531 | 533 | |
| 532 | 534 | #ifndef atomic_fetch_dec |
| 533 | −static inline int | |
| 535 | +static __always_inline int | |
| 534 | 536 | atomic_fetch_dec(atomic_t *v) |
| 535 | 537 | { |
| 536 | 538 | return atomic_fetch_sub(1, v); |
| @@ -539,7 +541,7 @@ atomic_fetch_dec(atomic_t *v) · 2 unmodified lines | ||
| 539 | 541 | #endif |
| 540 | 542 | |
| 541 | 543 | #ifndef atomic_fetch_dec_acquire |
| 542 | −static inline int | |
| 544 | +static __always_inline int | |
| 543 | 545 | atomic_fetch_dec_acquire(atomic_t *v) |
| 544 | 546 | { |
| 545 | 547 | return atomic_fetch_sub_acquire(1, v); |
| @@ -548,7 +550,7 @@ atomic_fetch_dec_acquire(atomic_t *v) · 2 unmodified lines | ||
| 548 | 550 | #endif |
| 549 | 551 | |
| 550 | 552 | #ifndef atomic_fetch_dec_release |
| 551 | −static inline int | |
| 553 | +static __always_inline int | |
| 552 | 554 | atomic_fetch_dec_release(atomic_t *v) |
| 553 | 555 | { |
| 554 | 556 | return atomic_fetch_sub_release(1, v); |
| @@ -557,7 +559,7 @@ atomic_fetch_dec_release(atomic_t *v) · 2 unmodified lines | ||
| 557 | 559 | #endif |
| 558 | 560 | |
| 559 | 561 | #ifndef atomic_fetch_dec_relaxed |
| 560 | −static inline int | |
| 562 | +static __always_inline int | |
| 561 | 563 | atomic_fetch_dec_relaxed(atomic_t *v) |
| 562 | 564 | { |
| 563 | 565 | return atomic_fetch_sub_relaxed(1, v); |
| @@ -568,7 +570,7 @@ atomic_fetch_dec_relaxed(atomic_t *v) · 4 unmodified lines | ||
| 568 | 570 | #else /* atomic_fetch_dec_relaxed */ |
| 569 | 571 | |
| 570 | 572 | #ifndef atomic_fetch_dec_acquire |
| 571 | −static inline int | |
| 573 | +static __always_inline int | |
| 572 | 574 | atomic_fetch_dec_acquire(atomic_t *v) |
| 573 | 575 | { |
| 574 | 576 | int ret = atomic_fetch_dec_relaxed(v); |
| @@ -579,7 +581,7 @@ atomic_fetch_dec_acquire(atomic_t *v) · 4 unmodified lines | ||
| 579 | 581 | #endif |
| 580 | 582 | |
| 581 | 583 | #ifndef atomic_fetch_dec_release |
| 582 | −static inline int | |
| 584 | +static __always_inline int | |
| 583 | 585 | atomic_fetch_dec_release(atomic_t *v) |
| 584 | 586 | { |
| 585 | 587 | __atomic_release_fence(); |
| @@ -589,7 +591,7 @@ atomic_fetch_dec_release(atomic_t *v) · 3 unmodified lines | ||
| 589 | 591 | #endif |
| 590 | 592 | |
| 591 | 593 | #ifndef atomic_fetch_dec |
| 592 | −static inline int | |
| 594 | +static __always_inline int | |
| 593 | 595 | atomic_fetch_dec(atomic_t *v) |
| 594 | 596 | { |
| 595 | 597 | int ret; |
| @@ -610,7 +612,7 @@ atomic_fetch_dec(atomic_t *v) · 14 unmodified lines | ||
| 610 | 612 | #else /* atomic_fetch_and_relaxed */ |
| 611 | 613 | |
| 612 | 614 | #ifndef atomic_fetch_and_acquire |
| 613 | −static inline int | |
| 615 | +static __always_inline int | |
| 614 | 616 | atomic_fetch_and_acquire(int i, atomic_t *v) |
| 615 | 617 | { |
| 616 | 618 | int ret = atomic_fetch_and_relaxed(i, v); |
| @@ -621,7 +623,7 @@ atomic_fetch_and_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 621 | 623 | #endif |
| 622 | 624 | |
| 623 | 625 | #ifndef atomic_fetch_and_release |
| 624 | −static inline int | |
| 626 | +static __always_inline int | |
| 625 | 627 | atomic_fetch_and_release(int i, atomic_t *v) |
| 626 | 628 | { |
| 627 | 629 | __atomic_release_fence(); |
| @@ -631,7 +633,7 @@ atomic_fetch_and_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 631 | 633 | #endif |
| 632 | 634 | |
| 633 | 635 | #ifndef atomic_fetch_and |
| 634 | −static inline int | |
| 636 | +static __always_inline int | |
| 635 | 637 | atomic_fetch_and(int i, atomic_t *v) |
| 636 | 638 | { |
| 637 | 639 | int ret; |
| @@ -646,7 +648,7 @@ atomic_fetch_and(int i, atomic_t *v) · 8 unmodified lines | ||
| 646 | 648 | #endif /* atomic_fetch_and_relaxed */ |
| 647 | 649 | |
| 648 | 650 | #ifndef atomic_andnot |
| 649 | −static inline void | |
| 651 | +static __always_inline void | |
| 650 | 652 | atomic_andnot(int i, atomic_t *v) |
| 651 | 653 | { |
| 652 | 654 | atomic_and(~i, v); |
| @@ -662,7 +664,7 @@ atomic_andnot(int i, atomic_t *v) · 9 unmodified lines | ||
| 662 | 664 | #endif /* atomic_fetch_andnot */ |
| 663 | 665 | |
| 664 | 666 | #ifndef atomic_fetch_andnot |
| 665 | −static inline int | |
| 667 | +static __always_inline int | |
| 666 | 668 | atomic_fetch_andnot(int i, atomic_t *v) |
| 667 | 669 | { |
| 668 | 670 | return atomic_fetch_and(~i, v); |
| @@ -671,7 +673,7 @@ atomic_fetch_andnot(int i, atomic_t *v) · 2 unmodified lines | ||
| 671 | 673 | #endif |
| 672 | 674 | |
| 673 | 675 | #ifndef atomic_fetch_andnot_acquire |
| 674 | −static inline int | |
| 676 | +static __always_inline int | |
| 675 | 677 | atomic_fetch_andnot_acquire(int i, atomic_t *v) |
| 676 | 678 | { |
| 677 | 679 | return atomic_fetch_and_acquire(~i, v); |
| @@ -680,7 +682,7 @@ atomic_fetch_andnot_acquire(int i, atomic_t *v) · 2 unmodified lines | ||
| 680 | 682 | #endif |
| 681 | 683 | |
| 682 | 684 | #ifndef atomic_fetch_andnot_release |
| 683 | −static inline int | |
| 685 | +static __always_inline int | |
| 684 | 686 | atomic_fetch_andnot_release(int i, atomic_t *v) |
| 685 | 687 | { |
| 686 | 688 | return atomic_fetch_and_release(~i, v); |
| @@ -689,7 +691,7 @@ atomic_fetch_andnot_release(int i, atomic_t *v) · 2 unmodified lines | ||
| 689 | 691 | #endif |
| 690 | 692 | |
| 691 | 693 | #ifndef atomic_fetch_andnot_relaxed |
| 692 | −static inline int | |
| 694 | +static __always_inline int | |
| 693 | 695 | atomic_fetch_andnot_relaxed(int i, atomic_t *v) |
| 694 | 696 | { |
| 695 | 697 | return atomic_fetch_and_relaxed(~i, v); |
| @@ -700,7 +702,7 @@ atomic_fetch_andnot_relaxed(int i, atomic_t *v) · 4 unmodified lines | ||
| 700 | 702 | #else /* atomic_fetch_andnot_relaxed */ |
| 701 | 703 | |
| 702 | 704 | #ifndef atomic_fetch_andnot_acquire |
| 703 | −static inline int | |
| 705 | +static __always_inline int | |
| 704 | 706 | atomic_fetch_andnot_acquire(int i, atomic_t *v) |
| 705 | 707 | { |
| 706 | 708 | int ret = atomic_fetch_andnot_relaxed(i, v); |
| @@ -711,7 +713,7 @@ atomic_fetch_andnot_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 711 | 713 | #endif |
| 712 | 714 | |
| 713 | 715 | #ifndef atomic_fetch_andnot_release |
| 714 | −static inline int | |
| 716 | +static __always_inline int | |
| 715 | 717 | atomic_fetch_andnot_release(int i, atomic_t *v) |
| 716 | 718 | { |
| 717 | 719 | __atomic_release_fence(); |
| @@ -721,7 +723,7 @@ atomic_fetch_andnot_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 721 | 723 | #endif |
| 722 | 724 | |
| 723 | 725 | #ifndef atomic_fetch_andnot |
| 724 | −static inline int | |
| 726 | +static __always_inline int | |
| 725 | 727 | atomic_fetch_andnot(int i, atomic_t *v) |
| 726 | 728 | { |
| 727 | 729 | int ret; |
| @@ -742,7 +744,7 @@ atomic_fetch_andnot(int i, atomic_t *v) · 14 unmodified lines | ||
| 742 | 744 | #else /* atomic_fetch_or_relaxed */ |
| 743 | 745 | |
| 744 | 746 | #ifndef atomic_fetch_or_acquire |
| 745 | −static inline int | |
| 747 | +static __always_inline int | |
| 746 | 748 | atomic_fetch_or_acquire(int i, atomic_t *v) |
| 747 | 749 | { |
| 748 | 750 | int ret = atomic_fetch_or_relaxed(i, v); |
| @@ -753,7 +755,7 @@ atomic_fetch_or_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 753 | 755 | #endif |
| 754 | 756 | |
| 755 | 757 | #ifndef atomic_fetch_or_release |
| 756 | −static inline int | |
| 758 | +static __always_inline int | |
| 757 | 759 | atomic_fetch_or_release(int i, atomic_t *v) |
| 758 | 760 | { |
| 759 | 761 | __atomic_release_fence(); |
| @@ -763,7 +765,7 @@ atomic_fetch_or_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 763 | 765 | #endif |
| 764 | 766 | |
| 765 | 767 | #ifndef atomic_fetch_or |
| 766 | −static inline int | |
| 768 | +static __always_inline int | |
| 767 | 769 | atomic_fetch_or(int i, atomic_t *v) |
| 768 | 770 | { |
| 769 | 771 | int ret; |
| @@ -784,7 +786,7 @@ atomic_fetch_or(int i, atomic_t *v) · 14 unmodified lines | ||
| 784 | 786 | #else /* atomic_fetch_xor_relaxed */ |
| 785 | 787 | |
| 786 | 788 | #ifndef atomic_fetch_xor_acquire |
| 787 | −static inline int | |
| 789 | +static __always_inline int | |
| 788 | 790 | atomic_fetch_xor_acquire(int i, atomic_t *v) |
| 789 | 791 | { |
| 790 | 792 | int ret = atomic_fetch_xor_relaxed(i, v); |
| @@ -795,7 +797,7 @@ atomic_fetch_xor_acquire(int i, atomic_t *v) · 4 unmodified lines | ||
| 795 | 797 | #endif |
| 796 | 798 | |
| 797 | 799 | #ifndef atomic_fetch_xor_release |
| 798 | −static inline int | |
| 800 | +static __always_inline int | |
| 799 | 801 | atomic_fetch_xor_release(int i, atomic_t *v) |
| 800 | 802 | { |
| 801 | 803 | __atomic_release_fence(); |
| @@ -805,7 +807,7 @@ atomic_fetch_xor_release(int i, atomic_t *v) · 3 unmodified lines | ||
| 805 | 807 | #endif |
| 806 | 808 | |
| 807 | 809 | #ifndef atomic_fetch_xor |
| 808 | −static inline int | |
| 810 | +static __always_inline int | |
| 809 | 811 | atomic_fetch_xor(int i, atomic_t *v) |
| 810 | 812 | { |
| 811 | 813 | int ret; |
| @@ -826,7 +828,7 @@ atomic_fetch_xor(int i, atomic_t *v) · 14 unmodified lines | ||
| 826 | 828 | #else /* atomic_xchg_relaxed */ |
| 827 | 829 | |
| 828 | 830 | #ifndef atomic_xchg_acquire |
| 829 | −static inline int | |
| 831 | +static __always_inline int | |
| 830 | 832 | atomic_xchg_acquire(atomic_t *v, int i) |
| 831 | 833 | { |
| 832 | 834 | int ret = atomic_xchg_relaxed(v, i); |
| @@ -837,7 +839,7 @@ atomic_xchg_acquire(atomic_t *v, int i) · 4 unmodified lines | ||
| 837 | 839 | #endif |
| 838 | 840 | |
| 839 | 841 | #ifndef atomic_xchg_release |
| 840 | −static inline int | |
| 842 | +static __always_inline int | |
| 841 | 843 | atomic_xchg_release(atomic_t *v, int i) |
| 842 | 844 | { |
| 843 | 845 | __atomic_release_fence(); |
| @@ -847,7 +849,7 @@ atomic_xchg_release(atomic_t *v, int i) · 3 unmodified lines | ||
| 847 | 849 | #endif |
| 848 | 850 | |
| 849 | 851 | #ifndef atomic_xchg |
| 850 | −static inline int | |
| 852 | +static __always_inline int | |
| 851 | 853 | atomic_xchg(atomic_t *v, int i) |
| 852 | 854 | { |
| 853 | 855 | int ret; |
| @@ -868,7 +870,7 @@ atomic_xchg(atomic_t *v, int i) · 14 unmodified lines | ||
| 868 | 870 | #else /* atomic_cmpxchg_relaxed */ |
| 869 | 871 | |
| 870 | 872 | #ifndef atomic_cmpxchg_acquire |
| 871 | −static inline int | |
| 873 | +static __always_inline int | |
| 872 | 874 | atomic_cmpxchg_acquire(atomic_t *v, int old, int new) |
| 873 | 875 | { |
| 874 | 876 | int ret = atomic_cmpxchg_relaxed(v, old, new); |
| @@ -879,7 +881,7 @@ atomic_cmpxchg_acquire(atomic_t *v, int old, int new) · 4 unmodified lines | ||
| 879 | 881 | #endif |
| 880 | 882 | |
| 881 | 883 | #ifndef atomic_cmpxchg_release |
| 882 | −static inline int | |
| 884 | +static __always_inline int | |
| 883 | 885 | atomic_cmpxchg_release(atomic_t *v, int old, int new) |
| 884 | 886 | { |
| 885 | 887 | __atomic_release_fence(); |
| @@ -889,7 +891,7 @@ atomic_cmpxchg_release(atomic_t *v, int old, int new) · 3 unmodified lines | ||
| 889 | 891 | #endif |
| 890 | 892 | |
| 891 | 893 | #ifndef atomic_cmpxchg |
| 892 | −static inline int | |
| 894 | +static __always_inline int | |
| 893 | 895 | atomic_cmpxchg(atomic_t *v, int old, int new) |
| 894 | 896 | { |
| 895 | 897 | int ret; |
| @@ -911,7 +913,7 @@ atomic_cmpxchg(atomic_t *v, int old, int new) · 15 unmodified lines | ||
| 911 | 913 | #endif /* atomic_try_cmpxchg */ |
| 912 | 914 | |
| 913 | 915 | #ifndef atomic_try_cmpxchg |
| 914 | −static inline bool | |
| 916 | +static __always_inline bool | |
| 915 | 917 | atomic_try_cmpxchg(atomic_t *v, int *old, int new) |
| 916 | 918 | { |
| 917 | 919 | int r, o = *old; |
| @@ -924,7 +926,7 @@ atomic_try_cmpxchg(atomic_t *v, int *old, int new) · 6 unmodified lines | ||
| 924 | 926 | #endif |
| 925 | 927 | |
| 926 | 928 | #ifndef atomic_try_cmpxchg_acquire |
| 927 | −static inline bool | |
| 929 | +static __always_inline bool | |
| 928 | 930 | atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) |
| 929 | 931 | { |
| 930 | 932 | int r, o = *old; |
| @@ -937,7 +939,7 @@ atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) · 6 unmodified lines | ||
| 937 | 939 | #endif |
| 938 | 940 | |
| 939 | 941 | #ifndef atomic_try_cmpxchg_release |
| 940 | −static inline bool | |
| 942 | +static __always_inline bool | |
| 941 | 943 | atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) |
| 942 | 944 | { |
| 943 | 945 | int r, o = *old; |
| @@ -950,7 +952,7 @@ atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) · 6 unmodified lines | ||
| 950 | 952 | #endif |
| 951 | 953 | |
| 952 | 954 | #ifndef atomic_try_cmpxchg_relaxed |
| 953 | −static inline bool | |
| 955 | +static __always_inline bool | |
| 954 | 956 | atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) |
| 955 | 957 | { |
| 956 | 958 | int r, o = *old; |
| @@ -965,7 +967,7 @@ atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) · 8 unmodified lines | ||
| 965 | 967 | #else /* atomic_try_cmpxchg_relaxed */ |
| 966 | 968 | |
| 967 | 969 | #ifndef atomic_try_cmpxchg_acquire |
| 968 | −static inline bool | |
| 970 | +static __always_inline bool | |
| 969 | 971 | atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) |
| 970 | 972 | { |
| 971 | 973 | bool ret = atomic_try_cmpxchg_relaxed(v, old, new); |
| @@ -976,7 +978,7 @@ atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) · 4 unmodified lines | ||
| 976 | 978 | #endif |
| 977 | 979 | |
| 978 | 980 | #ifndef atomic_try_cmpxchg_release |
| 979 | −static inline bool | |
| 981 | +static __always_inline bool | |
| 980 | 982 | atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) |
| 981 | 983 | { |
| 982 | 984 | __atomic_release_fence(); |
| @@ -986,7 +988,7 @@ atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) · 3 unmodified lines | ||
| 986 | 988 | #endif |
| 987 | 989 | |
| 988 | 990 | #ifndef atomic_try_cmpxchg |
| 989 | −static inline bool | |
| 991 | +static __always_inline bool | |
| 990 | 992 | atomic_try_cmpxchg(atomic_t *v, int *old, int new) |
| 991 | 993 | { |
| 992 | 994 | bool ret; |
| @@ -1010,7 +1012,7 @@ atomic_try_cmpxchg(atomic_t *v, int *old, int new) · 17 unmodified lines | ||
| 1010 | 1012 | * true if the result is zero, or false for all |
| 1011 | 1013 | * other cases. |
| 1012 | 1014 | */ |
| 1013 | −static inline bool | |
| 1015 | +static __always_inline bool | |
| 1014 | 1016 | atomic_sub_and_test(int i, atomic_t *v) |
| 1015 | 1017 | { |
| 1016 | 1018 | return atomic_sub_return(i, v) == 0; |
| @@ -1027,7 +1029,7 @@ atomic_sub_and_test(int i, atomic_t *v) · 10 unmodified lines | ||
| 1027 | 1029 | * returns true if the result is 0, or false for all other |
| 1028 | 1030 | * cases. |
| 1029 | 1031 | */ |
| 1030 | −static inline bool | |
| 1032 | +static __always_inline bool | |
| 1031 | 1033 | atomic_dec_and_test(atomic_t *v) |
| 1032 | 1034 | { |
| 1033 | 1035 | return atomic_dec_return(v) == 0; |
| @@ -1044,7 +1046,7 @@ atomic_dec_and_test(atomic_t *v) · 10 unmodified lines | ||
| 1044 | 1046 | * and returns true if the result is zero, or false for all |
| 1045 | 1047 | * other cases. |
| 1046 | 1048 | */ |
| 1047 | −static inline bool | |
| 1049 | +static __always_inline bool | |
| 1048 | 1050 | atomic_inc_and_test(atomic_t *v) |
| 1049 | 1051 | { |
| 1050 | 1052 | return atomic_inc_return(v) == 0; |
| @@ -1062,7 +1064,7 @@ atomic_inc_and_test(atomic_t *v) · 11 unmodified lines | ||
| 1062 | 1064 | * if the result is negative, or false when |
| 1063 | 1065 | * result is greater than or equal to zero. |
| 1064 | 1066 | */ |
| 1065 | −static inline bool | |
| 1067 | +static __always_inline bool | |
| 1066 | 1068 | atomic_add_negative(int i, atomic_t *v) |
| 1067 | 1069 | { |
| 1068 | 1070 | return atomic_add_return(i, v) < 0; |
| @@ -1080,7 +1082,7 @@ atomic_add_negative(int i, atomic_t *v) · 11 unmodified lines | ||
| 1080 | 1082 | * Atomically adds @a to @v, so long as @v was not already @u. |
| 1081 | 1083 | * Returns original value of @v |
| 1082 | 1084 | */ |
| 1083 | −static inline int | |
| 1085 | +static __always_inline int | |
| 1084 | 1086 | atomic_fetch_add_unless(atomic_t *v, int a, int u) |
| 1085 | 1087 | { |
| 1086 | 1088 | int c = atomic_read(v); |
| @@ -1105,7 +1107,7 @@ atomic_fetch_add_unless(atomic_t *v, int a, int u) · 18 unmodified lines | ||
| 1105 | 1107 | * Atomically adds @a to @v, if @v was not already @u. |
| 1106 | 1108 | * Returns true if the addition was done. |
| 1107 | 1109 | */ |
| 1108 | −static inline bool | |
| 1110 | +static __always_inline bool | |
| 1109 | 1111 | atomic_add_unless(atomic_t *v, int a, int u) |
| 1110 | 1112 | { |
| 1111 | 1113 | return atomic_fetch_add_unless(v, a, u) != u; |
| @@ -1121,7 +1123,7 @@ atomic_add_unless(atomic_t *v, int a, int u) · 9 unmodified lines | ||
| 1121 | 1123 | * Atomically increments @v by 1, if @v is non-zero. |
| 1122 | 1124 | * Returns true if the increment was done. |
| 1123 | 1125 | */ |
| 1124 | −static inline bool | |
| 1126 | +static __always_inline bool | |
| 1125 | 1127 | atomic_inc_not_zero(atomic_t *v) |
| 1126 | 1128 | { |
| 1127 | 1129 | return atomic_add_unless(v, 1, 0); |
| @@ -1130,7 +1132,7 @@ atomic_inc_not_zero(atomic_t *v) · 2 unmodified lines | ||
| 1130 | 1132 | #endif |
| 1131 | 1133 | |
| 1132 | 1134 | #ifndef atomic_inc_unless_negative |
| 1133 | −static inline bool | |
| 1135 | +static __always_inline bool | |
| 1134 | 1136 | atomic_inc_unless_negative(atomic_t *v) |
| 1135 | 1137 | { |
| 1136 | 1138 | int c = atomic_read(v); |
| @@ -1146,7 +1148,7 @@ atomic_inc_unless_negative(atomic_t *v) · 9 unmodified lines | ||
| 1146 | 1148 | #endif |
| 1147 | 1149 | |
| 1148 | 1150 | #ifndef atomic_dec_unless_positive |
| 1149 | −static inline bool | |
| 1151 | +static __always_inline bool | |
| 1150 | 1152 | atomic_dec_unless_positive(atomic_t *v) |
| 1151 | 1153 | { |
| 1152 | 1154 | int c = atomic_read(v); |
| @@ -1162,7 +1164,7 @@ atomic_dec_unless_positive(atomic_t *v) · 9 unmodified lines | ||
| 1162 | 1164 | #endif |
| 1163 | 1165 | |
| 1164 | 1166 | #ifndef atomic_dec_if_positive |
| 1165 | −static inline int | |
| 1167 | +static __always_inline int | |
| 1166 | 1168 | atomic_dec_if_positive(atomic_t *v) |
| 1167 | 1169 | { |
| 1168 | 1170 | int dec, c = atomic_read(v); |
| @@ -1186,7 +1188,7 @@ atomic_dec_if_positive(atomic_t *v) · 17 unmodified lines | ||
| 1186 | 1188 | #endif |
| 1187 | 1189 | |
| 1188 | 1190 | #ifndef atomic64_read_acquire |
| 1189 | −static inline s64 | |
| 1191 | +static __always_inline s64 | |
| 1190 | 1192 | atomic64_read_acquire(const atomic64_t *v) |
| 1191 | 1193 | { |
| 1192 | 1194 | return smp_load_acquire(&(v)->counter); |
| @@ -1195,7 +1197,7 @@ atomic64_read_acquire(const atomic64_t *v) · 2 unmodified lines | ||
| 1195 | 1197 | #endif |
| 1196 | 1198 | |
| 1197 | 1199 | #ifndef atomic64_set_release |
| 1198 | −static inline void | |
| 1200 | +static __always_inline void | |
| 1199 | 1201 | atomic64_set_release(atomic64_t *v, s64 i) |
| 1200 | 1202 | { |
| 1201 | 1203 | smp_store_release(&(v)->counter, i); |
| @@ -1210,7 +1212,7 @@ atomic64_set_release(atomic64_t *v, s64 i) · 8 unmodified lines | ||
| 1210 | 1212 | #else /* atomic64_add_return_relaxed */ |
| 1211 | 1213 | |
| 1212 | 1214 | #ifndef atomic64_add_return_acquire |
| 1213 | −static inline s64 | |
| 1215 | +static __always_inline s64 | |
| 1214 | 1216 | atomic64_add_return_acquire(s64 i, atomic64_t *v) |
| 1215 | 1217 | { |
| 1216 | 1218 | s64 ret = atomic64_add_return_relaxed(i, v); |
| @@ -1221,7 +1223,7 @@ atomic64_add_return_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1221 | 1223 | #endif |
| 1222 | 1224 | |
| 1223 | 1225 | #ifndef atomic64_add_return_release |
| 1224 | −static inline s64 | |
| 1226 | +static __always_inline s64 | |
| 1225 | 1227 | atomic64_add_return_release(s64 i, atomic64_t *v) |
| 1226 | 1228 | { |
| 1227 | 1229 | __atomic_release_fence(); |
| @@ -1231,7 +1233,7 @@ atomic64_add_return_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1231 | 1233 | #endif |
| 1232 | 1234 | |
| 1233 | 1235 | #ifndef atomic64_add_return |
| 1234 | −static inline s64 | |
| 1236 | +static __always_inline s64 | |
| 1235 | 1237 | atomic64_add_return(s64 i, atomic64_t *v) |
| 1236 | 1238 | { |
| 1237 | 1239 | s64 ret; |
| @@ -1252,7 +1254,7 @@ atomic64_add_return(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1252 | 1254 | #else /* atomic64_fetch_add_relaxed */ |
| 1253 | 1255 | |
| 1254 | 1256 | #ifndef atomic64_fetch_add_acquire |
| 1255 | −static inline s64 | |
| 1257 | +static __always_inline s64 | |
| 1256 | 1258 | atomic64_fetch_add_acquire(s64 i, atomic64_t *v) |
| 1257 | 1259 | { |
| 1258 | 1260 | s64 ret = atomic64_fetch_add_relaxed(i, v); |
| @@ -1263,7 +1265,7 @@ atomic64_fetch_add_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1263 | 1265 | #endif |
| 1264 | 1266 | |
| 1265 | 1267 | #ifndef atomic64_fetch_add_release |
| 1266 | −static inline s64 | |
| 1268 | +static __always_inline s64 | |
| 1267 | 1269 | atomic64_fetch_add_release(s64 i, atomic64_t *v) |
| 1268 | 1270 | { |
| 1269 | 1271 | __atomic_release_fence(); |
| @@ -1273,7 +1275,7 @@ atomic64_fetch_add_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1273 | 1275 | #endif |
| 1274 | 1276 | |
| 1275 | 1277 | #ifndef atomic64_fetch_add |
| 1276 | −static inline s64 | |
| 1278 | +static __always_inline s64 | |
| 1277 | 1279 | atomic64_fetch_add(s64 i, atomic64_t *v) |
| 1278 | 1280 | { |
| 1279 | 1281 | s64 ret; |
| @@ -1294,7 +1296,7 @@ atomic64_fetch_add(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1294 | 1296 | #else /* atomic64_sub_return_relaxed */ |
| 1295 | 1297 | |
| 1296 | 1298 | #ifndef atomic64_sub_return_acquire |
| 1297 | −static inline s64 | |
| 1299 | +static __always_inline s64 | |
| 1298 | 1300 | atomic64_sub_return_acquire(s64 i, atomic64_t *v) |
| 1299 | 1301 | { |
| 1300 | 1302 | s64 ret = atomic64_sub_return_relaxed(i, v); |
| @@ -1305,7 +1307,7 @@ atomic64_sub_return_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1305 | 1307 | #endif |
| 1306 | 1308 | |
| 1307 | 1309 | #ifndef atomic64_sub_return_release |
| 1308 | −static inline s64 | |
| 1310 | +static __always_inline s64 | |
| 1309 | 1311 | atomic64_sub_return_release(s64 i, atomic64_t *v) |
| 1310 | 1312 | { |
| 1311 | 1313 | __atomic_release_fence(); |
| @@ -1315,7 +1317,7 @@ atomic64_sub_return_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1315 | 1317 | #endif |
| 1316 | 1318 | |
| 1317 | 1319 | #ifndef atomic64_sub_return |
| 1318 | −static inline s64 | |
| 1320 | +static __always_inline s64 | |
| 1319 | 1321 | atomic64_sub_return(s64 i, atomic64_t *v) |
| 1320 | 1322 | { |
| 1321 | 1323 | s64 ret; |
| @@ -1336,7 +1338,7 @@ atomic64_sub_return(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1336 | 1338 | #else /* atomic64_fetch_sub_relaxed */ |
| 1337 | 1339 | |
| 1338 | 1340 | #ifndef atomic64_fetch_sub_acquire |
| 1339 | −static inline s64 | |
| 1341 | +static __always_inline s64 | |
| 1340 | 1342 | atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) |
| 1341 | 1343 | { |
| 1342 | 1344 | s64 ret = atomic64_fetch_sub_relaxed(i, v); |
| @@ -1347,7 +1349,7 @@ atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1347 | 1349 | #endif |
| 1348 | 1350 | |
| 1349 | 1351 | #ifndef atomic64_fetch_sub_release |
| 1350 | −static inline s64 | |
| 1352 | +static __always_inline s64 | |
| 1351 | 1353 | atomic64_fetch_sub_release(s64 i, atomic64_t *v) |
| 1352 | 1354 | { |
| 1353 | 1355 | __atomic_release_fence(); |
| @@ -1357,7 +1359,7 @@ atomic64_fetch_sub_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1357 | 1359 | #endif |
| 1358 | 1360 | |
| 1359 | 1361 | #ifndef atomic64_fetch_sub |
| 1360 | −static inline s64 | |
| 1362 | +static __always_inline s64 | |
| 1361 | 1363 | atomic64_fetch_sub(s64 i, atomic64_t *v) |
| 1362 | 1364 | { |
| 1363 | 1365 | s64 ret; |
| @@ -1372,7 +1374,7 @@ atomic64_fetch_sub(s64 i, atomic64_t *v) · 8 unmodified lines | ||
| 1372 | 1374 | #endif /* atomic64_fetch_sub_relaxed */ |
| 1373 | 1375 | |
| 1374 | 1376 | #ifndef atomic64_inc |
| 1375 | −static inline void | |
| 1377 | +static __always_inline void | |
| 1376 | 1378 | atomic64_inc(atomic64_t *v) |
| 1377 | 1379 | { |
| 1378 | 1380 | atomic64_add(1, v); |
| @@ -1388,7 +1390,7 @@ atomic64_inc(atomic64_t *v) · 9 unmodified lines | ||
| 1388 | 1390 | #endif /* atomic64_inc_return */ |
| 1389 | 1391 | |
| 1390 | 1392 | #ifndef atomic64_inc_return |
| 1391 | −static inline s64 | |
| 1393 | +static __always_inline s64 | |
| 1392 | 1394 | atomic64_inc_return(atomic64_t *v) |
| 1393 | 1395 | { |
| 1394 | 1396 | return atomic64_add_return(1, v); |
| @@ -1397,7 +1399,7 @@ atomic64_inc_return(atomic64_t *v) · 2 unmodified lines | ||
| 1397 | 1399 | #endif |
| 1398 | 1400 | |
| 1399 | 1401 | #ifndef atomic64_inc_return_acquire |
| 1400 | −static inline s64 | |
| 1402 | +static __always_inline s64 | |
| 1401 | 1403 | atomic64_inc_return_acquire(atomic64_t *v) |
| 1402 | 1404 | { |
| 1403 | 1405 | return atomic64_add_return_acquire(1, v); |
| @@ -1406,7 +1408,7 @@ atomic64_inc_return_acquire(atomic64_t *v) · 2 unmodified lines | ||
| 1406 | 1408 | #endif |
| 1407 | 1409 | |
| 1408 | 1410 | #ifndef atomic64_inc_return_release |
| 1409 | −static inline s64 | |
| 1411 | +static __always_inline s64 | |
| 1410 | 1412 | atomic64_inc_return_release(atomic64_t *v) |
| 1411 | 1413 | { |
| 1412 | 1414 | return atomic64_add_return_release(1, v); |
| @@ -1415,7 +1417,7 @@ atomic64_inc_return_release(atomic64_t *v) · 2 unmodified lines | ||
| 1415 | 1417 | #endif |
| 1416 | 1418 | |
| 1417 | 1419 | #ifndef atomic64_inc_return_relaxed |
| 1418 | −static inline s64 | |
| 1420 | +static __always_inline s64 | |
| 1419 | 1421 | atomic64_inc_return_relaxed(atomic64_t *v) |
| 1420 | 1422 | { |
| 1421 | 1423 | return atomic64_add_return_relaxed(1, v); |
| @@ -1426,7 +1428,7 @@ atomic64_inc_return_relaxed(atomic64_t *v) · 4 unmodified lines | ||
| 1426 | 1428 | #else /* atomic64_inc_return_relaxed */ |
| 1427 | 1429 | |
| 1428 | 1430 | #ifndef atomic64_inc_return_acquire |
| 1429 | −static inline s64 | |
| 1431 | +static __always_inline s64 | |
| 1430 | 1432 | atomic64_inc_return_acquire(atomic64_t *v) |
| 1431 | 1433 | { |
| 1432 | 1434 | s64 ret = atomic64_inc_return_relaxed(v); |
| @@ -1437,7 +1439,7 @@ atomic64_inc_return_acquire(atomic64_t *v) · 4 unmodified lines | ||
| 1437 | 1439 | #endif |
| 1438 | 1440 | |
| 1439 | 1441 | #ifndef atomic64_inc_return_release |
| 1440 | −static inline s64 | |
| 1442 | +static __always_inline s64 | |
| 1441 | 1443 | atomic64_inc_return_release(atomic64_t *v) |
| 1442 | 1444 | { |
| 1443 | 1445 | __atomic_release_fence(); |
| @@ -1447,7 +1449,7 @@ atomic64_inc_return_release(atomic64_t *v) · 3 unmodified lines | ||
| 1447 | 1449 | #endif |
| 1448 | 1450 | |
| 1449 | 1451 | #ifndef atomic64_inc_return |
| 1450 | −static inline s64 | |
| 1452 | +static __always_inline s64 | |
| 1451 | 1453 | atomic64_inc_return(atomic64_t *v) |
| 1452 | 1454 | { |
| 1453 | 1455 | s64 ret; |
| @@ -1469,7 +1471,7 @@ atomic64_inc_return(atomic64_t *v) · 15 unmodified lines | ||
| 1469 | 1471 | #endif /* atomic64_fetch_inc */ |
| 1470 | 1472 | |
| 1471 | 1473 | #ifndef atomic64_fetch_inc |
| 1472 | −static inline s64 | |
| 1474 | +static __always_inline s64 | |
| 1473 | 1475 | atomic64_fetch_inc(atomic64_t *v) |
| 1474 | 1476 | { |
| 1475 | 1477 | return atomic64_fetch_add(1, v); |
| @@ -1478,7 +1480,7 @@ atomic64_fetch_inc(atomic64_t *v) · 2 unmodified lines | ||
| 1478 | 1480 | #endif |
| 1479 | 1481 | |
| 1480 | 1482 | #ifndef atomic64_fetch_inc_acquire |
| 1481 | −static inline s64 | |
| 1483 | +static __always_inline s64 | |
| 1482 | 1484 | atomic64_fetch_inc_acquire(atomic64_t *v) |
| 1483 | 1485 | { |
| 1484 | 1486 | return atomic64_fetch_add_acquire(1, v); |
| @@ -1487,7 +1489,7 @@ atomic64_fetch_inc_acquire(atomic64_t *v) · 2 unmodified lines | ||
| 1487 | 1489 | #endif |
| 1488 | 1490 | |
| 1489 | 1491 | #ifndef atomic64_fetch_inc_release |
| 1490 | −static inline s64 | |
| 1492 | +static __always_inline s64 | |
| 1491 | 1493 | atomic64_fetch_inc_release(atomic64_t *v) |
| 1492 | 1494 | { |
| 1493 | 1495 | return atomic64_fetch_add_release(1, v); |
| @@ -1496,7 +1498,7 @@ atomic64_fetch_inc_release(atomic64_t *v) · 2 unmodified lines | ||
| 1496 | 1498 | #endif |
| 1497 | 1499 | |
| 1498 | 1500 | #ifndef atomic64_fetch_inc_relaxed |
| 1499 | −static inline s64 | |
| 1501 | +static __always_inline s64 | |
| 1500 | 1502 | atomic64_fetch_inc_relaxed(atomic64_t *v) |
| 1501 | 1503 | { |
| 1502 | 1504 | return atomic64_fetch_add_relaxed(1, v); |
| @@ -1507,7 +1509,7 @@ atomic64_fetch_inc_relaxed(atomic64_t *v) · 4 unmodified lines | ||
| 1507 | 1509 | #else /* atomic64_fetch_inc_relaxed */ |
| 1508 | 1510 | |
| 1509 | 1511 | #ifndef atomic64_fetch_inc_acquire |
| 1510 | −static inline s64 | |
| 1512 | +static __always_inline s64 | |
| 1511 | 1513 | atomic64_fetch_inc_acquire(atomic64_t *v) |
| 1512 | 1514 | { |
| 1513 | 1515 | s64 ret = atomic64_fetch_inc_relaxed(v); |
| @@ -1518,7 +1520,7 @@ atomic64_fetch_inc_acquire(atomic64_t *v) · 4 unmodified lines | ||
| 1518 | 1520 | #endif |
| 1519 | 1521 | |
| 1520 | 1522 | #ifndef atomic64_fetch_inc_release |
| 1521 | −static inline s64 | |
| 1523 | +static __always_inline s64 | |
| 1522 | 1524 | atomic64_fetch_inc_release(atomic64_t *v) |
| 1523 | 1525 | { |
| 1524 | 1526 | __atomic_release_fence(); |
| @@ -1528,7 +1530,7 @@ atomic64_fetch_inc_release(atomic64_t *v) · 3 unmodified lines | ||
| 1528 | 1530 | #endif |
| 1529 | 1531 | |
| 1530 | 1532 | #ifndef atomic64_fetch_inc |
| 1531 | −static inline s64 | |
| 1533 | +static __always_inline s64 | |
| 1532 | 1534 | atomic64_fetch_inc(atomic64_t *v) |
| 1533 | 1535 | { |
| 1534 | 1536 | s64 ret; |
| @@ -1543,7 +1545,7 @@ atomic64_fetch_inc(atomic64_t *v) · 8 unmodified lines | ||
| 1543 | 1545 | #endif /* atomic64_fetch_inc_relaxed */ |
| 1544 | 1546 | |
| 1545 | 1547 | #ifndef atomic64_dec |
| 1546 | −static inline void | |
| 1548 | +static __always_inline void | |
| 1547 | 1549 | atomic64_dec(atomic64_t *v) |
| 1548 | 1550 | { |
| 1549 | 1551 | atomic64_sub(1, v); |
| @@ -1559,7 +1561,7 @@ atomic64_dec(atomic64_t *v) · 9 unmodified lines | ||
| 1559 | 1561 | #endif /* atomic64_dec_return */ |
| 1560 | 1562 | |
| 1561 | 1563 | #ifndef atomic64_dec_return |
| 1562 | −static inline s64 | |
| 1564 | +static __always_inline s64 | |
| 1563 | 1565 | atomic64_dec_return(atomic64_t *v) |
| 1564 | 1566 | { |
| 1565 | 1567 | return atomic64_sub_return(1, v); |
| @@ -1568,7 +1570,7 @@ atomic64_dec_return(atomic64_t *v) · 2 unmodified lines | ||
| 1568 | 1570 | #endif |
| 1569 | 1571 | |
| 1570 | 1572 | #ifndef atomic64_dec_return_acquire |
| 1571 | −static inline s64 | |
| 1573 | +static __always_inline s64 | |
| 1572 | 1574 | atomic64_dec_return_acquire(atomic64_t *v) |
| 1573 | 1575 | { |
| 1574 | 1576 | return atomic64_sub_return_acquire(1, v); |
| @@ -1577,7 +1579,7 @@ atomic64_dec_return_acquire(atomic64_t *v) · 2 unmodified lines | ||
| 1577 | 1579 | #endif |
| 1578 | 1580 | |
| 1579 | 1581 | #ifndef atomic64_dec_return_release |
| 1580 | −static inline s64 | |
| 1582 | +static __always_inline s64 | |
| 1581 | 1583 | atomic64_dec_return_release(atomic64_t *v) |
| 1582 | 1584 | { |
| 1583 | 1585 | return atomic64_sub_return_release(1, v); |
| @@ -1586,7 +1588,7 @@ atomic64_dec_return_release(atomic64_t *v) · 2 unmodified lines | ||
| 1586 | 1588 | #endif |
| 1587 | 1589 | |
| 1588 | 1590 | #ifndef atomic64_dec_return_relaxed |
| 1589 | −static inline s64 | |
| 1591 | +static __always_inline s64 | |
| 1590 | 1592 | atomic64_dec_return_relaxed(atomic64_t *v) |
| 1591 | 1593 | { |
| 1592 | 1594 | return atomic64_sub_return_relaxed(1, v); |
| @@ -1597,7 +1599,7 @@ atomic64_dec_return_relaxed(atomic64_t *v) · 4 unmodified lines | ||
| 1597 | 1599 | #else /* atomic64_dec_return_relaxed */ |
| 1598 | 1600 | |
| 1599 | 1601 | #ifndef atomic64_dec_return_acquire |
| 1600 | −static inline s64 | |
| 1602 | +static __always_inline s64 | |
| 1601 | 1603 | atomic64_dec_return_acquire(atomic64_t *v) |
| 1602 | 1604 | { |
| 1603 | 1605 | s64 ret = atomic64_dec_return_relaxed(v); |
| @@ -1608,7 +1610,7 @@ atomic64_dec_return_acquire(atomic64_t *v) · 4 unmodified lines | ||
| 1608 | 1610 | #endif |
| 1609 | 1611 | |
| 1610 | 1612 | #ifndef atomic64_dec_return_release |
| 1611 | −static inline s64 | |
| 1613 | +static __always_inline s64 | |
| 1612 | 1614 | atomic64_dec_return_release(atomic64_t *v) |
| 1613 | 1615 | { |
| 1614 | 1616 | __atomic_release_fence(); |
| @@ -1618,7 +1620,7 @@ atomic64_dec_return_release(atomic64_t *v) · 3 unmodified lines | ||
| 1618 | 1620 | #endif |
| 1619 | 1621 | |
| 1620 | 1622 | #ifndef atomic64_dec_return |
| 1621 | −static inline s64 | |
| 1623 | +static __always_inline s64 | |
| 1622 | 1624 | atomic64_dec_return(atomic64_t *v) |
| 1623 | 1625 | { |
| 1624 | 1626 | s64 ret; |
| @@ -1640,7 +1642,7 @@ atomic64_dec_return(atomic64_t *v) · 15 unmodified lines | ||
| 1640 | 1642 | #endif /* atomic64_fetch_dec */ |
| 1641 | 1643 | |
| 1642 | 1644 | #ifndef atomic64_fetch_dec |
| 1643 | −static inline s64 | |
| 1645 | +static __always_inline s64 | |
| 1644 | 1646 | atomic64_fetch_dec(atomic64_t *v) |
| 1645 | 1647 | { |
| 1646 | 1648 | return atomic64_fetch_sub(1, v); |
| @@ -1649,7 +1651,7 @@ atomic64_fetch_dec(atomic64_t *v) · 2 unmodified lines | ||
| 1649 | 1651 | #endif |
| 1650 | 1652 | |
| 1651 | 1653 | #ifndef atomic64_fetch_dec_acquire |
| 1652 | −static inline s64 | |
| 1654 | +static __always_inline s64 | |
| 1653 | 1655 | atomic64_fetch_dec_acquire(atomic64_t *v) |
| 1654 | 1656 | { |
| 1655 | 1657 | return atomic64_fetch_sub_acquire(1, v); |
| @@ -1658,7 +1660,7 @@ atomic64_fetch_dec_acquire(atomic64_t *v) · 2 unmodified lines | ||
| 1658 | 1660 | #endif |
| 1659 | 1661 | |
| 1660 | 1662 | #ifndef atomic64_fetch_dec_release |
| 1661 | −static inline s64 | |
| 1663 | +static __always_inline s64 | |
| 1662 | 1664 | atomic64_fetch_dec_release(atomic64_t *v) |
| 1663 | 1665 | { |
| 1664 | 1666 | return atomic64_fetch_sub_release(1, v); |
| @@ -1667,7 +1669,7 @@ atomic64_fetch_dec_release(atomic64_t *v) · 2 unmodified lines | ||
| 1667 | 1669 | #endif |
| 1668 | 1670 | |
| 1669 | 1671 | #ifndef atomic64_fetch_dec_relaxed |
| 1670 | −static inline s64 | |
| 1672 | +static __always_inline s64 | |
| 1671 | 1673 | atomic64_fetch_dec_relaxed(atomic64_t *v) |
| 1672 | 1674 | { |
| 1673 | 1675 | return atomic64_fetch_sub_relaxed(1, v); |
| @@ -1678,7 +1680,7 @@ atomic64_fetch_dec_relaxed(atomic64_t *v) · 4 unmodified lines | ||
| 1678 | 1680 | #else /* atomic64_fetch_dec_relaxed */ |
| 1679 | 1681 | |
| 1680 | 1682 | #ifndef atomic64_fetch_dec_acquire |
| 1681 | −static inline s64 | |
| 1683 | +static __always_inline s64 | |
| 1682 | 1684 | atomic64_fetch_dec_acquire(atomic64_t *v) |
| 1683 | 1685 | { |
| 1684 | 1686 | s64 ret = atomic64_fetch_dec_relaxed(v); |
| @@ -1689,7 +1691,7 @@ atomic64_fetch_dec_acquire(atomic64_t *v) · 4 unmodified lines | ||
| 1689 | 1691 | #endif |
| 1690 | 1692 | |
| 1691 | 1693 | #ifndef atomic64_fetch_dec_release |
| 1692 | −static inline s64 | |
| 1694 | +static __always_inline s64 | |
| 1693 | 1695 | atomic64_fetch_dec_release(atomic64_t *v) |
| 1694 | 1696 | { |
| 1695 | 1697 | __atomic_release_fence(); |
| @@ -1699,7 +1701,7 @@ atomic64_fetch_dec_release(atomic64_t *v) · 3 unmodified lines | ||
| 1699 | 1701 | #endif |
| 1700 | 1702 | |
| 1701 | 1703 | #ifndef atomic64_fetch_dec |
| 1702 | −static inline s64 | |
| 1704 | +static __always_inline s64 | |
| 1703 | 1705 | atomic64_fetch_dec(atomic64_t *v) |
| 1704 | 1706 | { |
| 1705 | 1707 | s64 ret; |
| @@ -1720,7 +1722,7 @@ atomic64_fetch_dec(atomic64_t *v) · 14 unmodified lines | ||
| 1720 | 1722 | #else /* atomic64_fetch_and_relaxed */ |
| 1721 | 1723 | |
| 1722 | 1724 | #ifndef atomic64_fetch_and_acquire |
| 1723 | −static inline s64 | |
| 1725 | +static __always_inline s64 | |
| 1724 | 1726 | atomic64_fetch_and_acquire(s64 i, atomic64_t *v) |
| 1725 | 1727 | { |
| 1726 | 1728 | s64 ret = atomic64_fetch_and_relaxed(i, v); |
| @@ -1731,7 +1733,7 @@ atomic64_fetch_and_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1731 | 1733 | #endif |
| 1732 | 1734 | |
| 1733 | 1735 | #ifndef atomic64_fetch_and_release |
| 1734 | −static inline s64 | |
| 1736 | +static __always_inline s64 | |
| 1735 | 1737 | atomic64_fetch_and_release(s64 i, atomic64_t *v) |
| 1736 | 1738 | { |
| 1737 | 1739 | __atomic_release_fence(); |
| @@ -1741,7 +1743,7 @@ atomic64_fetch_and_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1741 | 1743 | #endif |
| 1742 | 1744 | |
| 1743 | 1745 | #ifndef atomic64_fetch_and |
| 1744 | −static inline s64 | |
| 1746 | +static __always_inline s64 | |
| 1745 | 1747 | atomic64_fetch_and(s64 i, atomic64_t *v) |
| 1746 | 1748 | { |
| 1747 | 1749 | s64 ret; |
| @@ -1756,7 +1758,7 @@ atomic64_fetch_and(s64 i, atomic64_t *v) · 8 unmodified lines | ||
| 1756 | 1758 | #endif /* atomic64_fetch_and_relaxed */ |
| 1757 | 1759 | |
| 1758 | 1760 | #ifndef atomic64_andnot |
| 1759 | −static inline void | |
| 1761 | +static __always_inline void | |
| 1760 | 1762 | atomic64_andnot(s64 i, atomic64_t *v) |
| 1761 | 1763 | { |
| 1762 | 1764 | atomic64_and(~i, v); |
| @@ -1772,7 +1774,7 @@ atomic64_andnot(s64 i, atomic64_t *v) · 9 unmodified lines | ||
| 1772 | 1774 | #endif /* atomic64_fetch_andnot */ |
| 1773 | 1775 | |
| 1774 | 1776 | #ifndef atomic64_fetch_andnot |
| 1775 | −static inline s64 | |
| 1777 | +static __always_inline s64 | |
| 1776 | 1778 | atomic64_fetch_andnot(s64 i, atomic64_t *v) |
| 1777 | 1779 | { |
| 1778 | 1780 | return atomic64_fetch_and(~i, v); |
| @@ -1781,7 +1783,7 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 2 unmodified lines | ||
| 1781 | 1783 | #endif |
| 1782 | 1784 | |
| 1783 | 1785 | #ifndef atomic64_fetch_andnot_acquire |
| 1784 | −static inline s64 | |
| 1786 | +static __always_inline s64 | |
| 1785 | 1787 | atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) |
| 1786 | 1788 | { |
| 1787 | 1789 | return atomic64_fetch_and_acquire(~i, v); |
| @@ -1790,7 +1792,7 @@ atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) · 2 unmodified lines | ||
| 1790 | 1792 | #endif |
| 1791 | 1793 | |
| 1792 | 1794 | #ifndef atomic64_fetch_andnot_release |
| 1793 | −static inline s64 | |
| 1795 | +static __always_inline s64 | |
| 1794 | 1796 | atomic64_fetch_andnot_release(s64 i, atomic64_t *v) |
| 1795 | 1797 | { |
| 1796 | 1798 | return atomic64_fetch_and_release(~i, v); |
| @@ -1799,7 +1801,7 @@ atomic64_fetch_andnot_release(s64 i, atomic64_t *v) · 2 unmodified lines | ||
| 1799 | 1801 | #endif |
| 1800 | 1802 | |
| 1801 | 1803 | #ifndef atomic64_fetch_andnot_relaxed |
| 1802 | −static inline s64 | |
| 1804 | +static __always_inline s64 | |
| 1803 | 1805 | atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) |
| 1804 | 1806 | { |
| 1805 | 1807 | return atomic64_fetch_and_relaxed(~i, v); |
| @@ -1810,7 +1812,7 @@ atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1810 | 1812 | #else /* atomic64_fetch_andnot_relaxed */ |
| 1811 | 1813 | |
| 1812 | 1814 | #ifndef atomic64_fetch_andnot_acquire |
| 1813 | −static inline s64 | |
| 1815 | +static __always_inline s64 | |
| 1814 | 1816 | atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) |
| 1815 | 1817 | { |
| 1816 | 1818 | s64 ret = atomic64_fetch_andnot_relaxed(i, v); |
| @@ -1821,7 +1823,7 @@ atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1821 | 1823 | #endif |
| 1822 | 1824 | |
| 1823 | 1825 | #ifndef atomic64_fetch_andnot_release |
| 1824 | −static inline s64 | |
| 1826 | +static __always_inline s64 | |
| 1825 | 1827 | atomic64_fetch_andnot_release(s64 i, atomic64_t *v) |
| 1826 | 1828 | { |
| 1827 | 1829 | __atomic_release_fence(); |
| @@ -1831,7 +1833,7 @@ atomic64_fetch_andnot_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1831 | 1833 | #endif |
| 1832 | 1834 | |
| 1833 | 1835 | #ifndef atomic64_fetch_andnot |
| 1834 | −static inline s64 | |
| 1836 | +static __always_inline s64 | |
| 1835 | 1837 | atomic64_fetch_andnot(s64 i, atomic64_t *v) |
| 1836 | 1838 | { |
| 1837 | 1839 | s64 ret; |
| @@ -1852,7 +1854,7 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1852 | 1854 | #else /* atomic64_fetch_or_relaxed */ |
| 1853 | 1855 | |
| 1854 | 1856 | #ifndef atomic64_fetch_or_acquire |
| 1855 | −static inline s64 | |
| 1857 | +static __always_inline s64 | |
| 1856 | 1858 | atomic64_fetch_or_acquire(s64 i, atomic64_t *v) |
| 1857 | 1859 | { |
| 1858 | 1860 | s64 ret = atomic64_fetch_or_relaxed(i, v); |
| @@ -1863,7 +1865,7 @@ atomic64_fetch_or_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1863 | 1865 | #endif |
| 1864 | 1866 | |
| 1865 | 1867 | #ifndef atomic64_fetch_or_release |
| 1866 | −static inline s64 | |
| 1868 | +static __always_inline s64 | |
| 1867 | 1869 | atomic64_fetch_or_release(s64 i, atomic64_t *v) |
| 1868 | 1870 | { |
| 1869 | 1871 | __atomic_release_fence(); |
| @@ -1873,7 +1875,7 @@ atomic64_fetch_or_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1873 | 1875 | #endif |
| 1874 | 1876 | |
| 1875 | 1877 | #ifndef atomic64_fetch_or |
| 1876 | −static inline s64 | |
| 1878 | +static __always_inline s64 | |
| 1877 | 1879 | atomic64_fetch_or(s64 i, atomic64_t *v) |
| 1878 | 1880 | { |
| 1879 | 1881 | s64 ret; |
| @@ -1894,7 +1896,7 @@ atomic64_fetch_or(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1894 | 1896 | #else /* atomic64_fetch_xor_relaxed */ |
| 1895 | 1897 | |
| 1896 | 1898 | #ifndef atomic64_fetch_xor_acquire |
| 1897 | −static inline s64 | |
| 1899 | +static __always_inline s64 | |
| 1898 | 1900 | atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) |
| 1899 | 1901 | { |
| 1900 | 1902 | s64 ret = atomic64_fetch_xor_relaxed(i, v); |
| @@ -1905,7 +1907,7 @@ atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) · 4 unmodified lines | ||
| 1905 | 1907 | #endif |
| 1906 | 1908 | |
| 1907 | 1909 | #ifndef atomic64_fetch_xor_release |
| 1908 | −static inline s64 | |
| 1910 | +static __always_inline s64 | |
| 1909 | 1911 | atomic64_fetch_xor_release(s64 i, atomic64_t *v) |
| 1910 | 1912 | { |
| 1911 | 1913 | __atomic_release_fence(); |
| @@ -1915,7 +1917,7 @@ atomic64_fetch_xor_release(s64 i, atomic64_t *v) · 3 unmodified lines | ||
| 1915 | 1917 | #endif |
| 1916 | 1918 | |
| 1917 | 1919 | #ifndef atomic64_fetch_xor |
| 1918 | −static inline s64 | |
| 1920 | +static __always_inline s64 | |
| 1919 | 1921 | atomic64_fetch_xor(s64 i, atomic64_t *v) |
| 1920 | 1922 | { |
| 1921 | 1923 | s64 ret; |
| @@ -1936,7 +1938,7 @@ atomic64_fetch_xor(s64 i, atomic64_t *v) · 14 unmodified lines | ||
| 1936 | 1938 | #else /* atomic64_xchg_relaxed */ |
| 1937 | 1939 | |
| 1938 | 1940 | #ifndef atomic64_xchg_acquire |
| 1939 | −static inline s64 | |
| 1941 | +static __always_inline s64 | |
| 1940 | 1942 | atomic64_xchg_acquire(atomic64_t *v, s64 i) |
| 1941 | 1943 | { |
| 1942 | 1944 | s64 ret = atomic64_xchg_relaxed(v, i); |
| @@ -1947,7 +1949,7 @@ atomic64_xchg_acquire(atomic64_t *v, s64 i) · 4 unmodified lines | ||
| 1947 | 1949 | #endif |
| 1948 | 1950 | |
| 1949 | 1951 | #ifndef atomic64_xchg_release |
| 1950 | −static inline s64 | |
| 1952 | +static __always_inline s64 | |
| 1951 | 1953 | atomic64_xchg_release(atomic64_t *v, s64 i) |
| 1952 | 1954 | { |
| 1953 | 1955 | __atomic_release_fence(); |
| @@ -1957,7 +1959,7 @@ atomic64_xchg_release(atomic64_t *v, s64 i) · 3 unmodified lines | ||
| 1957 | 1959 | #endif |
| 1958 | 1960 | |
| 1959 | 1961 | #ifndef atomic64_xchg |
| 1960 | −static inline s64 | |
| 1962 | +static __always_inline s64 | |
| 1961 | 1963 | atomic64_xchg(atomic64_t *v, s64 i) |
| 1962 | 1964 | { |
| 1963 | 1965 | s64 ret; |
| @@ -1978,7 +1980,7 @@ atomic64_xchg(atomic64_t *v, s64 i) · 14 unmodified lines | ||
| 1978 | 1980 | #else /* atomic64_cmpxchg_relaxed */ |
| 1979 | 1981 | |
| 1980 | 1982 | #ifndef atomic64_cmpxchg_acquire |
| 1981 | −static inline s64 | |
| 1983 | +static __always_inline s64 | |
| 1982 | 1984 | atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new) |
| 1983 | 1985 | { |
| 1984 | 1986 | s64 ret = atomic64_cmpxchg_relaxed(v, old, new); |
| @@ -1989,7 +1991,7 @@ atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new) · 4 unmodified lines | ||
| 1989 | 1991 | #endif |
| 1990 | 1992 | |
| 1991 | 1993 | #ifndef atomic64_cmpxchg_release |
| 1992 | −static inline s64 | |
| 1994 | +static __always_inline s64 | |
| 1993 | 1995 | atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) |
| 1994 | 1996 | { |
| 1995 | 1997 | __atomic_release_fence(); |
| @@ -1999,7 +2001,7 @@ atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) · 3 unmodified lines | ||
| 1999 | 2001 | #endif |
| 2000 | 2002 | |
| 2001 | 2003 | #ifndef atomic64_cmpxchg |
| 2002 | −static inline s64 | |
| 2004 | +static __always_inline s64 | |
| 2003 | 2005 | atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) |
| 2004 | 2006 | { |
| 2005 | 2007 | s64 ret; |
| @@ -2021,7 +2023,7 @@ atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) · 15 unmodified lines | ||
| 2021 | 2023 | #endif /* atomic64_try_cmpxchg */ |
| 2022 | 2024 | |
| 2023 | 2025 | #ifndef atomic64_try_cmpxchg |
| 2024 | −static inline bool | |
| 2026 | +static __always_inline bool | |
| 2025 | 2027 | atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) |
| 2026 | 2028 | { |
| 2027 | 2029 | s64 r, o = *old; |
| @@ -2034,7 +2036,7 @@ atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines | ||
| 2034 | 2036 | #endif |
| 2035 | 2037 | |
| 2036 | 2038 | #ifndef atomic64_try_cmpxchg_acquire |
| 2037 | −static inline bool | |
| 2039 | +static __always_inline bool | |
| 2038 | 2040 | atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) |
| 2039 | 2041 | { |
| 2040 | 2042 | s64 r, o = *old; |
| @@ -2047,7 +2049,7 @@ atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines | ||
| 2047 | 2049 | #endif |
| 2048 | 2050 | |
| 2049 | 2051 | #ifndef atomic64_try_cmpxchg_release |
| 2050 | −static inline bool | |
| 2052 | +static __always_inline bool | |
| 2051 | 2053 | atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) |
| 2052 | 2054 | { |
| 2053 | 2055 | s64 r, o = *old; |
| @@ -2060,7 +2062,7 @@ atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines | ||
| 2060 | 2062 | #endif |
| 2061 | 2063 | |
| 2062 | 2064 | #ifndef atomic64_try_cmpxchg_relaxed |
| 2063 | −static inline bool | |
| 2065 | +static __always_inline bool | |
| 2064 | 2066 | atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) |
| 2065 | 2067 | { |
| 2066 | 2068 | s64 r, o = *old; |
| @@ -2075,7 +2077,7 @@ atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) · 8 unmodified lines | ||
| 2075 | 2077 | #else /* atomic64_try_cmpxchg_relaxed */ |
| 2076 | 2078 | |
| 2077 | 2079 | #ifndef atomic64_try_cmpxchg_acquire |
| 2078 | −static inline bool | |
| 2080 | +static __always_inline bool | |
| 2079 | 2081 | atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) |
| 2080 | 2082 | { |
| 2081 | 2083 | bool ret = atomic64_try_cmpxchg_relaxed(v, old, new); |
| @@ -2086,7 +2088,7 @@ atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) · 4 unmodified lines | ||
| 2086 | 2088 | #endif |
| 2087 | 2089 | |
| 2088 | 2090 | #ifndef atomic64_try_cmpxchg_release |
| 2089 | −static inline bool | |
| 2091 | +static __always_inline bool | |
| 2090 | 2092 | atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) |
| 2091 | 2093 | { |
| 2092 | 2094 | __atomic_release_fence(); |
| @@ -2096,7 +2098,7 @@ atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) · 3 unmodified lines | ||
| 2096 | 2098 | #endif |
| 2097 | 2099 | |
| 2098 | 2100 | #ifndef atomic64_try_cmpxchg |
| 2099 | −static inline bool | |
| 2101 | +static __always_inline bool | |
| 2100 | 2102 | atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) |
| 2101 | 2103 | { |
| 2102 | 2104 | bool ret; |
| @@ -2120,7 +2122,7 @@ atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) · 17 unmodified lines | ||
| 2120 | 2122 | * true if the result is zero, or false for all |
| 2121 | 2123 | * other cases. |
| 2122 | 2124 | */ |
| 2123 | −static inline bool | |
| 2125 | +static __always_inline bool | |
| 2124 | 2126 | atomic64_sub_and_test(s64 i, atomic64_t *v) |
| 2125 | 2127 | { |
| 2126 | 2128 | return atomic64_sub_return(i, v) == 0; |
| @@ -2137,7 +2139,7 @@ atomic64_sub_and_test(s64 i, atomic64_t *v) · 10 unmodified lines | ||
| 2137 | 2139 | * returns true if the result is 0, or false for all other |
| 2138 | 2140 | * cases. |
| 2139 | 2141 | */ |
| 2140 | −static inline bool | |
| 2142 | +static __always_inline bool | |
| 2141 | 2143 | atomic64_dec_and_test(atomic64_t *v) |
| 2142 | 2144 | { |
| 2143 | 2145 | return atomic64_dec_return(v) == 0; |
| @@ -2154,7 +2156,7 @@ atomic64_dec_and_test(atomic64_t *v) · 10 unmodified lines | ||
| 2154 | 2156 | * and returns true if the result is zero, or false for all |
| 2155 | 2157 | * other cases. |
| 2156 | 2158 | */ |
| 2157 | −static inline bool | |
| 2159 | +static __always_inline bool | |
| 2158 | 2160 | atomic64_inc_and_test(atomic64_t *v) |
| 2159 | 2161 | { |
| 2160 | 2162 | return atomic64_inc_return(v) == 0; |
| @@ -2172,7 +2174,7 @@ atomic64_inc_and_test(atomic64_t *v) · 11 unmodified lines | ||
| 2172 | 2174 | * if the result is negative, or false when |
| 2173 | 2175 | * result is greater than or equal to zero. |
| 2174 | 2176 | */ |
| 2175 | −static inline bool | |
| 2177 | +static __always_inline bool | |
| 2176 | 2178 | atomic64_add_negative(s64 i, atomic64_t *v) |
| 2177 | 2179 | { |
| 2178 | 2180 | return atomic64_add_return(i, v) < 0; |
| @@ -2190,7 +2192,7 @@ atomic64_add_negative(s64 i, atomic64_t *v) · 11 unmodified lines | ||
| 2190 | 2192 | * Atomically adds @a to @v, so long as @v was not already @u. |
| 2191 | 2193 | * Returns original value of @v |
| 2192 | 2194 | */ |
| 2193 | −static inline s64 | |
| 2195 | +static __always_inline s64 | |
| 2194 | 2196 | atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) |
| 2195 | 2197 | { |
| 2196 | 2198 | s64 c = atomic64_read(v); |
| @@ -2215,7 +2217,7 @@ atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) · 18 unmodified lines | ||
| 2215 | 2217 | * Atomically adds @a to @v, if @v was not already @u. |
| 2216 | 2218 | * Returns true if the addition was done. |
| 2217 | 2219 | */ |
| 2218 | −static inline bool | |
| 2220 | +static __always_inline bool | |
| 2219 | 2221 | atomic64_add_unless(atomic64_t *v, s64 a, s64 u) |
| 2220 | 2222 | { |
| 2221 | 2223 | return atomic64_fetch_add_unless(v, a, u) != u; |
| @@ -2231,7 +2233,7 @@ atomic64_add_unless(atomic64_t *v, s64 a, s64 u) · 9 unmodified lines | ||
| 2231 | 2233 | * Atomically increments @v by 1, if @v is non-zero. |
| 2232 | 2234 | * Returns true if the increment was done. |
| 2233 | 2235 | */ |
| 2234 | −static inline bool | |
| 2236 | +static __always_inline bool | |
| 2235 | 2237 | atomic64_inc_not_zero(atomic64_t *v) |
| 2236 | 2238 | { |
| 2237 | 2239 | return atomic64_add_unless(v, 1, 0); |
| @@ -2240,7 +2242,7 @@ atomic64_inc_not_zero(atomic64_t *v) · 2 unmodified lines | ||
| 2240 | 2242 | #endif |
| 2241 | 2243 | |
| 2242 | 2244 | #ifndef atomic64_inc_unless_negative |
| 2243 | −static inline bool | |
| 2245 | +static __always_inline bool | |
| 2244 | 2246 | atomic64_inc_unless_negative(atomic64_t *v) |
| 2245 | 2247 | { |
| 2246 | 2248 | s64 c = atomic64_read(v); |
| @@ -2256,7 +2258,7 @@ atomic64_inc_unless_negative(atomic64_t *v) · 9 unmodified lines | ||
| 2256 | 2258 | #endif |
| 2257 | 2259 | |
| 2258 | 2260 | #ifndef atomic64_dec_unless_positive |
| 2259 | −static inline bool | |
| 2261 | +static __always_inline bool | |
| 2260 | 2262 | atomic64_dec_unless_positive(atomic64_t *v) |
| 2261 | 2263 | { |
| 2262 | 2264 | s64 c = atomic64_read(v); |
| @@ -2272,7 +2274,7 @@ atomic64_dec_unless_positive(atomic64_t *v) · 9 unmodified lines | ||
| 2272 | 2274 | #endif |
| 2273 | 2275 | |
| 2274 | 2276 | #ifndef atomic64_dec_if_positive |
| 2275 | −static inline s64 | |
| 2277 | +static __always_inline s64 | |
| 2276 | 2278 | atomic64_dec_if_positive(atomic64_t *v) |
| 2277 | 2279 | { |
| 2278 | 2280 | s64 dec, c = atomic64_read(v); |
| @@ -2292,4 +2294,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 13 unmodified lines | ||
| 2292 | 2294 | #define atomic64_cond_read_relaxed(v, c) smp_cond_load_relaxed(&(v)->counter, (c)) |
| 2293 | 2295 | |
| 2294 | 2296 | #endif /* _LINUX_ATOMIC_FALLBACK_H */ |
| 2295 | −// 25de4a2804d70f57e994fe3b419148658bb5378a | |
| 2297 | +// baaf45f4c24ed88ceae58baca39d7fd80bb8101b | |