lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 046/204] powerpc: Fix circular dependency between percpu.h and mmu.h
    Date
    From: Michael Ellerman <mpe@ellerman.id.au>

    commit 0c83b277ada72b585e6a3e52b067669df15bcedb upstream.

    Recently random.h started including percpu.h (see commit
    f227e3ec3b5c ("random32: update the net random state on interrupt and
    activity")), which broke corenet64_smp_defconfig:

    In file included from /linux/arch/powerpc/include/asm/paca.h:18,
    from /linux/arch/powerpc/include/asm/percpu.h:13,
    from /linux/include/linux/random.h:14,
    from /linux/lib/uuid.c:14:
    /linux/arch/powerpc/include/asm/mmu.h:139:22: error: unknown type name 'next_tlbcam_idx'
    139 | DECLARE_PER_CPU(int, next_tlbcam_idx);

    This is due to a circular header dependency:
    asm/mmu.h includes asm/percpu.h, which includes asm/paca.h, which
    includes asm/mmu.h

    Which means DECLARE_PER_CPU() isn't defined when mmu.h needs it.

    We can fix it by moving the include of paca.h below the include of
    asm-generic/percpu.h.

    This moves the include of paca.h out of the #ifdef __powerpc64__, but
    that is OK because paca.h is almost entirely inside #ifdef
    CONFIG_PPC64 anyway.

    It also moves the include of paca.h out of the #ifdef CONFIG_SMP,
    which could possibly break something, but seems to have no ill
    effects.

    Fixes: f227e3ec3b5c ("random32: update the net random state on interrupt and activity")
    Cc: stable@vger.kernel.org # v5.8
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20200804130558.292328-1-mpe@ellerman.id.au
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/include/asm/percpu.h | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/arch/powerpc/include/asm/percpu.h
    +++ b/arch/powerpc/include/asm/percpu.h
    @@ -10,8 +10,6 @@

    #ifdef CONFIG_SMP

    -#include <asm/paca.h>
    -
    #define __my_cpu_offset local_paca->data_offset

    #endif /* CONFIG_SMP */
    @@ -19,4 +17,6 @@

    #include <asm-generic/percpu.h>

    +#include <asm/paca.h>
    +
    #endif /* _ASM_POWERPC_PERCPU_H_ */

    \
     
     \ /
      Last update: 2020-08-20 15:15    [W:4.092 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site