[PATCH v1 1/1] lib: sbi: Have spinlock checks return bool
Anup Patel
Anup.Patel at wdc.com
Fri May 14 12:42:24 BST 2021
> -----Original Message-----
> From: opensbi <opensbi-bounces at lists.infradead.org> On Behalf Of Daniel
> Schaefer
> Sent: 13 May 2021 10:23
> To: opensbi at lists.infradead.org
> Cc: Abner Chang <abner.chang at hpe.com>; Anup Patel
> <Anup.Patel at wdc.com>
> Subject: [PATCH v1 1/1] lib: sbi: Have spinlock checks return bool
>
> spin_lock_check already returned bool in the source file but not in the
> header. With some toolchains that causes an error, as it should.
>
> Because it and related functions all essentially return a bool, we can use this
> opportunity to change them.
>
> Cc: Abner Chang <abner.chang at hpe.com>
> Cc: Anup Patel <anup.patel at wdc.com>
> Signed-off-by: Daniel Schaefer <git at danielschaefer.me>
Looks good to me.
Reviewed-by: Anup Patel <anup.patel at wdc.com>
Applied this patch to the riscv/opensbi repo
Thanks,
Anup
> ---
> include/sbi/riscv_locks.h | 4 ++--
> lib/sbi/riscv_locks.c | 6 +++---
> 2 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/include/sbi/riscv_locks.h b/include/sbi/riscv_locks.h index
> 492935f5d60b..38d9cbeb7b2a 100644
> --- a/include/sbi/riscv_locks.h
> +++ b/include/sbi/riscv_locks.h
> @@ -34,9 +34,9 @@ typedef struct {
> #define DEFINE_SPIN_LOCK(x) \
> spinlock_t SPIN_LOCK_INIT(x)
>
> -int spin_lock_check(spinlock_t *lock);
> +bool spin_lock_check(spinlock_t *lock);
>
> -int spin_trylock(spinlock_t *lock);
> +bool spin_trylock(spinlock_t *lock);
>
> void spin_lock(spinlock_t *lock);
>
> diff --git a/lib/sbi/riscv_locks.c b/lib/sbi/riscv_locks.c index
> 75b443bd35b8..acab7769240b 100644
> --- a/lib/sbi/riscv_locks.c
> +++ b/lib/sbi/riscv_locks.c
> @@ -8,7 +8,7 @@
> #include <sbi/riscv_barrier.h>
> #include <sbi/riscv_locks.h>
>
> -static inline int spin_lock_unlocked(spinlock_t lock)
> +static inline bool spin_lock_unlocked(spinlock_t lock)
> {
> return lock.owner == lock.next;
> }
> @@ -19,7 +19,7 @@ bool spin_lock_check(spinlock_t *lock)
> return !spin_lock_unlocked(*lock);
> }
>
> -int spin_trylock(spinlock_t *lock)
> +bool spin_trylock(spinlock_t *lock)
> {
> unsigned long inc = 1u << TICKET_SHIFT;
> unsigned long mask = 0xffffu << TICKET_SHIFT; @@ -42,7 +42,7 @@
> int spin_trylock(spinlock_t *lock)
> : "r"(inc), "r"(mask), "I"(TICKET_SHIFT)
> : "memory");
>
> - return !l0;
> + return l0 == 0;
> }
>
> void spin_lock(spinlock_t *lock)
> --
> 2.30.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
More information about the opensbi
mailing list