RISC-V: gp_in_global needs register keyword
authorPalmer Dabbelt <palmerdabbelt@google.com>
Thu, 21 May 2020 20:28:26 +0000 (13:28 -0700)
committerPalmer Dabbelt <palmerdabbelt@google.com>
Thu, 21 May 2020 20:28:26 +0000 (13:28 -0700)
The Intel kernel build robot recently pointed out that I missed the
register keyword on this one when I refactored the code to remove local
register variables (which aren't supported by LLVM).  GCC's manual
indicates that global register variables must have the register keyword,
As far as I can tell lacking the register keyword causes GCC to ignore
the __asm__ and treat this as a regular variable, but I'm not sure how
that didn't show up as some sort of failure.

Fixes: 52e7c52d2ded ("RISC-V: Stop relying on GCC's register allocator's hueristics")
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
arch/riscv/kernel/process.c

index 610c11e91606878985ef243cc3151ffcec09a5c3..824d117cf202b34a3f538e9c1b766873b8548bb7 100644 (file)
@@ -22,7 +22,7 @@
 #include <asm/switch_to.h>
 #include <asm/thread_info.h>
 
-unsigned long gp_in_global __asm__("gp");
+register unsigned long gp_in_global __asm__("gp");
 
 extern asmlinkage void ret_from_fork(void);
 extern asmlinkage void ret_from_kernel_thread(void);