|
@@ -46,7 +46,7 @@ static inline void atomic_set(atomic_t *v, int i)
|
|
|
*
|
|
|
* Atomically adds @i to @v.
|
|
|
*/
|
|
|
-static inline void atomic_add(int i, atomic_t *v)
|
|
|
+static __always_inline void atomic_add(int i, atomic_t *v)
|
|
|
{
|
|
|
asm volatile(LOCK_PREFIX "addl %1,%0"
|
|
|
: "+m" (v->counter)
|
|
@@ -60,7 +60,7 @@ static inline void atomic_add(int i, atomic_t *v)
|
|
|
*
|
|
|
* Atomically subtracts @i from @v.
|
|
|
*/
|
|
|
-static inline void atomic_sub(int i, atomic_t *v)
|
|
|
+static __always_inline void atomic_sub(int i, atomic_t *v)
|
|
|
{
|
|
|
asm volatile(LOCK_PREFIX "subl %1,%0"
|
|
|
: "+m" (v->counter)
|
|
@@ -76,7 +76,7 @@ static inline void atomic_sub(int i, atomic_t *v)
|
|
|
* true if the result is zero, or false for all
|
|
|
* other cases.
|
|
|
*/
|
|
|
-static inline int atomic_sub_and_test(int i, atomic_t *v)
|
|
|
+static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
|
|
|
{
|
|
|
GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
|
|
|
}
|
|
@@ -87,7 +87,7 @@ static inline int atomic_sub_and_test(int i, atomic_t *v)
|
|
|
*
|
|
|
* Atomically increments @v by 1.
|
|
|
*/
|
|
|
-static inline void atomic_inc(atomic_t *v)
|
|
|
+static __always_inline void atomic_inc(atomic_t *v)
|
|
|
{
|
|
|
asm volatile(LOCK_PREFIX "incl %0"
|
|
|
: "+m" (v->counter));
|
|
@@ -99,7 +99,7 @@ static inline void atomic_inc(atomic_t *v)
|
|
|
*
|
|
|
* Atomically decrements @v by 1.
|
|
|
*/
|
|
|
-static inline void atomic_dec(atomic_t *v)
|
|
|
+static __always_inline void atomic_dec(atomic_t *v)
|
|
|
{
|
|
|
asm volatile(LOCK_PREFIX "decl %0"
|
|
|
: "+m" (v->counter));
|
|
@@ -113,7 +113,7 @@ static inline void atomic_dec(atomic_t *v)
|
|
|
* returns true if the result is 0, or false for all other
|
|
|
* cases.
|
|
|
*/
|
|
|
-static inline int atomic_dec_and_test(atomic_t *v)
|
|
|
+static __always_inline int atomic_dec_and_test(atomic_t *v)
|
|
|
{
|
|
|
GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
|
|
|
}
|
|
@@ -152,7 +152,7 @@ static inline int atomic_add_negative(int i, atomic_t *v)
|
|
|
*
|
|
|
* Atomically adds @i to @v and returns @i + @v
|
|
|
*/
|
|
|
-static inline int atomic_add_return(int i, atomic_t *v)
|
|
|
+static __always_inline int atomic_add_return(int i, atomic_t *v)
|
|
|
{
|
|
|
return i + xadd(&v->counter, i);
|
|
|
}
|
|
@@ -191,7 +191,7 @@ static inline int atomic_xchg(atomic_t *v, int new)
|
|
|
* Atomically adds @a to @v, so long as @v was not already @u.
|
|
|
* Returns the old value of @v.
|
|
|
*/
|
|
|
-static inline int __atomic_add_unless(atomic_t *v, int a, int u)
|
|
|
+static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
|
|
|
{
|
|
|
int c, old;
|
|
|
c = atomic_read(v);
|