summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorWilly Tarreau <w@1wt.eu>2020-07-30 08:59:24 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-08-07 10:36:20 +0300
commit6f697da3eb85610aae888623ca2885b347e86864 (patch)
treebe820256634a11f7bddff9af47f740c3f63c0a1d /include
parent546271c2c8d3a4f2d5fd07d43faf49d0b4423dde (diff)
downloadlinux-6f697da3eb85610aae888623ca2885b347e86864.tar.xz
random: fix circular include dependency on arm64 after addition of percpu.h
commit 1c9df907da83812e4f33b59d3d142c864d9da57f upstream. Daniel Díaz and Kees Cook independently reported that commit f227e3ec3b5c ("random32: update the net random state on interrupt and activity") broke arm64 due to a circular dependency on include files since the addition of percpu.h in random.h. The correct fix would definitely be to move all the prandom32 stuff out of random.h but for backporting, a smaller solution is preferred. This one replaces linux/percpu.h with asm/percpu.h, and this fixes the problem on x86_64, arm64, arm, and mips. Note that moving percpu.h around didn't change anything and that removing it entirely broke differently. When backporting, such options might still be considered if this patch fails to help. [ It turns out that an alternate fix seems to be to just remove the troublesome <asm/pointer_auth.h> remove from the arm64 <asm/smp.h> that causes the circular dependency. But we might as well do the whole belt-and-suspenders thing, and minimize inclusion in <linux/random.h> too. Either will fix the problem, and both are good changes. - Linus ] Reported-by: Daniel Díaz <daniel.diaz@linaro.org> Reported-by: Kees Cook <keescook@chromium.org> Tested-by: Marc Zyngier <maz@kernel.org> Fixes: f227e3ec3b5c Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Willy Tarreau <w@1wt.eu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/random.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/random.h b/include/linux/random.h
index d729f7614215..79bba0dfbc32 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -9,7 +9,7 @@
#include <linux/list.h>
#include <linux/once.h>
-#include <linux/percpu.h>
+#include <asm/percpu.h>
#include <uapi/linux/random.h>