summaryrefslogtreecommitdiff
path: root/arch/riscv/errata
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2022-05-11 21:29:20 +0200
committerPalmer Dabbelt <palmer@rivosinc.com>2022-05-11 21:36:33 -0700
commit1745cfafebdfb017f6871c80f9894910a76373a4 (patch)
tree73c951e40ffc2899d38d9a8c9511e505838cdc5e /arch/riscv/errata
parente1026505c1a9c5abd61f6afdf396b9cf467834c7 (diff)
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/errata')
0 files changed, 0 insertions, 0 deletions