[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] device-tree: Move Arm's static-evtchn feature to common



On Tue, 27 May 2025, Michal Orzel wrote:
> There's nothing Arm specific about this feature. Move it to common as
> part of a larger activity to commonalize device tree related features.
> For now, select it only for ARM until others (e.g. RISC-V) verify it
> works for them too.
> 
> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>

Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>


> ---
> Other candidates: static memory, shared memory
> ---
>  xen/arch/arm/Kconfig                                      | 8 --------
>  xen/arch/arm/Makefile                                     | 1 -
>  xen/arch/arm/setup.c                                      | 2 +-
>  xen/common/Kconfig                                        | 8 ++++++++
>  xen/common/device-tree/Makefile                           | 1 +
>  xen/{arch/arm => common/device-tree}/static-evtchn.c      | 3 +--
>  xen/{arch/arm/include/asm => include/xen}/static-evtchn.h | 6 +++---
>  7 files changed, 14 insertions(+), 15 deletions(-)
>  rename xen/{arch/arm => common/device-tree}/static-evtchn.c (99%)
>  rename xen/{arch/arm/include/asm => include/xen}/static-evtchn.h (77%)
> 
> diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig
> index a5aad97a688e..57919d8b3ac8 100644
> --- a/xen/arch/arm/Kconfig
> +++ b/xen/arch/arm/Kconfig
> @@ -253,14 +253,6 @@ config STATIC_SHM
>       help
>         This option enables statically shared memory on a dom0less system.
>  
> -config STATIC_EVTCHN
> -     bool "Static event channel support on a dom0less system"
> -     depends on DOM0LESS_BOOT
> -     default y
> -     help
> -       This option enables establishing static event channel communication
> -       between domains on a dom0less system (domU-domU as well as domU-dom0).
> -
>  config PARTIAL_EMULATION
>       bool "Enable partial emulation of system/coprocessor registers"
>       default y
> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
> index 129a109d6ec5..eeeac4e653ec 100644
> --- a/xen/arch/arm/Makefile
> +++ b/xen/arch/arm/Makefile
> @@ -51,7 +51,6 @@ obj-y += setup.o
>  obj-y += shutdown.o
>  obj-y += smp.o
>  obj-y += smpboot.o
> -obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
>  obj-$(CONFIG_STATIC_MEMORY) += static-memory.init.o
>  obj-$(CONFIG_STATIC_SHM) += static-shmem.init.o
>  obj-y += sysctl.o
> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
> index 10b46d068405..734e23da4408 100644
> --- a/xen/arch/arm/setup.c
> +++ b/xen/arch/arm/setup.c
> @@ -31,6 +31,7 @@
>  #include <xen/version.h>
>  #include <xen/vmap.h>
>  #include <xen/stack-protector.h>
> +#include <xen/static-evtchn.h>
>  #include <xen/trace.h>
>  #include <xen/libfdt/libfdt-xen.h>
>  #include <xen/acpi.h>
> @@ -39,7 +40,6 @@
>  #include <asm/alternative.h>
>  #include <asm/dom0less-build.h>
>  #include <asm/page.h>
> -#include <asm/static-evtchn.h>
>  #include <asm/current.h>
>  #include <asm/setup.h>
>  #include <asm/gic.h>
> diff --git a/xen/common/Kconfig b/xen/common/Kconfig
> index 3d66d0939738..0951d4c2f286 100644
> --- a/xen/common/Kconfig
> +++ b/xen/common/Kconfig
> @@ -162,6 +162,14 @@ config STATIC_MEMORY
>  
>         If unsure, say N.
>  
> +config STATIC_EVTCHN
> +     bool "Static event channel support on a dom0less system"
> +     depends on DOM0LESS_BOOT && ARM
> +     default y
> +     help
> +       This option enables establishing static event channel communication
> +       between domains on a dom0less system (domU-domU as well as domU-dom0).
> +
>  menu "Speculative hardening"
>  
>  config INDIRECT_THUNK
> diff --git a/xen/common/device-tree/Makefile b/xen/common/device-tree/Makefile
> index 831b91399b74..2df7eb27222e 100644
> --- a/xen/common/device-tree/Makefile
> +++ b/xen/common/device-tree/Makefile
> @@ -6,3 +6,4 @@ obj-$(CONFIG_DOM0LESS_BOOT) += dom0less-build.o
>  obj-$(CONFIG_OVERLAY_DTB) += dt-overlay.o
>  obj-y += intc.o
>  obj-$(CONFIG_DOMAIN_BUILD_HELPERS) += kernel.o
> +obj-$(CONFIG_STATIC_EVTCHN) += static-evtchn.init.o
> diff --git a/xen/arch/arm/static-evtchn.c 
> b/xen/common/device-tree/static-evtchn.c
> similarity index 99%
> rename from xen/arch/arm/static-evtchn.c
> rename to xen/common/device-tree/static-evtchn.c
> index 49db08d5c6fc..8b82e6b3d8a6 100644
> --- a/xen/arch/arm/static-evtchn.c
> +++ b/xen/common/device-tree/static-evtchn.c
> @@ -1,8 +1,7 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
>  #include <xen/event.h>
> -
> -#include <asm/static-evtchn.h>
> +#include <xen/static-evtchn.h>
>  
>  #define STATIC_EVTCHN_NODE_SIZE_CELLS 2
>  
> diff --git a/xen/arch/arm/include/asm/static-evtchn.h 
> b/xen/include/xen/static-evtchn.h
> similarity index 77%
> rename from xen/arch/arm/include/asm/static-evtchn.h
> rename to xen/include/xen/static-evtchn.h
> index f964522f6a62..31ae92741aad 100644
> --- a/xen/arch/arm/include/asm/static-evtchn.h
> +++ b/xen/include/xen/static-evtchn.h
> @@ -1,7 +1,7 @@
>  /* SPDX-License-Identifier: GPL-2.0-only */
>  
> -#ifndef __ASM_STATIC_EVTCHN_H_
> -#define __ASM_STATIC_EVTCHN_H_
> +#ifndef XEN_STATIC_EVTCHN_H
> +#define XEN_STATIC_EVTCHN_H
>  
>  #ifdef CONFIG_STATIC_EVTCHN
>  
> @@ -13,7 +13,7 @@ static inline void alloc_static_evtchn(void) {};
>  
>  #endif /* CONFIG_STATIC_EVTCHN */
>  
> -#endif /* __ASM_STATIC_EVTCHN_H_ */
> +#endif /* XEN_STATIC_EVTCHN_H */
>  
>  /*
>   * Local variables:
> -- 
> 2.25.1
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.