[PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions

Andrew Cooper posted 3 patches 5 months ago
[PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions
Posted by Andrew Cooper 5 months ago
RISC-V wants to introduce a full build of Xen without using the legacy
definitions.  PPC64 has the most minimal full build of Xen right now, so make
it compile without the legacy definitions.

Mostly this is just including xen/sections.h in a variety of common files.  In
a couple of cases, we can drop an inclusion of {xen,asm}/cache.h, but almost
all files get the definitions transitively.

No functional change.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: Shawn Anastasio <sanastasio@raptorengineering.com>
CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
CC: George Dunlap <George.Dunlap@citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Julien Grall <julien@xen.org>

https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1342714126
---
 xen/arch/ppc/include/asm/cache.h | 3 ---
 xen/arch/ppc/mm-radix.c          | 1 +
 xen/arch/ppc/stubs.c             | 1 +
 xen/common/argo.c                | 1 +
 xen/common/cpu.c                 | 1 +
 xen/common/debugtrace.c          | 1 +
 xen/common/domain.c              | 1 +
 xen/common/event_channel.c       | 2 ++
 xen/common/keyhandler.c          | 1 +
 xen/common/memory.c              | 1 +
 xen/common/page_alloc.c          | 1 +
 xen/common/pdx.c                 | 1 +
 xen/common/radix-tree.c          | 1 +
 xen/common/random.c              | 2 +-
 xen/common/rcupdate.c            | 1 +
 xen/common/sched/core.c          | 1 +
 xen/common/sched/cpupool.c       | 1 +
 xen/common/sched/credit.c        | 1 +
 xen/common/sched/credit2.c       | 1 +
 xen/common/shutdown.c            | 1 +
 xen/common/spinlock.c            | 1 +
 xen/common/timer.c               | 1 +
 xen/common/version.c             | 3 +--
 xen/common/virtual_region.c      | 1 +
 xen/common/vmap.c                | 2 +-
 xen/drivers/char/console.c       | 1 +
 xen/drivers/char/ns16550.c       | 1 +
 xen/drivers/char/serial.c        | 2 +-
 xen/include/xen/cache.h          | 2 +-
 xen/include/xen/hypfs.h          | 1 +
 30 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/xen/arch/ppc/include/asm/cache.h b/xen/arch/ppc/include/asm/cache.h
index 13c0bf3242c8..8a0a6b7b1756 100644
--- a/xen/arch/ppc/include/asm/cache.h
+++ b/xen/arch/ppc/include/asm/cache.h
@@ -3,7 +3,4 @@
 #ifndef _ASM_PPC_CACHE_H
 #define _ASM_PPC_CACHE_H
 
-/* TODO: Phase out the use of this via cache.h */
-#define __read_mostly __section(".data.read_mostly")
-
 #endif /* _ASM_PPC_CACHE_H */
diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
index ab5a10695c5f..0a47959e64f2 100644
--- a/xen/arch/ppc/mm-radix.c
+++ b/xen/arch/ppc/mm-radix.c
@@ -2,6 +2,7 @@
 #include <xen/init.h>
 #include <xen/kernel.h>
 #include <xen/mm.h>
+#include <xen/sections.h>
 #include <xen/types.h>
 #include <xen/lib.h>
 
diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
index a10691165b1b..0e7a26dadbc1 100644
--- a/xen/arch/ppc/stubs.c
+++ b/xen/arch/ppc/stubs.c
@@ -3,6 +3,7 @@
 #include <xen/domain.h>
 #include <xen/irq.h>
 #include <xen/nodemask.h>
+#include <xen/sections.h>
 #include <xen/time.h>
 #include <public/domctl.h>
 #include <public/vm_event.h>
diff --git a/xen/common/argo.c b/xen/common/argo.c
index 901f41eb2dbe..df19006744a3 100644
--- a/xen/common/argo.c
+++ b/xen/common/argo.c
@@ -25,6 +25,7 @@
 #include <xen/nospec.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/time.h>
 
 #include <xsm/xsm.h>
diff --git a/xen/common/cpu.c b/xen/common/cpu.c
index 6e35b114c080..f09af0444b6a 100644
--- a/xen/common/cpu.c
+++ b/xen/common/cpu.c
@@ -3,6 +3,7 @@
 #include <xen/event.h>
 #include <xen/init.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/stop_machine.h>
 #include <xen/rcupdate.h>
 
diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
index a272e5e43761..ca883ad9198d 100644
--- a/xen/common/debugtrace.c
+++ b/xen/common/debugtrace.c
@@ -13,6 +13,7 @@
 #include <xen/mm.h>
 #include <xen/param.h>
 #include <xen/percpu.h>
+#include <xen/sections.h>
 #include <xen/serial.h>
 #include <xen/smp.h>
 #include <xen/spinlock.h>
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 67cadb7c3f4f..3db0e0b793f9 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -11,6 +11,7 @@
 #include <xen/err.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/domain.h>
 #include <xen/mm.h>
 #include <xen/event.h>
diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
index a67feff98976..822b2c982489 100644
--- a/xen/common/event_channel.c
+++ b/xen/common/event_channel.c
@@ -26,6 +26,8 @@
 #include <xen/guest_access.h>
 #include <xen/hypercall.h>
 #include <xen/keyhandler.h>
+#include <xen/sections.h>
+
 #include <asm/current.h>
 
 #include <public/xen.h>
diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
index 127ca506965c..674e7be39e9d 100644
--- a/xen/common/keyhandler.c
+++ b/xen/common/keyhandler.c
@@ -6,6 +6,7 @@
 #include <xen/delay.h>
 #include <xen/keyhandler.h>
 #include <xen/param.h>
+#include <xen/sections.h>
 #include <xen/shutdown.h>
 #include <xen/event.h>
 #include <xen/console.h>
diff --git a/xen/common/memory.c b/xen/common/memory.c
index de2cc7ad92a5..a6f2f6d1b348 100644
--- a/xen/common/memory.c
+++ b/xen/common/memory.c
@@ -23,6 +23,7 @@
 #include <xen/param.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/trace.h>
 #include <xen/types.h>
 #include <asm/current.h>
diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
index 054b7edb3989..33c8c917d984 100644
--- a/xen/common/page_alloc.c
+++ b/xen/common/page_alloc.c
@@ -134,6 +134,7 @@
 #include <xen/pfn.h>
 #include <xen/types.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/softirq.h>
 #include <xen/spinlock.h>
 
diff --git a/xen/common/pdx.c b/xen/common/pdx.c
index d3d63b075032..b8384e6189df 100644
--- a/xen/common/pdx.c
+++ b/xen/common/pdx.c
@@ -19,6 +19,7 @@
 #include <xen/mm.h>
 #include <xen/bitops.h>
 #include <xen/nospec.h>
+#include <xen/sections.h>
 
 /**
  * Maximum (non-inclusive) usable pdx. Must be
diff --git a/xen/common/radix-tree.c b/xen/common/radix-tree.c
index adc3034222dc..fb283a9d52fc 100644
--- a/xen/common/radix-tree.c
+++ b/xen/common/radix-tree.c
@@ -21,6 +21,7 @@
 #include <xen/init.h>
 #include <xen/radix-tree.h>
 #include <xen/errno.h>
+#include <xen/sections.h>
 
 struct radix_tree_path {
 	struct radix_tree_node *node;
diff --git a/xen/common/random.c b/xen/common/random.c
index a29f2fcb991a..35a9f387fd5c 100644
--- a/xen/common/random.c
+++ b/xen/common/random.c
@@ -1,6 +1,6 @@
-#include <xen/cache.h>
 #include <xen/init.h>
 #include <xen/percpu.h>
+#include <xen/sections.h>
 #include <xen/random.h>
 #include <xen/time.h>
 #include <asm/random.h>
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index 212a99acd8c8..fd5d3d7484a5 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -35,6 +35,7 @@
 #include <xen/kernel.h>
 #include <xen/init.h>
 #include <xen/param.h>
+#include <xen/sections.h>
 #include <xen/spinlock.h>
 #include <xen/smp.h>
 #include <xen/rcupdate.h>
diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
index d84b65f197b3..1a3ff5ae4dec 100644
--- a/xen/common/sched/core.c
+++ b/xen/common/sched/core.c
@@ -18,6 +18,7 @@
 #include <xen/lib.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/domain.h>
 #include <xen/delay.h>
 #include <xen/event.h>
diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
index ad8f60846273..57dfee26f21f 100644
--- a/xen/common/sched/cpupool.c
+++ b/xen/common/sched/cpupool.c
@@ -22,6 +22,7 @@
 #include <xen/param.h>
 #include <xen/percpu.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/warning.h>
 
 #include "private.h"
diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
index 020f44595ed0..a6bb321e7da1 100644
--- a/xen/common/sched/credit.c
+++ b/xen/common/sched/credit.c
@@ -12,6 +12,7 @@
 #include <xen/lib.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/domain.h>
 #include <xen/delay.h>
 #include <xen/event.h>
diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
index 685929c2902b..a7da60f40376 100644
--- a/xen/common/sched/credit2.c
+++ b/xen/common/sched/credit2.c
@@ -14,6 +14,7 @@
 #include <xen/lib.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/domain.h>
 #include <xen/delay.h>
 #include <xen/event.h>
diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
index 5f8141edc6b2..f413f331af17 100644
--- a/xen/common/shutdown.c
+++ b/xen/common/shutdown.c
@@ -2,6 +2,7 @@
 #include <xen/lib.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/domain.h>
 #include <xen/delay.h>
 #include <xen/watchdog.h>
diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
index 28c6e9d3ac60..0b877384451d 100644
--- a/xen/common/spinlock.c
+++ b/xen/common/spinlock.c
@@ -5,6 +5,7 @@
 #include <xen/param.h>
 #include <xen/smp.h>
 #include <xen/time.h>
+#include <xen/sections.h>
 #include <xen/spinlock.h>
 #include <xen/guest_access.h>
 #include <xen/preempt.h>
diff --git a/xen/common/timer.c b/xen/common/timer.c
index a21798b76f38..da0d069cc674 100644
--- a/xen/common/timer.c
+++ b/xen/common/timer.c
@@ -11,6 +11,7 @@
 #include <xen/sched.h>
 #include <xen/lib.h>
 #include <xen/param.h>
+#include <xen/sections.h>
 #include <xen/smp.h>
 #include <xen/perfc.h>
 #include <xen/time.h>
diff --git a/xen/common/version.c b/xen/common/version.c
index 80869430fc7c..b7d7d515a3dc 100644
--- a/xen/common/version.c
+++ b/xen/common/version.c
@@ -3,14 +3,13 @@
 #include <xen/init.h>
 #include <xen/errno.h>
 #include <xen/lib.h>
+#include <xen/sections.h>
 #include <xen/string.h>
 #include <xen/types.h>
 #include <xen/efi.h>
 #include <xen/elf.h>
 #include <xen/version.h>
 
-#include <asm/cache.h>
-
 const char *xen_compile_date(void)
 {
     return XEN_COMPILE_DATE;
diff --git a/xen/common/virtual_region.c b/xen/common/virtual_region.c
index 52405d84b25c..1dc2e9f592ed 100644
--- a/xen/common/virtual_region.c
+++ b/xen/common/virtual_region.c
@@ -6,6 +6,7 @@
 #include <xen/kernel.h>
 #include <xen/mm.h>
 #include <xen/rcupdate.h>
+#include <xen/sections.h>
 #include <xen/spinlock.h>
 #include <xen/virtual_region.h>
 
diff --git a/xen/common/vmap.c b/xen/common/vmap.c
index 966a7e763f0f..b3b4ddf65311 100644
--- a/xen/common/vmap.c
+++ b/xen/common/vmap.c
@@ -1,6 +1,6 @@
 #ifdef VMAP_VIRT_START
 #include <xen/bitmap.h>
-#include <xen/cache.h>
+#include <xen/sections.h>
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/pfn.h>
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 3a3a97bcbe3a..7da8c5296f3b 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -32,6 +32,7 @@
 #include <xen/warning.h>
 #include <xen/pv_console.h>
 #include <asm/setup.h>
+#include <xen/sections.h>
 
 #ifdef CONFIG_X86
 #include <xen/consoled.h>
diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
index 8f76bbe676bc..eaeb0e09d01e 100644
--- a/xen/drivers/char/ns16550.c
+++ b/xen/drivers/char/ns16550.c
@@ -22,6 +22,7 @@
 #include <xen/irq.h>
 #include <xen/param.h>
 #include <xen/sched.h>
+#include <xen/sections.h>
 #include <xen/timer.h>
 #include <xen/serial.h>
 #include <xen/iocap.h>
diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
index f28d8557c0a5..591a00900869 100644
--- a/xen/drivers/char/serial.c
+++ b/xen/drivers/char/serial.c
@@ -10,8 +10,8 @@
 #include <xen/init.h>
 #include <xen/mm.h>
 #include <xen/param.h>
+#include <xen/sections.h>
 #include <xen/serial.h>
-#include <xen/cache.h>
 
 #include <asm/processor.h>
 
diff --git a/xen/include/xen/cache.h b/xen/include/xen/cache.h
index 82a3ba38e3e7..a19942fd63ef 100644
--- a/xen/include/xen/cache.h
+++ b/xen/include/xen/cache.h
@@ -15,7 +15,7 @@
 #define __cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
 #endif
 
-#if defined(CONFIG_ARM) || defined(CONFIG_X86) || defined(CONFIG_PPC64)
+#if defined(CONFIG_ARM) || defined(CONFIG_X86)
 /* TODO: Phase out the use of this via cache.h */
 #define __ro_after_init __section(".data.ro_after_init")
 #endif
diff --git a/xen/include/xen/hypfs.h b/xen/include/xen/hypfs.h
index 1b65a9188c6c..d8fcac23b46b 100644
--- a/xen/include/xen/hypfs.h
+++ b/xen/include/xen/hypfs.h
@@ -4,6 +4,7 @@
 #ifdef CONFIG_HYPFS
 #include <xen/lib.h>
 #include <xen/list.h>
+#include <xen/sections.h>
 #include <xen/string.h>
 #include <public/hypfs.h>
 
-- 
2.39.2
Re: [PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions
Posted by Oleksii 5 months ago
On Fri, 2024-06-21 at 21:19 +0100, Andrew Cooper wrote:
> RISC-V wants to introduce a full build of Xen without using the
> legacy
> definitions.  PPC64 has the most minimal full build of Xen right now,
> so make
> it compile without the legacy definitions.
> 
> Mostly this is just including xen/sections.h in a variety of common
> files.  In
> a couple of cases, we can drop an inclusion of {xen,asm}/cache.h, but
> almost
> all files get the definitions transitively.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>

~ Oleskii

> ---
> CC: Shawn Anastasio <sanastasio@raptorengineering.com>
> CC: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> CC: George Dunlap <George.Dunlap@citrix.com>
> CC: Jan Beulich <JBeulich@suse.com>
> CC: Stefano Stabellini <sstabellini@kernel.org>
> CC: Julien Grall <julien@xen.org>
> 
> https://gitlab.com/xen-project/people/andyhhp/xen/-/pipelines/1342714126
> ---
>  xen/arch/ppc/include/asm/cache.h | 3 ---
>  xen/arch/ppc/mm-radix.c          | 1 +
>  xen/arch/ppc/stubs.c             | 1 +
>  xen/common/argo.c                | 1 +
>  xen/common/cpu.c                 | 1 +
>  xen/common/debugtrace.c          | 1 +
>  xen/common/domain.c              | 1 +
>  xen/common/event_channel.c       | 2 ++
>  xen/common/keyhandler.c          | 1 +
>  xen/common/memory.c              | 1 +
>  xen/common/page_alloc.c          | 1 +
>  xen/common/pdx.c                 | 1 +
>  xen/common/radix-tree.c          | 1 +
>  xen/common/random.c              | 2 +-
>  xen/common/rcupdate.c            | 1 +
>  xen/common/sched/core.c          | 1 +
>  xen/common/sched/cpupool.c       | 1 +
>  xen/common/sched/credit.c        | 1 +
>  xen/common/sched/credit2.c       | 1 +
>  xen/common/shutdown.c            | 1 +
>  xen/common/spinlock.c            | 1 +
>  xen/common/timer.c               | 1 +
>  xen/common/version.c             | 3 +--
>  xen/common/virtual_region.c      | 1 +
>  xen/common/vmap.c                | 2 +-
>  xen/drivers/char/console.c       | 1 +
>  xen/drivers/char/ns16550.c       | 1 +
>  xen/drivers/char/serial.c        | 2 +-
>  xen/include/xen/cache.h          | 2 +-
>  xen/include/xen/hypfs.h          | 1 +
>  30 files changed, 30 insertions(+), 9 deletions(-)
> 
> diff --git a/xen/arch/ppc/include/asm/cache.h
> b/xen/arch/ppc/include/asm/cache.h
> index 13c0bf3242c8..8a0a6b7b1756 100644
> --- a/xen/arch/ppc/include/asm/cache.h
> +++ b/xen/arch/ppc/include/asm/cache.h
> @@ -3,7 +3,4 @@
>  #ifndef _ASM_PPC_CACHE_H
>  #define _ASM_PPC_CACHE_H
>  
> -/* TODO: Phase out the use of this via cache.h */
> -#define __read_mostly __section(".data.read_mostly")
> -
>  #endif /* _ASM_PPC_CACHE_H */
> diff --git a/xen/arch/ppc/mm-radix.c b/xen/arch/ppc/mm-radix.c
> index ab5a10695c5f..0a47959e64f2 100644
> --- a/xen/arch/ppc/mm-radix.c
> +++ b/xen/arch/ppc/mm-radix.c
> @@ -2,6 +2,7 @@
>  #include <xen/init.h>
>  #include <xen/kernel.h>
>  #include <xen/mm.h>
> +#include <xen/sections.h>
>  #include <xen/types.h>
>  #include <xen/lib.h>
>  
> diff --git a/xen/arch/ppc/stubs.c b/xen/arch/ppc/stubs.c
> index a10691165b1b..0e7a26dadbc1 100644
> --- a/xen/arch/ppc/stubs.c
> +++ b/xen/arch/ppc/stubs.c
> @@ -3,6 +3,7 @@
>  #include <xen/domain.h>
>  #include <xen/irq.h>
>  #include <xen/nodemask.h>
> +#include <xen/sections.h>
>  #include <xen/time.h>
>  #include <public/domctl.h>
>  #include <public/vm_event.h>
> diff --git a/xen/common/argo.c b/xen/common/argo.c
> index 901f41eb2dbe..df19006744a3 100644
> --- a/xen/common/argo.c
> +++ b/xen/common/argo.c
> @@ -25,6 +25,7 @@
>  #include <xen/nospec.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/time.h>
>  
>  #include <xsm/xsm.h>
> diff --git a/xen/common/cpu.c b/xen/common/cpu.c
> index 6e35b114c080..f09af0444b6a 100644
> --- a/xen/common/cpu.c
> +++ b/xen/common/cpu.c
> @@ -3,6 +3,7 @@
>  #include <xen/event.h>
>  #include <xen/init.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/stop_machine.h>
>  #include <xen/rcupdate.h>
>  
> diff --git a/xen/common/debugtrace.c b/xen/common/debugtrace.c
> index a272e5e43761..ca883ad9198d 100644
> --- a/xen/common/debugtrace.c
> +++ b/xen/common/debugtrace.c
> @@ -13,6 +13,7 @@
>  #include <xen/mm.h>
>  #include <xen/param.h>
>  #include <xen/percpu.h>
> +#include <xen/sections.h>
>  #include <xen/serial.h>
>  #include <xen/smp.h>
>  #include <xen/spinlock.h>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 67cadb7c3f4f..3db0e0b793f9 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -11,6 +11,7 @@
>  #include <xen/err.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/domain.h>
>  #include <xen/mm.h>
>  #include <xen/event.h>
> diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
> index a67feff98976..822b2c982489 100644
> --- a/xen/common/event_channel.c
> +++ b/xen/common/event_channel.c
> @@ -26,6 +26,8 @@
>  #include <xen/guest_access.h>
>  #include <xen/hypercall.h>
>  #include <xen/keyhandler.h>
> +#include <xen/sections.h>
> +
>  #include <asm/current.h>
>  
>  #include <public/xen.h>
> diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c
> index 127ca506965c..674e7be39e9d 100644
> --- a/xen/common/keyhandler.c
> +++ b/xen/common/keyhandler.c
> @@ -6,6 +6,7 @@
>  #include <xen/delay.h>
>  #include <xen/keyhandler.h>
>  #include <xen/param.h>
> +#include <xen/sections.h>
>  #include <xen/shutdown.h>
>  #include <xen/event.h>
>  #include <xen/console.h>
> diff --git a/xen/common/memory.c b/xen/common/memory.c
> index de2cc7ad92a5..a6f2f6d1b348 100644
> --- a/xen/common/memory.c
> +++ b/xen/common/memory.c
> @@ -23,6 +23,7 @@
>  #include <xen/param.h>
>  #include <xen/perfc.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/trace.h>
>  #include <xen/types.h>
>  #include <asm/current.h>
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 054b7edb3989..33c8c917d984 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -134,6 +134,7 @@
>  #include <xen/pfn.h>
>  #include <xen/types.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/softirq.h>
>  #include <xen/spinlock.h>
>  
> diff --git a/xen/common/pdx.c b/xen/common/pdx.c
> index d3d63b075032..b8384e6189df 100644
> --- a/xen/common/pdx.c
> +++ b/xen/common/pdx.c
> @@ -19,6 +19,7 @@
>  #include <xen/mm.h>
>  #include <xen/bitops.h>
>  #include <xen/nospec.h>
> +#include <xen/sections.h>
>  
>  /**
>   * Maximum (non-inclusive) usable pdx. Must be
> diff --git a/xen/common/radix-tree.c b/xen/common/radix-tree.c
> index adc3034222dc..fb283a9d52fc 100644
> --- a/xen/common/radix-tree.c
> +++ b/xen/common/radix-tree.c
> @@ -21,6 +21,7 @@
>  #include <xen/init.h>
>  #include <xen/radix-tree.h>
>  #include <xen/errno.h>
> +#include <xen/sections.h>
>  
>  struct radix_tree_path {
>  	struct radix_tree_node *node;
> diff --git a/xen/common/random.c b/xen/common/random.c
> index a29f2fcb991a..35a9f387fd5c 100644
> --- a/xen/common/random.c
> +++ b/xen/common/random.c
> @@ -1,6 +1,6 @@
> -#include <xen/cache.h>
>  #include <xen/init.h>
>  #include <xen/percpu.h>
> +#include <xen/sections.h>
>  #include <xen/random.h>
>  #include <xen/time.h>
>  #include <asm/random.h>
> diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
> index 212a99acd8c8..fd5d3d7484a5 100644
> --- a/xen/common/rcupdate.c
> +++ b/xen/common/rcupdate.c
> @@ -35,6 +35,7 @@
>  #include <xen/kernel.h>
>  #include <xen/init.h>
>  #include <xen/param.h>
> +#include <xen/sections.h>
>  #include <xen/spinlock.h>
>  #include <xen/smp.h>
>  #include <xen/rcupdate.h>
> diff --git a/xen/common/sched/core.c b/xen/common/sched/core.c
> index d84b65f197b3..1a3ff5ae4dec 100644
> --- a/xen/common/sched/core.c
> +++ b/xen/common/sched/core.c
> @@ -18,6 +18,7 @@
>  #include <xen/lib.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/domain.h>
>  #include <xen/delay.h>
>  #include <xen/event.h>
> diff --git a/xen/common/sched/cpupool.c b/xen/common/sched/cpupool.c
> index ad8f60846273..57dfee26f21f 100644
> --- a/xen/common/sched/cpupool.c
> +++ b/xen/common/sched/cpupool.c
> @@ -22,6 +22,7 @@
>  #include <xen/param.h>
>  #include <xen/percpu.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/warning.h>
>  
>  #include "private.h"
> diff --git a/xen/common/sched/credit.c b/xen/common/sched/credit.c
> index 020f44595ed0..a6bb321e7da1 100644
> --- a/xen/common/sched/credit.c
> +++ b/xen/common/sched/credit.c
> @@ -12,6 +12,7 @@
>  #include <xen/lib.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/domain.h>
>  #include <xen/delay.h>
>  #include <xen/event.h>
> diff --git a/xen/common/sched/credit2.c b/xen/common/sched/credit2.c
> index 685929c2902b..a7da60f40376 100644
> --- a/xen/common/sched/credit2.c
> +++ b/xen/common/sched/credit2.c
> @@ -14,6 +14,7 @@
>  #include <xen/lib.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/domain.h>
>  #include <xen/delay.h>
>  #include <xen/event.h>
> diff --git a/xen/common/shutdown.c b/xen/common/shutdown.c
> index 5f8141edc6b2..f413f331af17 100644
> --- a/xen/common/shutdown.c
> +++ b/xen/common/shutdown.c
> @@ -2,6 +2,7 @@
>  #include <xen/lib.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/domain.h>
>  #include <xen/delay.h>
>  #include <xen/watchdog.h>
> diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c
> index 28c6e9d3ac60..0b877384451d 100644
> --- a/xen/common/spinlock.c
> +++ b/xen/common/spinlock.c
> @@ -5,6 +5,7 @@
>  #include <xen/param.h>
>  #include <xen/smp.h>
>  #include <xen/time.h>
> +#include <xen/sections.h>
>  #include <xen/spinlock.h>
>  #include <xen/guest_access.h>
>  #include <xen/preempt.h>
> diff --git a/xen/common/timer.c b/xen/common/timer.c
> index a21798b76f38..da0d069cc674 100644
> --- a/xen/common/timer.c
> +++ b/xen/common/timer.c
> @@ -11,6 +11,7 @@
>  #include <xen/sched.h>
>  #include <xen/lib.h>
>  #include <xen/param.h>
> +#include <xen/sections.h>
>  #include <xen/smp.h>
>  #include <xen/perfc.h>
>  #include <xen/time.h>
> diff --git a/xen/common/version.c b/xen/common/version.c
> index 80869430fc7c..b7d7d515a3dc 100644
> --- a/xen/common/version.c
> +++ b/xen/common/version.c
> @@ -3,14 +3,13 @@
>  #include <xen/init.h>
>  #include <xen/errno.h>
>  #include <xen/lib.h>
> +#include <xen/sections.h>
>  #include <xen/string.h>
>  #include <xen/types.h>
>  #include <xen/efi.h>
>  #include <xen/elf.h>
>  #include <xen/version.h>
>  
> -#include <asm/cache.h>
> -
>  const char *xen_compile_date(void)
>  {
>      return XEN_COMPILE_DATE;
> diff --git a/xen/common/virtual_region.c
> b/xen/common/virtual_region.c
> index 52405d84b25c..1dc2e9f592ed 100644
> --- a/xen/common/virtual_region.c
> +++ b/xen/common/virtual_region.c
> @@ -6,6 +6,7 @@
>  #include <xen/kernel.h>
>  #include <xen/mm.h>
>  #include <xen/rcupdate.h>
> +#include <xen/sections.h>
>  #include <xen/spinlock.h>
>  #include <xen/virtual_region.h>
>  
> diff --git a/xen/common/vmap.c b/xen/common/vmap.c
> index 966a7e763f0f..b3b4ddf65311 100644
> --- a/xen/common/vmap.c
> +++ b/xen/common/vmap.c
> @@ -1,6 +1,6 @@
>  #ifdef VMAP_VIRT_START
>  #include <xen/bitmap.h>
> -#include <xen/cache.h>
> +#include <xen/sections.h>
>  #include <xen/init.h>
>  #include <xen/mm.h>
>  #include <xen/pfn.h>
> diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
> index 3a3a97bcbe3a..7da8c5296f3b 100644
> --- a/xen/drivers/char/console.c
> +++ b/xen/drivers/char/console.c
> @@ -32,6 +32,7 @@
>  #include <xen/warning.h>
>  #include <xen/pv_console.h>
>  #include <asm/setup.h>
> +#include <xen/sections.h>
>  
>  #ifdef CONFIG_X86
>  #include <xen/consoled.h>
> diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c
> index 8f76bbe676bc..eaeb0e09d01e 100644
> --- a/xen/drivers/char/ns16550.c
> +++ b/xen/drivers/char/ns16550.c
> @@ -22,6 +22,7 @@
>  #include <xen/irq.h>
>  #include <xen/param.h>
>  #include <xen/sched.h>
> +#include <xen/sections.h>
>  #include <xen/timer.h>
>  #include <xen/serial.h>
>  #include <xen/iocap.h>
> diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c
> index f28d8557c0a5..591a00900869 100644
> --- a/xen/drivers/char/serial.c
> +++ b/xen/drivers/char/serial.c
> @@ -10,8 +10,8 @@
>  #include <xen/init.h>
>  #include <xen/mm.h>
>  #include <xen/param.h>
> +#include <xen/sections.h>
>  #include <xen/serial.h>
> -#include <xen/cache.h>
>  
>  #include <asm/processor.h>
>  
> diff --git a/xen/include/xen/cache.h b/xen/include/xen/cache.h
> index 82a3ba38e3e7..a19942fd63ef 100644
> --- a/xen/include/xen/cache.h
> +++ b/xen/include/xen/cache.h
> @@ -15,7 +15,7 @@
>  #define __cacheline_aligned
> __attribute__((__aligned__(SMP_CACHE_BYTES)))
>  #endif
>  
> -#if defined(CONFIG_ARM) || defined(CONFIG_X86) ||
> defined(CONFIG_PPC64)
> +#if defined(CONFIG_ARM) || defined(CONFIG_X86)
>  /* TODO: Phase out the use of this via cache.h */
>  #define __ro_after_init __section(".data.ro_after_init")
>  #endif
> diff --git a/xen/include/xen/hypfs.h b/xen/include/xen/hypfs.h
> index 1b65a9188c6c..d8fcac23b46b 100644
> --- a/xen/include/xen/hypfs.h
> +++ b/xen/include/xen/hypfs.h
> @@ -4,6 +4,7 @@
>  #ifdef CONFIG_HYPFS
>  #include <xen/lib.h>
>  #include <xen/list.h>
> +#include <xen/sections.h>
>  #include <xen/string.h>
>  #include <public/hypfs.h>
>  
Re: [PATCH 3/3] xen/ppc: Avoid using the legacy __read_mostly/__ro_after_init definitions
Posted by Jan Beulich 5 months ago
On 21.06.2024 22:19, Andrew Cooper wrote:
> RISC-V wants to introduce a full build of Xen without using the legacy
> definitions.  PPC64 has the most minimal full build of Xen right now, so make
> it compile without the legacy definitions.
> 
> Mostly this is just including xen/sections.h in a variety of common files.  In
> a couple of cases, we can drop an inclusion of {xen,asm}/cache.h, but almost
> all files get the definitions transitively.
> 
> No functional change.
> 
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>

Acked-by: Jan Beulich <jbeulich@suse.com>