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

Re: [PATCH 06/19] xen: Clean up asm-generic/device.h



On Fri, 30 May 2025, Alejandro Vallejo wrote:
> There's some pretense this header may be used without
> CONFIG_HAS_DEVICE_TREE, but that's just wishful thinking. Only x86 lacks
> that option, and it fully overrides this header, typedeffing struct
> pci_dev to be device_t.
> 
> Furthermore there's an include for xen/device_tree.h halfway through the
> header, but that header already includes asm/device.h, creating a cycle.
> 
> Clean up the header removing ifdef guards, merging the typedef onto the
> struct definition for device_t and removing the spurious include.
> 
> The only affected file is aplic.c, in riscv, which is forced now to
> include device_tree.h directly.
> 
> Not a functional change.
> 
> Signed-off-by: Alejandro Vallejo <agarciav@xxxxxxx>

Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>


> ---
>  xen/arch/riscv/aplic.c           |  3 ++-
>  xen/include/asm-generic/device.h | 18 ++----------------
>  2 files changed, 4 insertions(+), 17 deletions(-)
> 
> diff --git a/xen/arch/riscv/aplic.c b/xen/arch/riscv/aplic.c
> index caba8f8993..90bf222eeb 100644
> --- a/xen/arch/riscv/aplic.c
> +++ b/xen/arch/riscv/aplic.c
> @@ -9,12 +9,13 @@
>   * Copyright (c) 2024-2025 Vates
>   */
>  
> +#include <xen/device_tree.h>
>  #include <xen/errno.h>
>  #include <xen/init.h>
> +#include <xen/lib.h>
>  #include <xen/sections.h>
>  #include <xen/types.h>
>  
> -#include <asm/device.h>
>  #include <asm/intc.h>
>  
>  static struct intc_info __ro_after_init aplic_info = {
> diff --git a/xen/include/asm-generic/device.h 
> b/xen/include/asm-generic/device.h
> index 1acd1ba1d8..d485fb97dc 100644
> --- a/xen/include/asm-generic/device.h
> +++ b/xen/include/asm-generic/device.h
> @@ -6,9 +6,7 @@
>  
>  enum device_type
>  {
> -#ifdef CONFIG_HAS_DEVICE_TREE
>      DEV_DT,
> -#endif
>      DEV_PCI
>  };
>  
> @@ -23,23 +21,15 @@ enum device_class
>  };
>  
>  /* struct device - The basic device structure */
> -struct device
> +typedef struct device
>  {
>      enum device_type type;
> -#ifdef CONFIG_HAS_DEVICE_TREE
>      struct dt_device_node *of_node; /* Used by drivers imported from Linux */
> -#endif
>  #ifdef CONFIG_HAS_PASSTHROUGH
>      void *iommu; /* IOMMU private data */;
>      struct iommu_fwspec *iommu_fwspec; /* per-device IOMMU instance data */
>  #endif
> -};
> -
> -typedef struct device device_t;
> -
> -#ifdef CONFIG_HAS_DEVICE_TREE
> -
> -#include <xen/device_tree.h>
> +} device_t;
>  
>  #define dev_is_dt(dev)  ((dev)->type == DEV_DT)
>  
> @@ -87,10 +77,6 @@ struct device_desc {
>      int (*init)(struct dt_device_node *dev, const void *data);
>  };
>  
> -#else /* !CONFIG_HAS_DEVICE_TREE */
> -#define dev_is_dt(dev) ((void)(dev), false)
> -#endif /* CONFIG_HAS_DEVICE_TREE */
> -
>  #define dev_is_pci(dev) ((dev)->type == DEV_PCI)
>  
>  #ifdef CONFIG_ACPI
> -- 
> 2.43.0
> 



 


Rackspace

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