2020-05-18 05:04:55

by kernel test robot

[permalink] [raw]
Subject: [RFC PATCH linus] RISC-V: gp_in_global can be static


Fixes: 52e7c52d2ded ("RISC-V: Stop relying on GCC's register allocator's hueristics")
Signed-off-by: kbuild test robot <[email protected]>
---
process.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c
index 610c11e916068..3b2933839d492 100644
--- a/arch/riscv/kernel/process.c
+++ b/arch/riscv/kernel/process.c
@@ -22,7 +22,7 @@
#include <asm/switch_to.h>
#include <asm/thread_info.h>

-unsigned long gp_in_global __asm__("gp");
+static unsigned long gp_in_global __asm__("gp");

extern asmlinkage void ret_from_fork(void);
extern asmlinkage void ret_from_kernel_thread(void);


2020-05-21 20:55:34

by Palmer Dabbelt

[permalink] [raw]
Subject: Re: [RFC PATCH linus] RISC-V: gp_in_global can be static

On Sun, 17 May 2020 22:02:27 PDT (-0700), [email protected] wrote:
>
> Fixes: 52e7c52d2ded ("RISC-V: Stop relying on GCC's register allocator's hueristics")
> Signed-off-by: kbuild test robot <[email protected]>
> ---
> process.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kernel/process.c b/arch/riscv/kernel/process.c
> index 610c11e916068..3b2933839d492 100644
> --- a/arch/riscv/kernel/process.c
> +++ b/arch/riscv/kernel/process.c
> @@ -22,7 +22,7 @@
> #include <asm/switch_to.h>
> #include <asm/thread_info.h>
>
> -unsigned long gp_in_global __asm__("gp");
> +static unsigned long gp_in_global __asm__("gp");
>
> extern asmlinkage void ret_from_fork(void);
> extern asmlinkage void ret_from_kernel_thread(void);

Thanks. Looks like this is actually a real bug: gp_in_global was supposed to
have the "register" keyword, and missing that appears to cause the __asm__ to
be ignored.