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 errorsThis 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, Guenterquoted
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