Re: [PATCH v5 1/2] printk: stop including cache.h from printk.h

From: Michael Ellerman
Date: Fri May 27 2022 - 08:40:39 EST


Guenter Roeck <linux@xxxxxxxxxxxx> writes:
> On Wed, Apr 27, 2022 at 12:58:19PM -0700, Peter Collingbourne wrote:
>> An inclusion of cache.h in printk.h was added in 2014 in
>> commit c28aa1f0a847 ("printk/cache: mark printk_once test variable
>> __read_mostly") in order to bring in the definition of __read_mostly. The
>> usage of __read_mostly was later removed in commit 3ec25826ae33 ("printk:
>> Tie printk_once / printk_deferred_once into .data.once for reset")
>> which made the inclusion of cache.h unnecessary, so remove it.
>>
>> We have a small amount of code that depended on the inclusion of cache.h
>> from printk.h; fix that code to include the appropriate header.
>>
>> This fixes a circular inclusion on arm64 (linux/printk.h -> linux/cache.h
>> -> asm/cache.h -> linux/kasan-enabled.h -> linux/static_key.h ->
>> linux/jump_label.h -> linux/bug.h -> asm/bug.h -> linux/printk.h) that
>> would otherwise be introduced by the next patch.
>>
>> Build tested using {allyesconfig,defconfig} x {arm64,x86_64}.
>
> But not powerpc:corenet64_smp_defconfig, where it results in lots of
> build errors such as
>
> powerpc64-linux-ld: fs/freevxfs/vxfs_fshead.o:(.bss+0x0):
> multiple definition of `____cacheline_aligned';
> fs/freevxfs/vxfs_bmap.o:(.bss+0x0): first defined here

I sent a patch to fix it, and will merge the fix via my tree:

http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20220527112035.2842155-1-mpe@xxxxxxxxxxxxxx/

cheers