]> git.baikalelectronics.ru Git - kernel.git/commit
RISC-V: Move to generic spinlocks
authorPalmer Dabbelt <palmer@rivosinc.com>
Wed, 16 Mar 2022 23:07:34 +0000 (16:07 -0700)
committerPalmer Dabbelt <palmer@rivosinc.com>
Wed, 11 May 2022 18:50:05 +0000 (11:50 -0700)
commit5bd12b24f5bfb4dc721278e09022e08ff8b0c650
treec3de1604f075b0b688ab392aec8ccdf115377d80
parent6fdee32d4bb694eb5d2de45503119f87c15327c4
RISC-V: Move to generic spinlocks

Our existing spinlocks aren't fair and replacing them has been on the
TODO list for a long time.  This moves to the recently-introduced ticket
spinlocks, which are simple enough that they are likely to be correct
and fast on the vast majority of extant implementations.

This introduces a horrible hack that allows us to split out the spinlock
conversion from the rwlock conversion.  We have to do the spinlocks
first because qrwlock needs fair spinlocks, but we don't want to pollute
the asm-generic code to support the generic spinlocks without qrwlocks.
Thus we pollute the RISC-V code, but just until the next commit as it's
all going away.

Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Guo Ren <guoren@kernel.org>
Tested-by: Heiko Stuebner <heiko@sntech.de>
Tested-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/include/asm/Kbuild
arch/riscv/include/asm/spinlock.h
arch/riscv/include/asm/spinlock_types.h