Skip to content

Commit

Permalink
locking/atomic: remove ARCH_ATOMIC remanants
Browse files Browse the repository at this point in the history
Now that gen-atomic-fallback.sh is only used to generate the arch_*
fallbacks, we don't need to also generate the non-arch_* forms, and can
removethe infrastructure this needed.

There is no change to any of the generated headers as a result of this
patch.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/r/20210713105253.7615-3-mark.rutland@arm.com
  • Loading branch information
Mark Rutland authored and Peter Zijlstra committed Jul 16, 2021
1 parent 47401d9 commit f3e615b
Show file tree
Hide file tree
Showing 21 changed files with 71 additions and 91 deletions.
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/acquire
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}${name}${sfx}_acquire(${params})
arch_${atomic}_${pfx}${name}${sfx}_acquire(${params})
{
${ret} ret = ${arch}${atomic}_${pfx}${name}${sfx}_relaxed(${args});
${ret} ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
__atomic_acquire_fence();
return ret;
}
Expand Down
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/add_negative
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat <<EOF
/**
* ${arch}${atomic}_add_negative - add and test if negative
* arch_${atomic}_add_negative - add and test if negative
* @i: integer value to add
* @v: pointer of type ${atomic}_t
*
Expand All @@ -9,8 +9,8 @@ cat <<EOF
* result is greater than or equal to zero.
*/
static __always_inline bool
${arch}${atomic}_add_negative(${int} i, ${atomic}_t *v)
arch_${atomic}_add_negative(${int} i, ${atomic}_t *v)
{
return ${arch}${atomic}_add_return(i, v) < 0;
return arch_${atomic}_add_return(i, v) < 0;
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/add_unless
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat << EOF
/**
* ${arch}${atomic}_add_unless - add unless the number is already a given value
* arch_${atomic}_add_unless - add unless the number is already a given value
* @v: pointer of type ${atomic}_t
* @a: the amount to add to v...
* @u: ...unless v is equal to u.
Expand All @@ -9,8 +9,8 @@ cat << EOF
* Returns true if the addition was done.
*/
static __always_inline bool
${arch}${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
arch_${atomic}_add_unless(${atomic}_t *v, ${int} a, ${int} u)
{
return ${arch}${atomic}_fetch_add_unless(v, a, u) != u;
return arch_${atomic}_fetch_add_unless(v, a, u) != u;
}
EOF
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/andnot
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}andnot${sfx}${order}(${int} i, ${atomic}_t *v)
arch_${atomic}_${pfx}andnot${sfx}${order}(${int} i, ${atomic}_t *v)
{
${retstmt}${arch}${atomic}_${pfx}and${sfx}${order}(~i, v);
${retstmt}arch_${atomic}_${pfx}and${sfx}${order}(~i, v);
}
EOF
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/dec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}dec${sfx}${order}(${atomic}_t *v)
arch_${atomic}_${pfx}dec${sfx}${order}(${atomic}_t *v)
{
${retstmt}${arch}${atomic}_${pfx}sub${sfx}${order}(1, v);
${retstmt}arch_${atomic}_${pfx}sub${sfx}${order}(1, v);
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/dec_and_test
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
cat <<EOF
/**
* ${arch}${atomic}_dec_and_test - decrement and test
* arch_${atomic}_dec_and_test - decrement and test
* @v: pointer of type ${atomic}_t
*
* Atomically decrements @v by 1 and
* returns true if the result is 0, or false for all other
* cases.
*/
static __always_inline bool
${arch}${atomic}_dec_and_test(${atomic}_t *v)
arch_${atomic}_dec_and_test(${atomic}_t *v)
{
return ${arch}${atomic}_dec_return(v) == 0;
return arch_${atomic}_dec_return(v) == 0;
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/dec_if_positive
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_dec_if_positive(${atomic}_t *v)
arch_${atomic}_dec_if_positive(${atomic}_t *v)
{
${int} dec, c = ${arch}${atomic}_read(v);
${int} dec, c = arch_${atomic}_read(v);

do {
dec = c - 1;
if (unlikely(dec < 0))
break;
} while (!${arch}${atomic}_try_cmpxchg(v, &c, dec));
} while (!arch_${atomic}_try_cmpxchg(v, &c, dec));

return dec;
}
Expand Down
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/dec_unless_positive
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
cat <<EOF
static __always_inline bool
${arch}${atomic}_dec_unless_positive(${atomic}_t *v)
arch_${atomic}_dec_unless_positive(${atomic}_t *v)
{
${int} c = ${arch}${atomic}_read(v);
${int} c = arch_${atomic}_read(v);

do {
if (unlikely(c > 0))
return false;
} while (!${arch}${atomic}_try_cmpxchg(v, &c, c - 1));
} while (!arch_${atomic}_try_cmpxchg(v, &c, c - 1));

return true;
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/fence
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}${name}${sfx}(${params})
arch_${atomic}_${pfx}${name}${sfx}(${params})
{
${ret} ret;
__atomic_pre_full_fence();
ret = ${arch}${atomic}_${pfx}${name}${sfx}_relaxed(${args});
ret = arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
__atomic_post_full_fence();
return ret;
}
Expand Down
8 changes: 4 additions & 4 deletions scripts/atomic/fallbacks/fetch_add_unless
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat << EOF
/**
* ${arch}${atomic}_fetch_add_unless - add unless the number is already a given value
* arch_${atomic}_fetch_add_unless - add unless the number is already a given value
* @v: pointer of type ${atomic}_t
* @a: the amount to add to v...
* @u: ...unless v is equal to u.
Expand All @@ -9,14 +9,14 @@ cat << EOF
* Returns original value of @v
*/
static __always_inline ${int}
${arch}${atomic}_fetch_add_unless(${atomic}_t *v, ${int} a, ${int} u)
arch_${atomic}_fetch_add_unless(${atomic}_t *v, ${int} a, ${int} u)
{
${int} c = ${arch}${atomic}_read(v);
${int} c = arch_${atomic}_read(v);

do {
if (unlikely(c == u))
break;
} while (!${arch}${atomic}_try_cmpxchg(v, &c, c + a));
} while (!arch_${atomic}_try_cmpxchg(v, &c, c + a));

return c;
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/inc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}inc${sfx}${order}(${atomic}_t *v)
arch_${atomic}_${pfx}inc${sfx}${order}(${atomic}_t *v)
{
${retstmt}${arch}${atomic}_${pfx}add${sfx}${order}(1, v);
${retstmt}arch_${atomic}_${pfx}add${sfx}${order}(1, v);
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/inc_and_test
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
cat <<EOF
/**
* ${arch}${atomic}_inc_and_test - increment and test
* arch_${atomic}_inc_and_test - increment and test
* @v: pointer of type ${atomic}_t
*
* Atomically increments @v by 1
* and returns true if the result is zero, or false for all
* other cases.
*/
static __always_inline bool
${arch}${atomic}_inc_and_test(${atomic}_t *v)
arch_${atomic}_inc_and_test(${atomic}_t *v)
{
return ${arch}${atomic}_inc_return(v) == 0;
return arch_${atomic}_inc_return(v) == 0;
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/inc_not_zero
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
cat <<EOF
/**
* ${arch}${atomic}_inc_not_zero - increment unless the number is zero
* arch_${atomic}_inc_not_zero - increment unless the number is zero
* @v: pointer of type ${atomic}_t
*
* Atomically increments @v by 1, if @v is non-zero.
* Returns true if the increment was done.
*/
static __always_inline bool
${arch}${atomic}_inc_not_zero(${atomic}_t *v)
arch_${atomic}_inc_not_zero(${atomic}_t *v)
{
return ${arch}${atomic}_add_unless(v, 1, 0);
return arch_${atomic}_add_unless(v, 1, 0);
}
EOF
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/inc_unless_negative
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
cat <<EOF
static __always_inline bool
${arch}${atomic}_inc_unless_negative(${atomic}_t *v)
arch_${atomic}_inc_unless_negative(${atomic}_t *v)
{
${int} c = ${arch}${atomic}_read(v);
${int} c = arch_${atomic}_read(v);

do {
if (unlikely(c < 0))
return false;
} while (!${arch}${atomic}_try_cmpxchg(v, &c, c + 1));
} while (!arch_${atomic}_try_cmpxchg(v, &c, c + 1));

return true;
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/atomic/fallbacks/read_acquire
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_read_acquire(const ${atomic}_t *v)
arch_${atomic}_read_acquire(const ${atomic}_t *v)
{
return smp_load_acquire(&(v)->counter);
}
Expand Down
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/release
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
cat <<EOF
static __always_inline ${ret}
${arch}${atomic}_${pfx}${name}${sfx}_release(${params})
arch_${atomic}_${pfx}${name}${sfx}_release(${params})
{
__atomic_release_fence();
${retstmt}${arch}${atomic}_${pfx}${name}${sfx}_relaxed(${args});
${retstmt}arch_${atomic}_${pfx}${name}${sfx}_relaxed(${args});
}
EOF
2 changes: 1 addition & 1 deletion scripts/atomic/fallbacks/set_release
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat <<EOF
static __always_inline void
${arch}${atomic}_set_release(${atomic}_t *v, ${int} i)
arch_${atomic}_set_release(${atomic}_t *v, ${int} i)
{
smp_store_release(&(v)->counter, i);
}
Expand Down
6 changes: 3 additions & 3 deletions scripts/atomic/fallbacks/sub_and_test
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cat <<EOF
/**
* ${arch}${atomic}_sub_and_test - subtract value from variable and test result
* arch_${atomic}_sub_and_test - subtract value from variable and test result
* @i: integer value to subtract
* @v: pointer of type ${atomic}_t
*
Expand All @@ -9,8 +9,8 @@ cat <<EOF
* other cases.
*/
static __always_inline bool
${arch}${atomic}_sub_and_test(${int} i, ${atomic}_t *v)
arch_${atomic}_sub_and_test(${int} i, ${atomic}_t *v)
{
return ${arch}${atomic}_sub_return(i, v) == 0;
return arch_${atomic}_sub_return(i, v) == 0;
}
EOF
4 changes: 2 additions & 2 deletions scripts/atomic/fallbacks/try_cmpxchg
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
cat <<EOF
static __always_inline bool
${arch}${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new)
arch_${atomic}_try_cmpxchg${order}(${atomic}_t *v, ${int} *old, ${int} new)
{
${int} r, o = *old;
r = ${arch}${atomic}_cmpxchg${order}(v, o, new);
r = arch_${atomic}_cmpxchg${order}(v, o, new);
if (unlikely(r != o))
*old = r;
return likely(r == o);
Expand Down
Loading

0 comments on commit f3e615b

Please sign in to comment.