• Willy Tarreau's avatar
    random: fix circular include dependency on arm64 after addition of percpu.h · 1c9df907
    Willy Tarreau authored
    Daniel Díaz and Kees Cook independently reported that commit
    f227e3ec ("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: default avatarDaniel Díaz <daniel.diaz@linaro.org>
    Reported-by: default avatarKees Cook <keescook@chromium.org>
    Tested-by: default avatarMarc Zyngier <maz@kernel.org>
    Fixes: f227e3ec
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: default avatarWilly Tarreau <w@1wt.eu>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    1c9df907
random.h 5.77 KB