All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc/64: Include cache.h directly in paca.h
@ 2022-05-27 11:20 Michael Ellerman
  2022-05-27 12:16 ` Christophe Leroy
  2022-05-28 12:53 ` Michael Ellerman
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Ellerman @ 2022-05-27 11:20 UTC (permalink / raw)
  To: linuxppc-dev

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@ellerman.id.au>
---
 arch/powerpc/include/asm/paca.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index 03330b7d835f..4d7aaab82702 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -12,6 +12,7 @@
 
 #ifdef CONFIG_PPC64
 
+#include <linux/cache.h>
 #include <linux/string.h>
 #include <asm/types.h>
 #include <asm/lppaca.h>
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/64: Include cache.h directly in paca.h
  2022-05-27 11:20 [PATCH] powerpc/64: Include cache.h directly in paca.h Michael Ellerman
@ 2022-05-27 12:16 ` Christophe Leroy
  2022-05-28 12:18   ` Michael Ellerman
  2022-05-28 12:53 ` Michael Ellerman
  1 sibling, 1 reply; 4+ messages in thread
From: Christophe Leroy @ 2022-05-27 12:16 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev



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@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/

Christophe


> ---
>   arch/powerpc/include/asm/paca.h | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
> index 03330b7d835f..4d7aaab82702 100644
> --- a/arch/powerpc/include/asm/paca.h
> +++ b/arch/powerpc/include/asm/paca.h
> @@ -12,6 +12,7 @@
>   
>   #ifdef CONFIG_PPC64
>   
> +#include <linux/cache.h>
>   #include <linux/string.h>
>   #include <asm/types.h>
>   #include <asm/lppaca.h>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/64: Include cache.h directly in paca.h
  2022-05-27 12:16 ` Christophe Leroy
@ 2022-05-28 12:18   ` Michael Ellerman
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2022-05-28 12:18 UTC (permalink / raw)
  To: Christophe Leroy, linuxppc-dev

Christophe Leroy <christophe.leroy@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@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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] powerpc/64: Include cache.h directly in paca.h
  2022-05-27 11:20 [PATCH] powerpc/64: Include cache.h directly in paca.h Michael Ellerman
  2022-05-27 12:16 ` Christophe Leroy
@ 2022-05-28 12:53 ` Michael Ellerman
  1 sibling, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2022-05-28 12:53 UTC (permalink / raw)
  To: linuxppc-dev, Michael Ellerman

On Fri, 27 May 2022 21:20:35 +1000, Michael Ellerman wrote:
> 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:
> 
> [...]

Applied to powerpc/next.

[1/1] powerpc/64: Include cache.h directly in paca.h
      https://git.kernel.org/powerpc/c/dcf280e6f80be280ca7dd1b058f038654e4a18dd

cheers

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-05-28 12:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-27 11:20 [PATCH] powerpc/64: Include cache.h directly in paca.h Michael Ellerman
2022-05-27 12:16 ` Christophe Leroy
2022-05-28 12:18   ` Michael Ellerman
2022-05-28 12:53 ` Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.