Thread (6 messages) read the whole thread 6 messages, 3 authors, 2020-08-07

Re: [PATCH] random: fix a compilation error on arm64

From: Guenter Roeck <linux@roeck-us.net>
Date: 2020-08-07 00:19:18
Also in: linux-next, lkml

On Thu, Aug 06, 2020 at 06:43:14PM -0400, Qian Cai wrote:
On Thu, Aug 06, 2020 at 07:50:23AM -0700, Guenter Roeck wrote:
quoted
On 8/6/20 6:58 AM, Qian Cai wrote:
quoted
linux-next failed to compile using this .config,
https://gitlab.com/cailca/linux-mm/-/blob/master/arm64.config

arch/arm64/kernel/kaslr.c: In function 'kaslr_early_init':
arch/arm64/kernel/kaslr.c:128:6: error: implicit declaration of function
'__early_cpu_has_rndr'; did you mean '__early_pfn_to_nid'?
[-Werror=implicit-function-declaration]
  if (__early_cpu_has_rndr()) {
      ^~~~~~~~~~~~~~~~~~~~
      __early_pfn_to_nid
arch/arm64/kernel/kaslr.c:131:7: error: implicit declaration of function
'__arm64_rndr' [-Werror=implicit-function-declaration]
   if (__arm64_rndr(&raw))
       ^~~~~~~~~~~~
cc1: some warnings being treated as errors
This happens because ARCH_RANDOM is disabled. May be I am wrong, but I
would argue that __arm64_rndr() should not be called directly in the
first place. arch_get_random_seed_long_early() should be called instead.
I am not sure about if that would cure possible ARCH_RANDOM=n compiling
failures on all arches. Since my patch would not compile on mips etc, an
alternative is to revert the buggy commit 585524081ecd for now. Any thought?
It is quite unlikely that any other architecture would attempt to compile
any arm64 code (which is the only code touched by commit 585524081ecd).
Also, commit 585524081ecd fixes a different problem caused by the
recursive inclusion of asm/archrandom.h. On top of that, I think using
arch_get_random_seed_long_early() would be much cleaner than the current
code since it doesn't override/bypass ARCH_RANDOM.

Let's do it this way: I'll submit an alternate patch using
arch_get_random_seed_long_early(). This way Linus can decide how to
proceed, and we don't have to go back and forth.

Thanks,
Guenter
quoted
Thanks,
Guenter
quoted
Fixes: 585524081ecd ("random: random.h should include archrandom.h, not the other way around")
Signed-off-by: Qian Cai <redacted>
---
 include/linux/random.h | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/include/linux/random.h b/include/linux/random.h
index f45b8be3e3c4..da782c16c20c 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -12,6 +12,8 @@
 #include <linux/list.h>
 #include <linux/once.h>
 
+#include <asm/archrandom.h>
+
 #include <uapi/linux/random.h>
 
 struct random_ready_callback {
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help