riscv: Cleanup sbi function stubs when RISCV_SBI disabled
authorKefeng Wang <wangkefeng.wang@huawei.com>
Thu, 26 Nov 2020 02:40:38 +0000 (10:40 +0800)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Fri, 8 Jan 2021 01:19:17 +0000 (17:19 -0800)
Fix sbi_init() function declaration mismatch between RISCV_SBI
enable and disable, as it always returned 0, make it void function.

Drop some stubs which won't be used if RISCV_SBI disabled.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/include/asm/sbi.h
arch/riscv/kernel/sbi.c
arch/riscv/kernel/setup.c

index 653edb2..99dc77b 100644 (file)
@@ -89,7 +89,7 @@ struct sbiret {
        long value;
 };
 
-int sbi_init(void);
+void sbi_init(void);
 struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0,
                        unsigned long arg1, unsigned long arg2,
                        unsigned long arg3, unsigned long arg4,
@@ -147,11 +147,7 @@ static inline unsigned long sbi_minor_version(void)
 
 int sbi_err_map_linux_errno(int err);
 #else /* CONFIG_RISCV_SBI */
-/* stubs for code that is only reachable under IS_ENABLED(CONFIG_RISCV_SBI): */
-void sbi_set_timer(uint64_t stime_value);
-void sbi_clear_ipi(void);
-void sbi_send_ipi(const unsigned long *hart_mask);
-void sbi_remote_fence_i(const unsigned long *hart_mask);
-void sbi_init(void);
+static inline void sbi_remote_fence_i(const unsigned long *hart_mask) {}
+static inline void sbi_init(void) {}
 #endif /* CONFIG_RISCV_SBI */
 #endif /* _ASM_RISCV_SBI_H */
index 226ccce..bae6ffd 100644 (file)
@@ -560,7 +560,7 @@ static struct riscv_ipi_ops sbi_ipi_ops = {
        .ipi_inject = sbi_send_cpumask_ipi
 };
 
-int __init sbi_init(void)
+void __init sbi_init(void)
 {
        int ret;
 
@@ -600,6 +600,4 @@ int __init sbi_init(void)
        }
 
        riscv_set_ipi_ops(&sbi_ipi_ops);
-
-       return 0;
 }
index 1d85e9b..a43a954 100644 (file)
@@ -251,8 +251,7 @@ void __init setup_arch(char **cmdline_p)
                pr_err("No DTB found in kernel mappings\n");
 #endif
 
-       if (IS_ENABLED(CONFIG_RISCV_SBI))
-               sbi_init();
+       sbi_init();
 
        if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX))
                protect_kernel_text_data();