[PATCH] powerpc/64: Include cache.h directly in paca.h

Michael Ellerman mpe at ellerman.id.au
Sat May 28 22:18:54 AEST 2022


Christophe Leroy <christophe.leroy at csgroup.eu> writes:
> Le 27/05/2022 à 13:20, Michael Ellerman a écrit :
>> paca.h uses ____cacheline_aligned without directly including cache.h,
>> where it's defined.
>> 
>> For Book3S builds that's OK because paca.h includes lppaca.h, and it
>> does include cache.h.
>> 
>> But Book3E builds have been getting cache.h indirectly via printk.h,
>> which is dicey, and in fact that include was recently removed, leading
>> to build errors such as:
>> 
>>    ld: fs/isofs/dir.o:(.bss+0x0): multiple definition of `____cacheline_aligned'; fs/isofs/namei.o:(.bss+0x0): first defined here
>> 
>> So include cache.h directly to fix the build error.
>> 
>> Fixes: 534aa1dc975a ("printk: stop including cache.h from printk.h")
>> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
>
> You've got other candidates for the fix:
>
> $ git grep -L linux/cache.h `git grep -l ____cacheline_aligned 
> arch/powerpc`
> arch/powerpc/include/asm/hardirq.h
> arch/powerpc/include/asm/iommu.h
> arch/powerpc/include/asm/paca.h
> arch/powerpc/include/asm/processor.h
> arch/powerpc/kernel/prom_init.c
>
> Discussion at 
> https://lore.kernel.org/lkml/e3c8b2bf-b55d-4c2c-a1cf-d5e9941e26b0@csgroup.eu/t/

Adding it to paca.h seems to also fix those build errors, so I'll leave
it at that for now.

Adding cache.h to those other headers should be fine, but I don't want
to do it just before sending my pull request, because changing include
order can easily cause bugs, and they're not always easy to find.

cheers


More information about the Linuxppc-dev mailing list