]> 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)
commit765a5b192e79cde2bbc6cfc7dde1e9249700e665
treec3de1604f075b0b688ab392aec8ccdf115377d80
parent0577717ceb6f3b001be3e6a071e92c7381fdd4d6
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