diff options
author | Heiko Stuebner <heiko@sntech.de> | 2022-05-11 22:29:20 +0300 |
---|---|---|
committer | Palmer Dabbelt <palmer@rivosinc.com> | 2022-05-12 07:36:33 +0300 |
commit | 1745cfafebdfb017f6871c80f9894910a76373a4 (patch) | |
tree | 73c951e40ffc2899d38d9a8c9511e505838cdc5e /arch/riscv/Kbuild | |
parent | e1026505c1a9c5abd61f6afdf396b9cf467834c7 (diff) | |
download | linux-1745cfafebdfb017f6871c80f9894910a76373a4.tar.xz |
riscv: don't use global static vars to store alternative data
Right now the code uses a global struct to store vendor-ids
and another global variable to store the vendor-patch-function.
There exist specific cases where we'll need to patch the kernel
at an even earlier stage, where trying to write to a static
variable might actually result in hangs.
Also collecting the vendor-information consists of 3 sbi-ecalls
(or csr-reads) which is pretty negligible in the context of
booting a kernel.
So rework the code to not rely on static variables and instead
collect the vendor-information when a round of alternatives is
to be applied.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Guo Ren <guoren@kernel.org>
Reviewed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
Link: https://lore.kernel.org/r/20220511192921.2223629-12-heiko@sntech.de
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'arch/riscv/Kbuild')
0 files changed, 0 insertions, 0 deletions