| From 0c83b277ada72b585e6a3e52b067669df15bcedb Mon Sep 17 00:00:00 2001 |
| From: Michael Ellerman <mpe@ellerman.id.au> |
| Date: Tue, 4 Aug 2020 22:44:06 +1000 |
| Subject: [PATCH] powerpc: Fix circular dependency between percpu.h and mmu.h |
| |
| 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 |
| |
| diff --git a/arch/powerpc/include/asm/percpu.h b/arch/powerpc/include/asm/percpu.h |
| index dce863a7635c..8e5b7d0b851c 100644 |
| --- 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_ */ |
| -- |
| 2.27.0 |
| |