History

asm-generic/atomic: Use __always_inline for fallback wrappers

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)

Marco Elver committed 6 years ago

Commit 944bc9c1 parent c02039521 files · +192 −188Browse files

Showing the changes to include/linux (1 of 21 files). Show all

Unified · Split

include/linux/atomic-fallback.h+171−169
@@ -6,6 +6,8 @@ · 5 unmodified lines
66 #ifndef _LINUX_ATOMIC_FALLBACK_H
77 #define _LINUX_ATOMIC_FALLBACK_H
88
9+#include <linux/compiler.h>
10+
911 #ifndef xchg_relaxed
1012 #define xchg_relaxed xchg
1113 #define xchg_acquire xchg
@@ -76,7 +78,7 @@ · 64 unmodified lines
7678 #endif /* cmpxchg64_relaxed */
7779
7880 #ifndef atomic_read_acquire
79−static inline int
81+static __always_inline int
8082 atomic_read_acquire(const atomic_t *v)
8183 {
8284 return smp_load_acquire(&(v)->counter);
@@ -85,7 +87,7 @@ atomic_read_acquire(const atomic_t *v) · 2 unmodified lines
8587 #endif
8688
8789 #ifndef atomic_set_release
88−static inline void
90+static __always_inline void
8991 atomic_set_release(atomic_t *v, int i)
9092 {
9193 smp_store_release(&(v)->counter, i);
@@ -100,7 +102,7 @@ atomic_set_release(atomic_t *v, int i) · 8 unmodified lines
100102 #else /* atomic_add_return_relaxed */
101103
102104 #ifndef atomic_add_return_acquire
103−static inline int
105+static __always_inline int
104106 atomic_add_return_acquire(int i, atomic_t *v)
105107 {
106108 int ret = atomic_add_return_relaxed(i, v);
@@ -111,7 +113,7 @@ atomic_add_return_acquire(int i, atomic_t *v) · 4 unmodified lines
111113 #endif
112114
113115 #ifndef atomic_add_return_release
114−static inline int
116+static __always_inline int
115117 atomic_add_return_release(int i, atomic_t *v)
116118 {
117119 __atomic_release_fence();
@@ -121,7 +123,7 @@ atomic_add_return_release(int i, atomic_t *v) · 3 unmodified lines
121123 #endif
122124
123125 #ifndef atomic_add_return
124−static inline int
126+static __always_inline int
125127 atomic_add_return(int i, atomic_t *v)
126128 {
127129 int ret;
@@ -142,7 +144,7 @@ atomic_add_return(int i, atomic_t *v) · 14 unmodified lines
142144 #else /* atomic_fetch_add_relaxed */
143145
144146 #ifndef atomic_fetch_add_acquire
145−static inline int
147+static __always_inline int
146148 atomic_fetch_add_acquire(int i, atomic_t *v)
147149 {
148150 int ret = atomic_fetch_add_relaxed(i, v);
@@ -153,7 +155,7 @@ atomic_fetch_add_acquire(int i, atomic_t *v) · 4 unmodified lines
153155 #endif
154156
155157 #ifndef atomic_fetch_add_release
156−static inline int
158+static __always_inline int
157159 atomic_fetch_add_release(int i, atomic_t *v)
158160 {
159161 __atomic_release_fence();
@@ -163,7 +165,7 @@ atomic_fetch_add_release(int i, atomic_t *v) · 3 unmodified lines
163165 #endif
164166
165167 #ifndef atomic_fetch_add
166−static inline int
168+static __always_inline int
167169 atomic_fetch_add(int i, atomic_t *v)
168170 {
169171 int ret;
@@ -184,7 +186,7 @@ atomic_fetch_add(int i, atomic_t *v) · 14 unmodified lines
184186 #else /* atomic_sub_return_relaxed */
185187
186188 #ifndef atomic_sub_return_acquire
187−static inline int
189+static __always_inline int
188190 atomic_sub_return_acquire(int i, atomic_t *v)
189191 {
190192 int ret = atomic_sub_return_relaxed(i, v);
@@ -195,7 +197,7 @@ atomic_sub_return_acquire(int i, atomic_t *v) · 4 unmodified lines
195197 #endif
196198
197199 #ifndef atomic_sub_return_release
198−static inline int
200+static __always_inline int
199201 atomic_sub_return_release(int i, atomic_t *v)
200202 {
201203 __atomic_release_fence();
@@ -205,7 +207,7 @@ atomic_sub_return_release(int i, atomic_t *v) · 3 unmodified lines
205207 #endif
206208
207209 #ifndef atomic_sub_return
208−static inline int
210+static __always_inline int
209211 atomic_sub_return(int i, atomic_t *v)
210212 {
211213 int ret;
@@ -226,7 +228,7 @@ atomic_sub_return(int i, atomic_t *v) · 14 unmodified lines
226228 #else /* atomic_fetch_sub_relaxed */
227229
228230 #ifndef atomic_fetch_sub_acquire
229−static inline int
231+static __always_inline int
230232 atomic_fetch_sub_acquire(int i, atomic_t *v)
231233 {
232234 int ret = atomic_fetch_sub_relaxed(i, v);
@@ -237,7 +239,7 @@ atomic_fetch_sub_acquire(int i, atomic_t *v) · 4 unmodified lines
237239 #endif
238240
239241 #ifndef atomic_fetch_sub_release
240−static inline int
242+static __always_inline int
241243 atomic_fetch_sub_release(int i, atomic_t *v)
242244 {
243245 __atomic_release_fence();
@@ -247,7 +249,7 @@ atomic_fetch_sub_release(int i, atomic_t *v) · 3 unmodified lines
247249 #endif
248250
249251 #ifndef atomic_fetch_sub
250−static inline int
252+static __always_inline int
251253 atomic_fetch_sub(int i, atomic_t *v)
252254 {
253255 int ret;
@@ -262,7 +264,7 @@ atomic_fetch_sub(int i, atomic_t *v) · 8 unmodified lines
262264 #endif /* atomic_fetch_sub_relaxed */
263265
264266 #ifndef atomic_inc
265−static inline void
267+static __always_inline void
266268 atomic_inc(atomic_t *v)
267269 {
268270 atomic_add(1, v);
@@ -278,7 +280,7 @@ atomic_inc(atomic_t *v) · 9 unmodified lines
278280 #endif /* atomic_inc_return */
279281
280282 #ifndef atomic_inc_return
281−static inline int
283+static __always_inline int
282284 atomic_inc_return(atomic_t *v)
283285 {
284286 return atomic_add_return(1, v);
@@ -287,7 +289,7 @@ atomic_inc_return(atomic_t *v) · 2 unmodified lines
287289 #endif
288290
289291 #ifndef atomic_inc_return_acquire
290−static inline int
292+static __always_inline int
291293 atomic_inc_return_acquire(atomic_t *v)
292294 {
293295 return atomic_add_return_acquire(1, v);
@@ -296,7 +298,7 @@ atomic_inc_return_acquire(atomic_t *v) · 2 unmodified lines
296298 #endif
297299
298300 #ifndef atomic_inc_return_release
299−static inline int
301+static __always_inline int
300302 atomic_inc_return_release(atomic_t *v)
301303 {
302304 return atomic_add_return_release(1, v);
@@ -305,7 +307,7 @@ atomic_inc_return_release(atomic_t *v) · 2 unmodified lines
305307 #endif
306308
307309 #ifndef atomic_inc_return_relaxed
308−static inline int
310+static __always_inline int
309311 atomic_inc_return_relaxed(atomic_t *v)
310312 {
311313 return atomic_add_return_relaxed(1, v);
@@ -316,7 +318,7 @@ atomic_inc_return_relaxed(atomic_t *v) · 4 unmodified lines
316318 #else /* atomic_inc_return_relaxed */
317319
318320 #ifndef atomic_inc_return_acquire
319−static inline int
321+static __always_inline int
320322 atomic_inc_return_acquire(atomic_t *v)
321323 {
322324 int ret = atomic_inc_return_relaxed(v);
@@ -327,7 +329,7 @@ atomic_inc_return_acquire(atomic_t *v) · 4 unmodified lines
327329 #endif
328330
329331 #ifndef atomic_inc_return_release
330−static inline int
332+static __always_inline int
331333 atomic_inc_return_release(atomic_t *v)
332334 {
333335 __atomic_release_fence();
@@ -337,7 +339,7 @@ atomic_inc_return_release(atomic_t *v) · 3 unmodified lines
337339 #endif
338340
339341 #ifndef atomic_inc_return
340−static inline int
342+static __always_inline int
341343 atomic_inc_return(atomic_t *v)
342344 {
343345 int ret;
@@ -359,7 +361,7 @@ atomic_inc_return(atomic_t *v) · 15 unmodified lines
359361 #endif /* atomic_fetch_inc */
360362
361363 #ifndef atomic_fetch_inc
362−static inline int
364+static __always_inline int
363365 atomic_fetch_inc(atomic_t *v)
364366 {
365367 return atomic_fetch_add(1, v);
@@ -368,7 +370,7 @@ atomic_fetch_inc(atomic_t *v) · 2 unmodified lines
368370 #endif
369371
370372 #ifndef atomic_fetch_inc_acquire
371−static inline int
373+static __always_inline int
372374 atomic_fetch_inc_acquire(atomic_t *v)
373375 {
374376 return atomic_fetch_add_acquire(1, v);
@@ -377,7 +379,7 @@ atomic_fetch_inc_acquire(atomic_t *v) · 2 unmodified lines
377379 #endif
378380
379381 #ifndef atomic_fetch_inc_release
380−static inline int
382+static __always_inline int
381383 atomic_fetch_inc_release(atomic_t *v)
382384 {
383385 return atomic_fetch_add_release(1, v);
@@ -386,7 +388,7 @@ atomic_fetch_inc_release(atomic_t *v) · 2 unmodified lines
386388 #endif
387389
388390 #ifndef atomic_fetch_inc_relaxed
389−static inline int
391+static __always_inline int
390392 atomic_fetch_inc_relaxed(atomic_t *v)
391393 {
392394 return atomic_fetch_add_relaxed(1, v);
@@ -397,7 +399,7 @@ atomic_fetch_inc_relaxed(atomic_t *v) · 4 unmodified lines
397399 #else /* atomic_fetch_inc_relaxed */
398400
399401 #ifndef atomic_fetch_inc_acquire
400−static inline int
402+static __always_inline int
401403 atomic_fetch_inc_acquire(atomic_t *v)
402404 {
403405 int ret = atomic_fetch_inc_relaxed(v);
@@ -408,7 +410,7 @@ atomic_fetch_inc_acquire(atomic_t *v) · 4 unmodified lines
408410 #endif
409411
410412 #ifndef atomic_fetch_inc_release
411−static inline int
413+static __always_inline int
412414 atomic_fetch_inc_release(atomic_t *v)
413415 {
414416 __atomic_release_fence();
@@ -418,7 +420,7 @@ atomic_fetch_inc_release(atomic_t *v) · 3 unmodified lines
418420 #endif
419421
420422 #ifndef atomic_fetch_inc
421−static inline int
423+static __always_inline int
422424 atomic_fetch_inc(atomic_t *v)
423425 {
424426 int ret;
@@ -433,7 +435,7 @@ atomic_fetch_inc(atomic_t *v) · 8 unmodified lines
433435 #endif /* atomic_fetch_inc_relaxed */
434436
435437 #ifndef atomic_dec
436−static inline void
438+static __always_inline void
437439 atomic_dec(atomic_t *v)
438440 {
439441 atomic_sub(1, v);
@@ -449,7 +451,7 @@ atomic_dec(atomic_t *v) · 9 unmodified lines
449451 #endif /* atomic_dec_return */
450452
451453 #ifndef atomic_dec_return
452−static inline int
454+static __always_inline int
453455 atomic_dec_return(atomic_t *v)
454456 {
455457 return atomic_sub_return(1, v);
@@ -458,7 +460,7 @@ atomic_dec_return(atomic_t *v) · 2 unmodified lines
458460 #endif
459461
460462 #ifndef atomic_dec_return_acquire
461−static inline int
463+static __always_inline int
462464 atomic_dec_return_acquire(atomic_t *v)
463465 {
464466 return atomic_sub_return_acquire(1, v);
@@ -467,7 +469,7 @@ atomic_dec_return_acquire(atomic_t *v) · 2 unmodified lines
467469 #endif
468470
469471 #ifndef atomic_dec_return_release
470−static inline int
472+static __always_inline int
471473 atomic_dec_return_release(atomic_t *v)
472474 {
473475 return atomic_sub_return_release(1, v);
@@ -476,7 +478,7 @@ atomic_dec_return_release(atomic_t *v) · 2 unmodified lines
476478 #endif
477479
478480 #ifndef atomic_dec_return_relaxed
479−static inline int
481+static __always_inline int
480482 atomic_dec_return_relaxed(atomic_t *v)
481483 {
482484 return atomic_sub_return_relaxed(1, v);
@@ -487,7 +489,7 @@ atomic_dec_return_relaxed(atomic_t *v) · 4 unmodified lines
487489 #else /* atomic_dec_return_relaxed */
488490
489491 #ifndef atomic_dec_return_acquire
490−static inline int
492+static __always_inline int
491493 atomic_dec_return_acquire(atomic_t *v)
492494 {
493495 int ret = atomic_dec_return_relaxed(v);
@@ -498,7 +500,7 @@ atomic_dec_return_acquire(atomic_t *v) · 4 unmodified lines
498500 #endif
499501
500502 #ifndef atomic_dec_return_release
501−static inline int
503+static __always_inline int
502504 atomic_dec_return_release(atomic_t *v)
503505 {
504506 __atomic_release_fence();
@@ -508,7 +510,7 @@ atomic_dec_return_release(atomic_t *v) · 3 unmodified lines
508510 #endif
509511
510512 #ifndef atomic_dec_return
511−static inline int
513+static __always_inline int
512514 atomic_dec_return(atomic_t *v)
513515 {
514516 int ret;
@@ -530,7 +532,7 @@ atomic_dec_return(atomic_t *v) · 15 unmodified lines
530532 #endif /* atomic_fetch_dec */
531533
532534 #ifndef atomic_fetch_dec
533−static inline int
535+static __always_inline int
534536 atomic_fetch_dec(atomic_t *v)
535537 {
536538 return atomic_fetch_sub(1, v);
@@ -539,7 +541,7 @@ atomic_fetch_dec(atomic_t *v) · 2 unmodified lines
539541 #endif
540542
541543 #ifndef atomic_fetch_dec_acquire
542−static inline int
544+static __always_inline int
543545 atomic_fetch_dec_acquire(atomic_t *v)
544546 {
545547 return atomic_fetch_sub_acquire(1, v);
@@ -548,7 +550,7 @@ atomic_fetch_dec_acquire(atomic_t *v) · 2 unmodified lines
548550 #endif
549551
550552 #ifndef atomic_fetch_dec_release
551−static inline int
553+static __always_inline int
552554 atomic_fetch_dec_release(atomic_t *v)
553555 {
554556 return atomic_fetch_sub_release(1, v);
@@ -557,7 +559,7 @@ atomic_fetch_dec_release(atomic_t *v) · 2 unmodified lines
557559 #endif
558560
559561 #ifndef atomic_fetch_dec_relaxed
560−static inline int
562+static __always_inline int
561563 atomic_fetch_dec_relaxed(atomic_t *v)
562564 {
563565 return atomic_fetch_sub_relaxed(1, v);
@@ -568,7 +570,7 @@ atomic_fetch_dec_relaxed(atomic_t *v) · 4 unmodified lines
568570 #else /* atomic_fetch_dec_relaxed */
569571
570572 #ifndef atomic_fetch_dec_acquire
571−static inline int
573+static __always_inline int
572574 atomic_fetch_dec_acquire(atomic_t *v)
573575 {
574576 int ret = atomic_fetch_dec_relaxed(v);
@@ -579,7 +581,7 @@ atomic_fetch_dec_acquire(atomic_t *v) · 4 unmodified lines
579581 #endif
580582
581583 #ifndef atomic_fetch_dec_release
582−static inline int
584+static __always_inline int
583585 atomic_fetch_dec_release(atomic_t *v)
584586 {
585587 __atomic_release_fence();
@@ -589,7 +591,7 @@ atomic_fetch_dec_release(atomic_t *v) · 3 unmodified lines
589591 #endif
590592
591593 #ifndef atomic_fetch_dec
592−static inline int
594+static __always_inline int
593595 atomic_fetch_dec(atomic_t *v)
594596 {
595597 int ret;
@@ -610,7 +612,7 @@ atomic_fetch_dec(atomic_t *v) · 14 unmodified lines
610612 #else /* atomic_fetch_and_relaxed */
611613
612614 #ifndef atomic_fetch_and_acquire
613−static inline int
615+static __always_inline int
614616 atomic_fetch_and_acquire(int i, atomic_t *v)
615617 {
616618 int ret = atomic_fetch_and_relaxed(i, v);
@@ -621,7 +623,7 @@ atomic_fetch_and_acquire(int i, atomic_t *v) · 4 unmodified lines
621623 #endif
622624
623625 #ifndef atomic_fetch_and_release
624−static inline int
626+static __always_inline int
625627 atomic_fetch_and_release(int i, atomic_t *v)
626628 {
627629 __atomic_release_fence();
@@ -631,7 +633,7 @@ atomic_fetch_and_release(int i, atomic_t *v) · 3 unmodified lines
631633 #endif
632634
633635 #ifndef atomic_fetch_and
634−static inline int
636+static __always_inline int
635637 atomic_fetch_and(int i, atomic_t *v)
636638 {
637639 int ret;
@@ -646,7 +648,7 @@ atomic_fetch_and(int i, atomic_t *v) · 8 unmodified lines
646648 #endif /* atomic_fetch_and_relaxed */
647649
648650 #ifndef atomic_andnot
649−static inline void
651+static __always_inline void
650652 atomic_andnot(int i, atomic_t *v)
651653 {
652654 atomic_and(~i, v);
@@ -662,7 +664,7 @@ atomic_andnot(int i, atomic_t *v) · 9 unmodified lines
662664 #endif /* atomic_fetch_andnot */
663665
664666 #ifndef atomic_fetch_andnot
665−static inline int
667+static __always_inline int
666668 atomic_fetch_andnot(int i, atomic_t *v)
667669 {
668670 return atomic_fetch_and(~i, v);
@@ -671,7 +673,7 @@ atomic_fetch_andnot(int i, atomic_t *v) · 2 unmodified lines
671673 #endif
672674
673675 #ifndef atomic_fetch_andnot_acquire
674−static inline int
676+static __always_inline int
675677 atomic_fetch_andnot_acquire(int i, atomic_t *v)
676678 {
677679 return atomic_fetch_and_acquire(~i, v);
@@ -680,7 +682,7 @@ atomic_fetch_andnot_acquire(int i, atomic_t *v) · 2 unmodified lines
680682 #endif
681683
682684 #ifndef atomic_fetch_andnot_release
683−static inline int
685+static __always_inline int
684686 atomic_fetch_andnot_release(int i, atomic_t *v)
685687 {
686688 return atomic_fetch_and_release(~i, v);
@@ -689,7 +691,7 @@ atomic_fetch_andnot_release(int i, atomic_t *v) · 2 unmodified lines
689691 #endif
690692
691693 #ifndef atomic_fetch_andnot_relaxed
692−static inline int
694+static __always_inline int
693695 atomic_fetch_andnot_relaxed(int i, atomic_t *v)
694696 {
695697 return atomic_fetch_and_relaxed(~i, v);
@@ -700,7 +702,7 @@ atomic_fetch_andnot_relaxed(int i, atomic_t *v) · 4 unmodified lines
700702 #else /* atomic_fetch_andnot_relaxed */
701703
702704 #ifndef atomic_fetch_andnot_acquire
703−static inline int
705+static __always_inline int
704706 atomic_fetch_andnot_acquire(int i, atomic_t *v)
705707 {
706708 int ret = atomic_fetch_andnot_relaxed(i, v);
@@ -711,7 +713,7 @@ atomic_fetch_andnot_acquire(int i, atomic_t *v) · 4 unmodified lines
711713 #endif
712714
713715 #ifndef atomic_fetch_andnot_release
714−static inline int
716+static __always_inline int
715717 atomic_fetch_andnot_release(int i, atomic_t *v)
716718 {
717719 __atomic_release_fence();
@@ -721,7 +723,7 @@ atomic_fetch_andnot_release(int i, atomic_t *v) · 3 unmodified lines
721723 #endif
722724
723725 #ifndef atomic_fetch_andnot
724−static inline int
726+static __always_inline int
725727 atomic_fetch_andnot(int i, atomic_t *v)
726728 {
727729 int ret;
@@ -742,7 +744,7 @@ atomic_fetch_andnot(int i, atomic_t *v) · 14 unmodified lines
742744 #else /* atomic_fetch_or_relaxed */
743745
744746 #ifndef atomic_fetch_or_acquire
745−static inline int
747+static __always_inline int
746748 atomic_fetch_or_acquire(int i, atomic_t *v)
747749 {
748750 int ret = atomic_fetch_or_relaxed(i, v);
@@ -753,7 +755,7 @@ atomic_fetch_or_acquire(int i, atomic_t *v) · 4 unmodified lines
753755 #endif
754756
755757 #ifndef atomic_fetch_or_release
756−static inline int
758+static __always_inline int
757759 atomic_fetch_or_release(int i, atomic_t *v)
758760 {
759761 __atomic_release_fence();
@@ -763,7 +765,7 @@ atomic_fetch_or_release(int i, atomic_t *v) · 3 unmodified lines
763765 #endif
764766
765767 #ifndef atomic_fetch_or
766−static inline int
768+static __always_inline int
767769 atomic_fetch_or(int i, atomic_t *v)
768770 {
769771 int ret;
@@ -784,7 +786,7 @@ atomic_fetch_or(int i, atomic_t *v) · 14 unmodified lines
784786 #else /* atomic_fetch_xor_relaxed */
785787
786788 #ifndef atomic_fetch_xor_acquire
787−static inline int
789+static __always_inline int
788790 atomic_fetch_xor_acquire(int i, atomic_t *v)
789791 {
790792 int ret = atomic_fetch_xor_relaxed(i, v);
@@ -795,7 +797,7 @@ atomic_fetch_xor_acquire(int i, atomic_t *v) · 4 unmodified lines
795797 #endif
796798
797799 #ifndef atomic_fetch_xor_release
798−static inline int
800+static __always_inline int
799801 atomic_fetch_xor_release(int i, atomic_t *v)
800802 {
801803 __atomic_release_fence();
@@ -805,7 +807,7 @@ atomic_fetch_xor_release(int i, atomic_t *v) · 3 unmodified lines
805807 #endif
806808
807809 #ifndef atomic_fetch_xor
808−static inline int
810+static __always_inline int
809811 atomic_fetch_xor(int i, atomic_t *v)
810812 {
811813 int ret;
@@ -826,7 +828,7 @@ atomic_fetch_xor(int i, atomic_t *v) · 14 unmodified lines
826828 #else /* atomic_xchg_relaxed */
827829
828830 #ifndef atomic_xchg_acquire
829−static inline int
831+static __always_inline int
830832 atomic_xchg_acquire(atomic_t *v, int i)
831833 {
832834 int ret = atomic_xchg_relaxed(v, i);
@@ -837,7 +839,7 @@ atomic_xchg_acquire(atomic_t *v, int i) · 4 unmodified lines
837839 #endif
838840
839841 #ifndef atomic_xchg_release
840−static inline int
842+static __always_inline int
841843 atomic_xchg_release(atomic_t *v, int i)
842844 {
843845 __atomic_release_fence();
@@ -847,7 +849,7 @@ atomic_xchg_release(atomic_t *v, int i) · 3 unmodified lines
847849 #endif
848850
849851 #ifndef atomic_xchg
850−static inline int
852+static __always_inline int
851853 atomic_xchg(atomic_t *v, int i)
852854 {
853855 int ret;
@@ -868,7 +870,7 @@ atomic_xchg(atomic_t *v, int i) · 14 unmodified lines
868870 #else /* atomic_cmpxchg_relaxed */
869871
870872 #ifndef atomic_cmpxchg_acquire
871−static inline int
873+static __always_inline int
872874 atomic_cmpxchg_acquire(atomic_t *v, int old, int new)
873875 {
874876 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
879881 #endif
880882
881883 #ifndef atomic_cmpxchg_release
882−static inline int
884+static __always_inline int
883885 atomic_cmpxchg_release(atomic_t *v, int old, int new)
884886 {
885887 __atomic_release_fence();
@@ -889,7 +891,7 @@ atomic_cmpxchg_release(atomic_t *v, int old, int new) · 3 unmodified lines
889891 #endif
890892
891893 #ifndef atomic_cmpxchg
892−static inline int
894+static __always_inline int
893895 atomic_cmpxchg(atomic_t *v, int old, int new)
894896 {
895897 int ret;
@@ -911,7 +913,7 @@ atomic_cmpxchg(atomic_t *v, int old, int new) · 15 unmodified lines
911913 #endif /* atomic_try_cmpxchg */
912914
913915 #ifndef atomic_try_cmpxchg
914−static inline bool
916+static __always_inline bool
915917 atomic_try_cmpxchg(atomic_t *v, int *old, int new)
916918 {
917919 int r, o = *old;
@@ -924,7 +926,7 @@ atomic_try_cmpxchg(atomic_t *v, int *old, int new) · 6 unmodified lines
924926 #endif
925927
926928 #ifndef atomic_try_cmpxchg_acquire
927−static inline bool
929+static __always_inline bool
928930 atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new)
929931 {
930932 int r, o = *old;
@@ -937,7 +939,7 @@ atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new) · 6 unmodified lines
937939 #endif
938940
939941 #ifndef atomic_try_cmpxchg_release
940−static inline bool
942+static __always_inline bool
941943 atomic_try_cmpxchg_release(atomic_t *v, int *old, int new)
942944 {
943945 int r, o = *old;
@@ -950,7 +952,7 @@ atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) · 6 unmodified lines
950952 #endif
951953
952954 #ifndef atomic_try_cmpxchg_relaxed
953−static inline bool
955+static __always_inline bool
954956 atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new)
955957 {
956958 int r, o = *old;
@@ -965,7 +967,7 @@ atomic_try_cmpxchg_relaxed(atomic_t *v, int *old, int new) · 8 unmodified lines
965967 #else /* atomic_try_cmpxchg_relaxed */
966968
967969 #ifndef atomic_try_cmpxchg_acquire
968−static inline bool
970+static __always_inline bool
969971 atomic_try_cmpxchg_acquire(atomic_t *v, int *old, int new)
970972 {
971973 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
976978 #endif
977979
978980 #ifndef atomic_try_cmpxchg_release
979−static inline bool
981+static __always_inline bool
980982 atomic_try_cmpxchg_release(atomic_t *v, int *old, int new)
981983 {
982984 __atomic_release_fence();
@@ -986,7 +988,7 @@ atomic_try_cmpxchg_release(atomic_t *v, int *old, int new) · 3 unmodified lines
986988 #endif
987989
988990 #ifndef atomic_try_cmpxchg
989−static inline bool
991+static __always_inline bool
990992 atomic_try_cmpxchg(atomic_t *v, int *old, int new)
991993 {
992994 bool ret;
@@ -1010,7 +1012,7 @@ atomic_try_cmpxchg(atomic_t *v, int *old, int new) · 17 unmodified lines
10101012 * true if the result is zero, or false for all
10111013 * other cases.
10121014 */
1013−static inline bool
1015+static __always_inline bool
10141016 atomic_sub_and_test(int i, atomic_t *v)
10151017 {
10161018 return atomic_sub_return(i, v) == 0;
@@ -1027,7 +1029,7 @@ atomic_sub_and_test(int i, atomic_t *v) · 10 unmodified lines
10271029 * returns true if the result is 0, or false for all other
10281030 * cases.
10291031 */
1030−static inline bool
1032+static __always_inline bool
10311033 atomic_dec_and_test(atomic_t *v)
10321034 {
10331035 return atomic_dec_return(v) == 0;
@@ -1044,7 +1046,7 @@ atomic_dec_and_test(atomic_t *v) · 10 unmodified lines
10441046 * and returns true if the result is zero, or false for all
10451047 * other cases.
10461048 */
1047−static inline bool
1049+static __always_inline bool
10481050 atomic_inc_and_test(atomic_t *v)
10491051 {
10501052 return atomic_inc_return(v) == 0;
@@ -1062,7 +1064,7 @@ atomic_inc_and_test(atomic_t *v) · 11 unmodified lines
10621064 * if the result is negative, or false when
10631065 * result is greater than or equal to zero.
10641066 */
1065−static inline bool
1067+static __always_inline bool
10661068 atomic_add_negative(int i, atomic_t *v)
10671069 {
10681070 return atomic_add_return(i, v) < 0;
@@ -1080,7 +1082,7 @@ atomic_add_negative(int i, atomic_t *v) · 11 unmodified lines
10801082 * Atomically adds @a to @v, so long as @v was not already @u.
10811083 * Returns original value of @v
10821084 */
1083−static inline int
1085+static __always_inline int
10841086 atomic_fetch_add_unless(atomic_t *v, int a, int u)
10851087 {
10861088 int c = atomic_read(v);
@@ -1105,7 +1107,7 @@ atomic_fetch_add_unless(atomic_t *v, int a, int u) · 18 unmodified lines
11051107 * Atomically adds @a to @v, if @v was not already @u.
11061108 * Returns true if the addition was done.
11071109 */
1108−static inline bool
1110+static __always_inline bool
11091111 atomic_add_unless(atomic_t *v, int a, int u)
11101112 {
11111113 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
11211123 * Atomically increments @v by 1, if @v is non-zero.
11221124 * Returns true if the increment was done.
11231125 */
1124−static inline bool
1126+static __always_inline bool
11251127 atomic_inc_not_zero(atomic_t *v)
11261128 {
11271129 return atomic_add_unless(v, 1, 0);
@@ -1130,7 +1132,7 @@ atomic_inc_not_zero(atomic_t *v) · 2 unmodified lines
11301132 #endif
11311133
11321134 #ifndef atomic_inc_unless_negative
1133−static inline bool
1135+static __always_inline bool
11341136 atomic_inc_unless_negative(atomic_t *v)
11351137 {
11361138 int c = atomic_read(v);
@@ -1146,7 +1148,7 @@ atomic_inc_unless_negative(atomic_t *v) · 9 unmodified lines
11461148 #endif
11471149
11481150 #ifndef atomic_dec_unless_positive
1149−static inline bool
1151+static __always_inline bool
11501152 atomic_dec_unless_positive(atomic_t *v)
11511153 {
11521154 int c = atomic_read(v);
@@ -1162,7 +1164,7 @@ atomic_dec_unless_positive(atomic_t *v) · 9 unmodified lines
11621164 #endif
11631165
11641166 #ifndef atomic_dec_if_positive
1165−static inline int
1167+static __always_inline int
11661168 atomic_dec_if_positive(atomic_t *v)
11671169 {
11681170 int dec, c = atomic_read(v);
@@ -1186,7 +1188,7 @@ atomic_dec_if_positive(atomic_t *v) · 17 unmodified lines
11861188 #endif
11871189
11881190 #ifndef atomic64_read_acquire
1189−static inline s64
1191+static __always_inline s64
11901192 atomic64_read_acquire(const atomic64_t *v)
11911193 {
11921194 return smp_load_acquire(&(v)->counter);
@@ -1195,7 +1197,7 @@ atomic64_read_acquire(const atomic64_t *v) · 2 unmodified lines
11951197 #endif
11961198
11971199 #ifndef atomic64_set_release
1198−static inline void
1200+static __always_inline void
11991201 atomic64_set_release(atomic64_t *v, s64 i)
12001202 {
12011203 smp_store_release(&(v)->counter, i);
@@ -1210,7 +1212,7 @@ atomic64_set_release(atomic64_t *v, s64 i) · 8 unmodified lines
12101212 #else /* atomic64_add_return_relaxed */
12111213
12121214 #ifndef atomic64_add_return_acquire
1213−static inline s64
1215+static __always_inline s64
12141216 atomic64_add_return_acquire(s64 i, atomic64_t *v)
12151217 {
12161218 s64 ret = atomic64_add_return_relaxed(i, v);
@@ -1221,7 +1223,7 @@ atomic64_add_return_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
12211223 #endif
12221224
12231225 #ifndef atomic64_add_return_release
1224−static inline s64
1226+static __always_inline s64
12251227 atomic64_add_return_release(s64 i, atomic64_t *v)
12261228 {
12271229 __atomic_release_fence();
@@ -1231,7 +1233,7 @@ atomic64_add_return_release(s64 i, atomic64_t *v) · 3 unmodified lines
12311233 #endif
12321234
12331235 #ifndef atomic64_add_return
1234−static inline s64
1236+static __always_inline s64
12351237 atomic64_add_return(s64 i, atomic64_t *v)
12361238 {
12371239 s64 ret;
@@ -1252,7 +1254,7 @@ atomic64_add_return(s64 i, atomic64_t *v) · 14 unmodified lines
12521254 #else /* atomic64_fetch_add_relaxed */
12531255
12541256 #ifndef atomic64_fetch_add_acquire
1255−static inline s64
1257+static __always_inline s64
12561258 atomic64_fetch_add_acquire(s64 i, atomic64_t *v)
12571259 {
12581260 s64 ret = atomic64_fetch_add_relaxed(i, v);
@@ -1263,7 +1265,7 @@ atomic64_fetch_add_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
12631265 #endif
12641266
12651267 #ifndef atomic64_fetch_add_release
1266−static inline s64
1268+static __always_inline s64
12671269 atomic64_fetch_add_release(s64 i, atomic64_t *v)
12681270 {
12691271 __atomic_release_fence();
@@ -1273,7 +1275,7 @@ atomic64_fetch_add_release(s64 i, atomic64_t *v) · 3 unmodified lines
12731275 #endif
12741276
12751277 #ifndef atomic64_fetch_add
1276−static inline s64
1278+static __always_inline s64
12771279 atomic64_fetch_add(s64 i, atomic64_t *v)
12781280 {
12791281 s64 ret;
@@ -1294,7 +1296,7 @@ atomic64_fetch_add(s64 i, atomic64_t *v) · 14 unmodified lines
12941296 #else /* atomic64_sub_return_relaxed */
12951297
12961298 #ifndef atomic64_sub_return_acquire
1297−static inline s64
1299+static __always_inline s64
12981300 atomic64_sub_return_acquire(s64 i, atomic64_t *v)
12991301 {
13001302 s64 ret = atomic64_sub_return_relaxed(i, v);
@@ -1305,7 +1307,7 @@ atomic64_sub_return_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
13051307 #endif
13061308
13071309 #ifndef atomic64_sub_return_release
1308−static inline s64
1310+static __always_inline s64
13091311 atomic64_sub_return_release(s64 i, atomic64_t *v)
13101312 {
13111313 __atomic_release_fence();
@@ -1315,7 +1317,7 @@ atomic64_sub_return_release(s64 i, atomic64_t *v) · 3 unmodified lines
13151317 #endif
13161318
13171319 #ifndef atomic64_sub_return
1318−static inline s64
1320+static __always_inline s64
13191321 atomic64_sub_return(s64 i, atomic64_t *v)
13201322 {
13211323 s64 ret;
@@ -1336,7 +1338,7 @@ atomic64_sub_return(s64 i, atomic64_t *v) · 14 unmodified lines
13361338 #else /* atomic64_fetch_sub_relaxed */
13371339
13381340 #ifndef atomic64_fetch_sub_acquire
1339−static inline s64
1341+static __always_inline s64
13401342 atomic64_fetch_sub_acquire(s64 i, atomic64_t *v)
13411343 {
13421344 s64 ret = atomic64_fetch_sub_relaxed(i, v);
@@ -1347,7 +1349,7 @@ atomic64_fetch_sub_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
13471349 #endif
13481350
13491351 #ifndef atomic64_fetch_sub_release
1350−static inline s64
1352+static __always_inline s64
13511353 atomic64_fetch_sub_release(s64 i, atomic64_t *v)
13521354 {
13531355 __atomic_release_fence();
@@ -1357,7 +1359,7 @@ atomic64_fetch_sub_release(s64 i, atomic64_t *v) · 3 unmodified lines
13571359 #endif
13581360
13591361 #ifndef atomic64_fetch_sub
1360−static inline s64
1362+static __always_inline s64
13611363 atomic64_fetch_sub(s64 i, atomic64_t *v)
13621364 {
13631365 s64 ret;
@@ -1372,7 +1374,7 @@ atomic64_fetch_sub(s64 i, atomic64_t *v) · 8 unmodified lines
13721374 #endif /* atomic64_fetch_sub_relaxed */
13731375
13741376 #ifndef atomic64_inc
1375−static inline void
1377+static __always_inline void
13761378 atomic64_inc(atomic64_t *v)
13771379 {
13781380 atomic64_add(1, v);
@@ -1388,7 +1390,7 @@ atomic64_inc(atomic64_t *v) · 9 unmodified lines
13881390 #endif /* atomic64_inc_return */
13891391
13901392 #ifndef atomic64_inc_return
1391−static inline s64
1393+static __always_inline s64
13921394 atomic64_inc_return(atomic64_t *v)
13931395 {
13941396 return atomic64_add_return(1, v);
@@ -1397,7 +1399,7 @@ atomic64_inc_return(atomic64_t *v) · 2 unmodified lines
13971399 #endif
13981400
13991401 #ifndef atomic64_inc_return_acquire
1400−static inline s64
1402+static __always_inline s64
14011403 atomic64_inc_return_acquire(atomic64_t *v)
14021404 {
14031405 return atomic64_add_return_acquire(1, v);
@@ -1406,7 +1408,7 @@ atomic64_inc_return_acquire(atomic64_t *v) · 2 unmodified lines
14061408 #endif
14071409
14081410 #ifndef atomic64_inc_return_release
1409−static inline s64
1411+static __always_inline s64
14101412 atomic64_inc_return_release(atomic64_t *v)
14111413 {
14121414 return atomic64_add_return_release(1, v);
@@ -1415,7 +1417,7 @@ atomic64_inc_return_release(atomic64_t *v) · 2 unmodified lines
14151417 #endif
14161418
14171419 #ifndef atomic64_inc_return_relaxed
1418−static inline s64
1420+static __always_inline s64
14191421 atomic64_inc_return_relaxed(atomic64_t *v)
14201422 {
14211423 return atomic64_add_return_relaxed(1, v);
@@ -1426,7 +1428,7 @@ atomic64_inc_return_relaxed(atomic64_t *v) · 4 unmodified lines
14261428 #else /* atomic64_inc_return_relaxed */
14271429
14281430 #ifndef atomic64_inc_return_acquire
1429−static inline s64
1431+static __always_inline s64
14301432 atomic64_inc_return_acquire(atomic64_t *v)
14311433 {
14321434 s64 ret = atomic64_inc_return_relaxed(v);
@@ -1437,7 +1439,7 @@ atomic64_inc_return_acquire(atomic64_t *v) · 4 unmodified lines
14371439 #endif
14381440
14391441 #ifndef atomic64_inc_return_release
1440−static inline s64
1442+static __always_inline s64
14411443 atomic64_inc_return_release(atomic64_t *v)
14421444 {
14431445 __atomic_release_fence();
@@ -1447,7 +1449,7 @@ atomic64_inc_return_release(atomic64_t *v) · 3 unmodified lines
14471449 #endif
14481450
14491451 #ifndef atomic64_inc_return
1450−static inline s64
1452+static __always_inline s64
14511453 atomic64_inc_return(atomic64_t *v)
14521454 {
14531455 s64 ret;
@@ -1469,7 +1471,7 @@ atomic64_inc_return(atomic64_t *v) · 15 unmodified lines
14691471 #endif /* atomic64_fetch_inc */
14701472
14711473 #ifndef atomic64_fetch_inc
1472−static inline s64
1474+static __always_inline s64
14731475 atomic64_fetch_inc(atomic64_t *v)
14741476 {
14751477 return atomic64_fetch_add(1, v);
@@ -1478,7 +1480,7 @@ atomic64_fetch_inc(atomic64_t *v) · 2 unmodified lines
14781480 #endif
14791481
14801482 #ifndef atomic64_fetch_inc_acquire
1481−static inline s64
1483+static __always_inline s64
14821484 atomic64_fetch_inc_acquire(atomic64_t *v)
14831485 {
14841486 return atomic64_fetch_add_acquire(1, v);
@@ -1487,7 +1489,7 @@ atomic64_fetch_inc_acquire(atomic64_t *v) · 2 unmodified lines
14871489 #endif
14881490
14891491 #ifndef atomic64_fetch_inc_release
1490−static inline s64
1492+static __always_inline s64
14911493 atomic64_fetch_inc_release(atomic64_t *v)
14921494 {
14931495 return atomic64_fetch_add_release(1, v);
@@ -1496,7 +1498,7 @@ atomic64_fetch_inc_release(atomic64_t *v) · 2 unmodified lines
14961498 #endif
14971499
14981500 #ifndef atomic64_fetch_inc_relaxed
1499−static inline s64
1501+static __always_inline s64
15001502 atomic64_fetch_inc_relaxed(atomic64_t *v)
15011503 {
15021504 return atomic64_fetch_add_relaxed(1, v);
@@ -1507,7 +1509,7 @@ atomic64_fetch_inc_relaxed(atomic64_t *v) · 4 unmodified lines
15071509 #else /* atomic64_fetch_inc_relaxed */
15081510
15091511 #ifndef atomic64_fetch_inc_acquire
1510−static inline s64
1512+static __always_inline s64
15111513 atomic64_fetch_inc_acquire(atomic64_t *v)
15121514 {
15131515 s64 ret = atomic64_fetch_inc_relaxed(v);
@@ -1518,7 +1520,7 @@ atomic64_fetch_inc_acquire(atomic64_t *v) · 4 unmodified lines
15181520 #endif
15191521
15201522 #ifndef atomic64_fetch_inc_release
1521−static inline s64
1523+static __always_inline s64
15221524 atomic64_fetch_inc_release(atomic64_t *v)
15231525 {
15241526 __atomic_release_fence();
@@ -1528,7 +1530,7 @@ atomic64_fetch_inc_release(atomic64_t *v) · 3 unmodified lines
15281530 #endif
15291531
15301532 #ifndef atomic64_fetch_inc
1531−static inline s64
1533+static __always_inline s64
15321534 atomic64_fetch_inc(atomic64_t *v)
15331535 {
15341536 s64 ret;
@@ -1543,7 +1545,7 @@ atomic64_fetch_inc(atomic64_t *v) · 8 unmodified lines
15431545 #endif /* atomic64_fetch_inc_relaxed */
15441546
15451547 #ifndef atomic64_dec
1546−static inline void
1548+static __always_inline void
15471549 atomic64_dec(atomic64_t *v)
15481550 {
15491551 atomic64_sub(1, v);
@@ -1559,7 +1561,7 @@ atomic64_dec(atomic64_t *v) · 9 unmodified lines
15591561 #endif /* atomic64_dec_return */
15601562
15611563 #ifndef atomic64_dec_return
1562−static inline s64
1564+static __always_inline s64
15631565 atomic64_dec_return(atomic64_t *v)
15641566 {
15651567 return atomic64_sub_return(1, v);
@@ -1568,7 +1570,7 @@ atomic64_dec_return(atomic64_t *v) · 2 unmodified lines
15681570 #endif
15691571
15701572 #ifndef atomic64_dec_return_acquire
1571−static inline s64
1573+static __always_inline s64
15721574 atomic64_dec_return_acquire(atomic64_t *v)
15731575 {
15741576 return atomic64_sub_return_acquire(1, v);
@@ -1577,7 +1579,7 @@ atomic64_dec_return_acquire(atomic64_t *v) · 2 unmodified lines
15771579 #endif
15781580
15791581 #ifndef atomic64_dec_return_release
1580−static inline s64
1582+static __always_inline s64
15811583 atomic64_dec_return_release(atomic64_t *v)
15821584 {
15831585 return atomic64_sub_return_release(1, v);
@@ -1586,7 +1588,7 @@ atomic64_dec_return_release(atomic64_t *v) · 2 unmodified lines
15861588 #endif
15871589
15881590 #ifndef atomic64_dec_return_relaxed
1589−static inline s64
1591+static __always_inline s64
15901592 atomic64_dec_return_relaxed(atomic64_t *v)
15911593 {
15921594 return atomic64_sub_return_relaxed(1, v);
@@ -1597,7 +1599,7 @@ atomic64_dec_return_relaxed(atomic64_t *v) · 4 unmodified lines
15971599 #else /* atomic64_dec_return_relaxed */
15981600
15991601 #ifndef atomic64_dec_return_acquire
1600−static inline s64
1602+static __always_inline s64
16011603 atomic64_dec_return_acquire(atomic64_t *v)
16021604 {
16031605 s64 ret = atomic64_dec_return_relaxed(v);
@@ -1608,7 +1610,7 @@ atomic64_dec_return_acquire(atomic64_t *v) · 4 unmodified lines
16081610 #endif
16091611
16101612 #ifndef atomic64_dec_return_release
1611−static inline s64
1613+static __always_inline s64
16121614 atomic64_dec_return_release(atomic64_t *v)
16131615 {
16141616 __atomic_release_fence();
@@ -1618,7 +1620,7 @@ atomic64_dec_return_release(atomic64_t *v) · 3 unmodified lines
16181620 #endif
16191621
16201622 #ifndef atomic64_dec_return
1621−static inline s64
1623+static __always_inline s64
16221624 atomic64_dec_return(atomic64_t *v)
16231625 {
16241626 s64 ret;
@@ -1640,7 +1642,7 @@ atomic64_dec_return(atomic64_t *v) · 15 unmodified lines
16401642 #endif /* atomic64_fetch_dec */
16411643
16421644 #ifndef atomic64_fetch_dec
1643−static inline s64
1645+static __always_inline s64
16441646 atomic64_fetch_dec(atomic64_t *v)
16451647 {
16461648 return atomic64_fetch_sub(1, v);
@@ -1649,7 +1651,7 @@ atomic64_fetch_dec(atomic64_t *v) · 2 unmodified lines
16491651 #endif
16501652
16511653 #ifndef atomic64_fetch_dec_acquire
1652−static inline s64
1654+static __always_inline s64
16531655 atomic64_fetch_dec_acquire(atomic64_t *v)
16541656 {
16551657 return atomic64_fetch_sub_acquire(1, v);
@@ -1658,7 +1660,7 @@ atomic64_fetch_dec_acquire(atomic64_t *v) · 2 unmodified lines
16581660 #endif
16591661
16601662 #ifndef atomic64_fetch_dec_release
1661−static inline s64
1663+static __always_inline s64
16621664 atomic64_fetch_dec_release(atomic64_t *v)
16631665 {
16641666 return atomic64_fetch_sub_release(1, v);
@@ -1667,7 +1669,7 @@ atomic64_fetch_dec_release(atomic64_t *v) · 2 unmodified lines
16671669 #endif
16681670
16691671 #ifndef atomic64_fetch_dec_relaxed
1670−static inline s64
1672+static __always_inline s64
16711673 atomic64_fetch_dec_relaxed(atomic64_t *v)
16721674 {
16731675 return atomic64_fetch_sub_relaxed(1, v);
@@ -1678,7 +1680,7 @@ atomic64_fetch_dec_relaxed(atomic64_t *v) · 4 unmodified lines
16781680 #else /* atomic64_fetch_dec_relaxed */
16791681
16801682 #ifndef atomic64_fetch_dec_acquire
1681−static inline s64
1683+static __always_inline s64
16821684 atomic64_fetch_dec_acquire(atomic64_t *v)
16831685 {
16841686 s64 ret = atomic64_fetch_dec_relaxed(v);
@@ -1689,7 +1691,7 @@ atomic64_fetch_dec_acquire(atomic64_t *v) · 4 unmodified lines
16891691 #endif
16901692
16911693 #ifndef atomic64_fetch_dec_release
1692−static inline s64
1694+static __always_inline s64
16931695 atomic64_fetch_dec_release(atomic64_t *v)
16941696 {
16951697 __atomic_release_fence();
@@ -1699,7 +1701,7 @@ atomic64_fetch_dec_release(atomic64_t *v) · 3 unmodified lines
16991701 #endif
17001702
17011703 #ifndef atomic64_fetch_dec
1702−static inline s64
1704+static __always_inline s64
17031705 atomic64_fetch_dec(atomic64_t *v)
17041706 {
17051707 s64 ret;
@@ -1720,7 +1722,7 @@ atomic64_fetch_dec(atomic64_t *v) · 14 unmodified lines
17201722 #else /* atomic64_fetch_and_relaxed */
17211723
17221724 #ifndef atomic64_fetch_and_acquire
1723−static inline s64
1725+static __always_inline s64
17241726 atomic64_fetch_and_acquire(s64 i, atomic64_t *v)
17251727 {
17261728 s64 ret = atomic64_fetch_and_relaxed(i, v);
@@ -1731,7 +1733,7 @@ atomic64_fetch_and_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
17311733 #endif
17321734
17331735 #ifndef atomic64_fetch_and_release
1734−static inline s64
1736+static __always_inline s64
17351737 atomic64_fetch_and_release(s64 i, atomic64_t *v)
17361738 {
17371739 __atomic_release_fence();
@@ -1741,7 +1743,7 @@ atomic64_fetch_and_release(s64 i, atomic64_t *v) · 3 unmodified lines
17411743 #endif
17421744
17431745 #ifndef atomic64_fetch_and
1744−static inline s64
1746+static __always_inline s64
17451747 atomic64_fetch_and(s64 i, atomic64_t *v)
17461748 {
17471749 s64 ret;
@@ -1756,7 +1758,7 @@ atomic64_fetch_and(s64 i, atomic64_t *v) · 8 unmodified lines
17561758 #endif /* atomic64_fetch_and_relaxed */
17571759
17581760 #ifndef atomic64_andnot
1759−static inline void
1761+static __always_inline void
17601762 atomic64_andnot(s64 i, atomic64_t *v)
17611763 {
17621764 atomic64_and(~i, v);
@@ -1772,7 +1774,7 @@ atomic64_andnot(s64 i, atomic64_t *v) · 9 unmodified lines
17721774 #endif /* atomic64_fetch_andnot */
17731775
17741776 #ifndef atomic64_fetch_andnot
1775−static inline s64
1777+static __always_inline s64
17761778 atomic64_fetch_andnot(s64 i, atomic64_t *v)
17771779 {
17781780 return atomic64_fetch_and(~i, v);
@@ -1781,7 +1783,7 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 2 unmodified lines
17811783 #endif
17821784
17831785 #ifndef atomic64_fetch_andnot_acquire
1784−static inline s64
1786+static __always_inline s64
17851787 atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v)
17861788 {
17871789 return atomic64_fetch_and_acquire(~i, v);
@@ -1790,7 +1792,7 @@ atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) · 2 unmodified lines
17901792 #endif
17911793
17921794 #ifndef atomic64_fetch_andnot_release
1793−static inline s64
1795+static __always_inline s64
17941796 atomic64_fetch_andnot_release(s64 i, atomic64_t *v)
17951797 {
17961798 return atomic64_fetch_and_release(~i, v);
@@ -1799,7 +1801,7 @@ atomic64_fetch_andnot_release(s64 i, atomic64_t *v) · 2 unmodified lines
17991801 #endif
18001802
18011803 #ifndef atomic64_fetch_andnot_relaxed
1802−static inline s64
1804+static __always_inline s64
18031805 atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v)
18041806 {
18051807 return atomic64_fetch_and_relaxed(~i, v);
@@ -1810,7 +1812,7 @@ atomic64_fetch_andnot_relaxed(s64 i, atomic64_t *v) · 4 unmodified lines
18101812 #else /* atomic64_fetch_andnot_relaxed */
18111813
18121814 #ifndef atomic64_fetch_andnot_acquire
1813−static inline s64
1815+static __always_inline s64
18141816 atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v)
18151817 {
18161818 s64 ret = atomic64_fetch_andnot_relaxed(i, v);
@@ -1821,7 +1823,7 @@ atomic64_fetch_andnot_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
18211823 #endif
18221824
18231825 #ifndef atomic64_fetch_andnot_release
1824−static inline s64
1826+static __always_inline s64
18251827 atomic64_fetch_andnot_release(s64 i, atomic64_t *v)
18261828 {
18271829 __atomic_release_fence();
@@ -1831,7 +1833,7 @@ atomic64_fetch_andnot_release(s64 i, atomic64_t *v) · 3 unmodified lines
18311833 #endif
18321834
18331835 #ifndef atomic64_fetch_andnot
1834−static inline s64
1836+static __always_inline s64
18351837 atomic64_fetch_andnot(s64 i, atomic64_t *v)
18361838 {
18371839 s64 ret;
@@ -1852,7 +1854,7 @@ atomic64_fetch_andnot(s64 i, atomic64_t *v) · 14 unmodified lines
18521854 #else /* atomic64_fetch_or_relaxed */
18531855
18541856 #ifndef atomic64_fetch_or_acquire
1855−static inline s64
1857+static __always_inline s64
18561858 atomic64_fetch_or_acquire(s64 i, atomic64_t *v)
18571859 {
18581860 s64 ret = atomic64_fetch_or_relaxed(i, v);
@@ -1863,7 +1865,7 @@ atomic64_fetch_or_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
18631865 #endif
18641866
18651867 #ifndef atomic64_fetch_or_release
1866−static inline s64
1868+static __always_inline s64
18671869 atomic64_fetch_or_release(s64 i, atomic64_t *v)
18681870 {
18691871 __atomic_release_fence();
@@ -1873,7 +1875,7 @@ atomic64_fetch_or_release(s64 i, atomic64_t *v) · 3 unmodified lines
18731875 #endif
18741876
18751877 #ifndef atomic64_fetch_or
1876−static inline s64
1878+static __always_inline s64
18771879 atomic64_fetch_or(s64 i, atomic64_t *v)
18781880 {
18791881 s64 ret;
@@ -1894,7 +1896,7 @@ atomic64_fetch_or(s64 i, atomic64_t *v) · 14 unmodified lines
18941896 #else /* atomic64_fetch_xor_relaxed */
18951897
18961898 #ifndef atomic64_fetch_xor_acquire
1897−static inline s64
1899+static __always_inline s64
18981900 atomic64_fetch_xor_acquire(s64 i, atomic64_t *v)
18991901 {
19001902 s64 ret = atomic64_fetch_xor_relaxed(i, v);
@@ -1905,7 +1907,7 @@ atomic64_fetch_xor_acquire(s64 i, atomic64_t *v) · 4 unmodified lines
19051907 #endif
19061908
19071909 #ifndef atomic64_fetch_xor_release
1908−static inline s64
1910+static __always_inline s64
19091911 atomic64_fetch_xor_release(s64 i, atomic64_t *v)
19101912 {
19111913 __atomic_release_fence();
@@ -1915,7 +1917,7 @@ atomic64_fetch_xor_release(s64 i, atomic64_t *v) · 3 unmodified lines
19151917 #endif
19161918
19171919 #ifndef atomic64_fetch_xor
1918−static inline s64
1920+static __always_inline s64
19191921 atomic64_fetch_xor(s64 i, atomic64_t *v)
19201922 {
19211923 s64 ret;
@@ -1936,7 +1938,7 @@ atomic64_fetch_xor(s64 i, atomic64_t *v) · 14 unmodified lines
19361938 #else /* atomic64_xchg_relaxed */
19371939
19381940 #ifndef atomic64_xchg_acquire
1939−static inline s64
1941+static __always_inline s64
19401942 atomic64_xchg_acquire(atomic64_t *v, s64 i)
19411943 {
19421944 s64 ret = atomic64_xchg_relaxed(v, i);
@@ -1947,7 +1949,7 @@ atomic64_xchg_acquire(atomic64_t *v, s64 i) · 4 unmodified lines
19471949 #endif
19481950
19491951 #ifndef atomic64_xchg_release
1950−static inline s64
1952+static __always_inline s64
19511953 atomic64_xchg_release(atomic64_t *v, s64 i)
19521954 {
19531955 __atomic_release_fence();
@@ -1957,7 +1959,7 @@ atomic64_xchg_release(atomic64_t *v, s64 i) · 3 unmodified lines
19571959 #endif
19581960
19591961 #ifndef atomic64_xchg
1960−static inline s64
1962+static __always_inline s64
19611963 atomic64_xchg(atomic64_t *v, s64 i)
19621964 {
19631965 s64 ret;
@@ -1978,7 +1980,7 @@ atomic64_xchg(atomic64_t *v, s64 i) · 14 unmodified lines
19781980 #else /* atomic64_cmpxchg_relaxed */
19791981
19801982 #ifndef atomic64_cmpxchg_acquire
1981−static inline s64
1983+static __always_inline s64
19821984 atomic64_cmpxchg_acquire(atomic64_t *v, s64 old, s64 new)
19831985 {
19841986 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
19891991 #endif
19901992
19911993 #ifndef atomic64_cmpxchg_release
1992−static inline s64
1994+static __always_inline s64
19931995 atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new)
19941996 {
19951997 __atomic_release_fence();
@@ -1999,7 +2001,7 @@ atomic64_cmpxchg_release(atomic64_t *v, s64 old, s64 new) · 3 unmodified lines
19992001 #endif
20002002
20012003 #ifndef atomic64_cmpxchg
2002−static inline s64
2004+static __always_inline s64
20032005 atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new)
20042006 {
20052007 s64 ret;
@@ -2021,7 +2023,7 @@ atomic64_cmpxchg(atomic64_t *v, s64 old, s64 new) · 15 unmodified lines
20212023 #endif /* atomic64_try_cmpxchg */
20222024
20232025 #ifndef atomic64_try_cmpxchg
2024−static inline bool
2026+static __always_inline bool
20252027 atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new)
20262028 {
20272029 s64 r, o = *old;
@@ -2034,7 +2036,7 @@ atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines
20342036 #endif
20352037
20362038 #ifndef atomic64_try_cmpxchg_acquire
2037−static inline bool
2039+static __always_inline bool
20382040 atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new)
20392041 {
20402042 s64 r, o = *old;
@@ -2047,7 +2049,7 @@ atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines
20472049 #endif
20482050
20492051 #ifndef atomic64_try_cmpxchg_release
2050−static inline bool
2052+static __always_inline bool
20512053 atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new)
20522054 {
20532055 s64 r, o = *old;
@@ -2060,7 +2062,7 @@ atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) · 6 unmodified lines
20602062 #endif
20612063
20622064 #ifndef atomic64_try_cmpxchg_relaxed
2063−static inline bool
2065+static __always_inline bool
20642066 atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new)
20652067 {
20662068 s64 r, o = *old;
@@ -2075,7 +2077,7 @@ atomic64_try_cmpxchg_relaxed(atomic64_t *v, s64 *old, s64 new) · 8 unmodified lines
20752077 #else /* atomic64_try_cmpxchg_relaxed */
20762078
20772079 #ifndef atomic64_try_cmpxchg_acquire
2078−static inline bool
2080+static __always_inline bool
20792081 atomic64_try_cmpxchg_acquire(atomic64_t *v, s64 *old, s64 new)
20802082 {
20812083 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
20862088 #endif
20872089
20882090 #ifndef atomic64_try_cmpxchg_release
2089−static inline bool
2091+static __always_inline bool
20902092 atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new)
20912093 {
20922094 __atomic_release_fence();
@@ -2096,7 +2098,7 @@ atomic64_try_cmpxchg_release(atomic64_t *v, s64 *old, s64 new) · 3 unmodified lines
20962098 #endif
20972099
20982100 #ifndef atomic64_try_cmpxchg
2099−static inline bool
2101+static __always_inline bool
21002102 atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new)
21012103 {
21022104 bool ret;
@@ -2120,7 +2122,7 @@ atomic64_try_cmpxchg(atomic64_t *v, s64 *old, s64 new) · 17 unmodified lines
21202122 * true if the result is zero, or false for all
21212123 * other cases.
21222124 */
2123−static inline bool
2125+static __always_inline bool
21242126 atomic64_sub_and_test(s64 i, atomic64_t *v)
21252127 {
21262128 return atomic64_sub_return(i, v) == 0;
@@ -2137,7 +2139,7 @@ atomic64_sub_and_test(s64 i, atomic64_t *v) · 10 unmodified lines
21372139 * returns true if the result is 0, or false for all other
21382140 * cases.
21392141 */
2140−static inline bool
2142+static __always_inline bool
21412143 atomic64_dec_and_test(atomic64_t *v)
21422144 {
21432145 return atomic64_dec_return(v) == 0;
@@ -2154,7 +2156,7 @@ atomic64_dec_and_test(atomic64_t *v) · 10 unmodified lines
21542156 * and returns true if the result is zero, or false for all
21552157 * other cases.
21562158 */
2157−static inline bool
2159+static __always_inline bool
21582160 atomic64_inc_and_test(atomic64_t *v)
21592161 {
21602162 return atomic64_inc_return(v) == 0;
@@ -2172,7 +2174,7 @@ atomic64_inc_and_test(atomic64_t *v) · 11 unmodified lines
21722174 * if the result is negative, or false when
21732175 * result is greater than or equal to zero.
21742176 */
2175−static inline bool
2177+static __always_inline bool
21762178 atomic64_add_negative(s64 i, atomic64_t *v)
21772179 {
21782180 return atomic64_add_return(i, v) < 0;
@@ -2190,7 +2192,7 @@ atomic64_add_negative(s64 i, atomic64_t *v) · 11 unmodified lines
21902192 * Atomically adds @a to @v, so long as @v was not already @u.
21912193 * Returns original value of @v
21922194 */
2193−static inline s64
2195+static __always_inline s64
21942196 atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u)
21952197 {
21962198 s64 c = atomic64_read(v);
@@ -2215,7 +2217,7 @@ atomic64_fetch_add_unless(atomic64_t *v, s64 a, s64 u) · 18 unmodified lines
22152217 * Atomically adds @a to @v, if @v was not already @u.
22162218 * Returns true if the addition was done.
22172219 */
2218−static inline bool
2220+static __always_inline bool
22192221 atomic64_add_unless(atomic64_t *v, s64 a, s64 u)
22202222 {
22212223 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
22312233 * Atomically increments @v by 1, if @v is non-zero.
22322234 * Returns true if the increment was done.
22332235 */
2234−static inline bool
2236+static __always_inline bool
22352237 atomic64_inc_not_zero(atomic64_t *v)
22362238 {
22372239 return atomic64_add_unless(v, 1, 0);
@@ -2240,7 +2242,7 @@ atomic64_inc_not_zero(atomic64_t *v) · 2 unmodified lines
22402242 #endif
22412243
22422244 #ifndef atomic64_inc_unless_negative
2243−static inline bool
2245+static __always_inline bool
22442246 atomic64_inc_unless_negative(atomic64_t *v)
22452247 {
22462248 s64 c = atomic64_read(v);
@@ -2256,7 +2258,7 @@ atomic64_inc_unless_negative(atomic64_t *v) · 9 unmodified lines
22562258 #endif
22572259
22582260 #ifndef atomic64_dec_unless_positive
2259−static inline bool
2261+static __always_inline bool
22602262 atomic64_dec_unless_positive(atomic64_t *v)
22612263 {
22622264 s64 c = atomic64_read(v);
@@ -2272,7 +2274,7 @@ atomic64_dec_unless_positive(atomic64_t *v) · 9 unmodified lines
22722274 #endif
22732275
22742276 #ifndef atomic64_dec_if_positive
2275−static inline s64
2277+static __always_inline s64
22762278 atomic64_dec_if_positive(atomic64_t *v)
22772279 {
22782280 s64 dec, c = atomic64_read(v);
@@ -2292,4 +2294,4 @@ atomic64_dec_if_positive(atomic64_t *v) · 13 unmodified lines
22922294 #define atomic64_cond_read_relaxed(v, c) smp_cond_load_relaxed(&(v)->counter, (c))
22932295
22942296 #endif /* _LINUX_ATOMIC_FALLBACK_H */
2295−// 25de4a2804d70f57e994fe3b419148658bb5378a
2297+// baaf45f4c24ed88ceae58baca39d7fd80bb8101b