Re: powerpc/cpm1: fix compilation error with CONFIG_PPC_EARLY_DEBUG_CPM

From: Michael Ellerman
Date: Mon Aug 13 2018 - 07:23:16 EST


On Mon, 2018-08-06 at 15:09:11 UTC, Christophe Leroy wrote:
> commit e8cb7a55eb8dc ("powerpc: remove superflous inclusions of
> asm/fixmap.h") removed inclusion of asm/fixmap.h from files not
> including objects from that file.
>
> However, asm/mmu-8xx.h includes call to __fix_to_virt(). The proper
> way would be to include asm/fixmap.h in asm/mmu-8xx.h but it creates
> an inclusion loop.
>
> So we have to leave asm/fixmap.h in sysdep/cpm_common.c for
> CONFIG_PPC_EARLY_DEBUG_CPM
>
> CC arch/powerpc/sysdev/cpm_common.o
> In file included from ./arch/powerpc/include/asm/mmu.h:340:0,
> from ./arch/powerpc/include/asm/reg_8xx.h:8,
> from ./arch/powerpc/include/asm/reg.h:29,
> from ./arch/powerpc/include/asm/processor.h:13,
> from ./arch/powerpc/include/asm/thread_info.h:28,
> from ./include/linux/thread_info.h:38,
> from ./arch/powerpc/include/asm/ptrace.h:159,
> from ./arch/powerpc/include/asm/hw_irq.h:12,
> from ./arch/powerpc/include/asm/irqflags.h:12,
> from ./include/linux/irqflags.h:16,
> from ./include/asm-generic/cmpxchg-local.h:6,
> from ./arch/powerpc/include/asm/cmpxchg.h:537,
> from ./arch/powerpc/include/asm/atomic.h:11,
> from ./include/linux/atomic.h:5,
> from ./include/linux/mutex.h:18,
> from ./include/linux/kernfs.h:13,
> from ./include/linux/sysfs.h:16,
> from ./include/linux/kobject.h:20,
> from ./include/linux/device.h:16,
> from ./include/linux/node.h:18,
> from ./include/linux/cpu.h:17,
> from ./include/linux/of_device.h:5,
> from arch/powerpc/sysdev/cpm_common.c:21:
> arch/powerpc/sysdev/cpm_common.c: In function â??udbg_init_cpmâ??:
> ./arch/powerpc/include/asm/mmu-8xx.h:218:25: error: implicit declaration of function â??__fix_to_virtâ?? [-Werror=implicit-function-declaration]
> #define VIRT_IMMR_BASE (__fix_to_virt(FIX_IMMR_BASE))
> ^
> arch/powerpc/sysdev/cpm_common.c:75:7: note: in expansion of macro â??VIRT_IMMR_BASEâ??
> VIRT_IMMR_BASE);
> ^
> ./arch/powerpc/include/asm/mmu-8xx.h:218:39: error: â??FIX_IMMR_BASEâ?? undeclared (first use in this function)
> #define VIRT_IMMR_BASE (__fix_to_virt(FIX_IMMR_BASE))
> ^
> arch/powerpc/sysdev/cpm_common.c:75:7: note: in expansion of macro â??VIRT_IMMR_BASEâ??
> VIRT_IMMR_BASE);
> ^
> ./arch/powerpc/include/asm/mmu-8xx.h:218:39: note: each undeclared identifier is reported only once for each function it appears in
> #define VIRT_IMMR_BASE (__fix_to_virt(FIX_IMMR_BASE))
> ^
> arch/powerpc/sysdev/cpm_common.c:75:7: note: in expansion of macro â??VIRT_IMMR_BASEâ??
> VIRT_IMMR_BASE);
> ^
> cc1: all warnings being treated as errors
> make[1]: *** [arch/powerpc/sysdev/cpm_common.o] Error 1
>
> Fixes: e8cb7a55eb8dc ("powerpc: remove superflous inclusions of asm/fixmap.h")
> Signed-off-by: Christophe Leroy <christophe.leroy@xxxxxx>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/6bd6d8672208e8dc0c18588d6eb458

cheers