summaryrefslogtreecommitdiff
path: root/xen
diff options
context:
space:
mode:
authorJulien Grall <jgrall@amazon.com>2020-11-19 17:08:27 +0000
committerStefano Stabellini <sstabellini@kernel.org>2020-11-19 16:23:08 -0800
commit1965c171a4a791bbed1cf84c097177117bb02dac (patch)
tree84b410d9c43f39dac30799682411d5eeb4d96566 /xen
parent415f904254b7343a90db895134980cbb7f7f0479 (diff)
xen/arm: gic: acpi: Guard helpers to build the MADT with CONFIG_ACPI
gic_make_hwdom_madt() and gic_get_hwdom_madt_size() are ACPI specific. While they build fine today, this will change in a follow-up patch. Rather than trying to fix the build on ACPI, it is best to avoid compiling the helpers and the associated callbacks when CONFIG_ACPI=n. Signed-off-by: Julien Grall <jgrall@amazon.com> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
Diffstat (limited to 'xen')
-rw-r--r--xen/arch/arm/gic-v2.c8
-rw-r--r--xen/arch/arm/gic-v3.c11
-rw-r--r--xen/arch/arm/gic.c2
-rw-r--r--xen/include/asm-arm/gic.h10
4 files changed, 15 insertions, 16 deletions
diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 0f747538db..581ea5ba6b 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -1114,12 +1114,12 @@ static int gicv2_iomem_deny_access(const struct domain *d)
return iomem_deny_access(d, mfn, mfn + nr);
}
+#ifdef CONFIG_ACPI
static unsigned long gicv2_get_hwdom_extra_madt_size(const struct domain *d)
{
return 0;
}
-#ifdef CONFIG_ACPI
static int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
{
struct acpi_subtable_header *header;
@@ -1248,10 +1248,6 @@ static void __init gicv2_acpi_init(void)
}
#else
static void __init gicv2_acpi_init(void) { }
-static int gicv2_make_hwdom_madt(const struct domain *d, u32 offset)
-{
- return 0;
-}
#endif
static int __init gicv2_init(void)
@@ -1357,8 +1353,10 @@ const static struct gic_hw_operations gicv2_ops = {
.read_apr = gicv2_read_apr,
.read_pending_state = gicv2_read_pending_state,
.make_hwdom_dt_node = gicv2_make_hwdom_dt_node,
+#ifdef CONFIG_ACPI
.make_hwdom_madt = gicv2_make_hwdom_madt,
.get_hwdom_extra_madt_size = gicv2_get_hwdom_extra_madt_size,
+#endif
.map_hwdom_extra_mappings = gicv2_map_hwdown_extra_mappings,
.iomem_deny_access = gicv2_iomem_deny_access,
.do_LPI = gicv2_do_LPI,
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index 0f6cbf6224..2a344393a0 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1735,15 +1735,6 @@ static void __init gicv3_acpi_init(void)
}
#else
static void __init gicv3_acpi_init(void) { }
-static int gicv3_make_hwdom_madt(const struct domain *d, u32 offset)
-{
- return 0;
-}
-
-static unsigned long gicv3_get_hwdom_extra_madt_size(const struct domain *d)
-{
- return 0;
-}
#endif
static bool gic_dist_supports_lpis(void)
@@ -1858,8 +1849,10 @@ static const struct gic_hw_operations gicv3_ops = {
.read_pending_state = gicv3_read_pending_state,
.secondary_init = gicv3_secondary_cpu_init,
.make_hwdom_dt_node = gicv3_make_hwdom_dt_node,
+#ifdef CONFIG_ACPI
.make_hwdom_madt = gicv3_make_hwdom_madt,
.get_hwdom_extra_madt_size = gicv3_get_hwdom_extra_madt_size,
+#endif
.iomem_deny_access = gicv3_iomem_deny_access,
.do_LPI = gicv3_do_LPI,
};
diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
index d623c57cb9..fe60619e99 100644
--- a/xen/arch/arm/gic.c
+++ b/xen/arch/arm/gic.c
@@ -443,6 +443,7 @@ int gic_make_hwdom_dt_node(const struct domain *d,
return gic_hw_ops->make_hwdom_dt_node(d, gic, fdt);
}
+#ifdef CONFIG_ACPI
int gic_make_hwdom_madt(const struct domain *d, u32 offset)
{
return gic_hw_ops->make_hwdom_madt(d, offset);
@@ -459,6 +460,7 @@ unsigned long gic_get_hwdom_madt_size(const struct domain *d)
return madt_size;
}
+#endif
int gic_iomem_deny_access(const struct domain *d)
{
diff --git a/xen/include/asm-arm/gic.h b/xen/include/asm-arm/gic.h
index ba870523bb..ad0f7452d0 100644
--- a/xen/include/asm-arm/gic.h
+++ b/xen/include/asm-arm/gic.h
@@ -378,12 +378,14 @@ struct gic_hw_operations {
/* Create GIC node for the hardware domain */
int (*make_hwdom_dt_node)(const struct domain *d,
const struct dt_device_node *gic, void *fdt);
+#ifdef CONFIG_ACPI
/* Create MADT table for the hardware domain */
int (*make_hwdom_madt)(const struct domain *d, u32 offset);
- /* Map extra GIC MMIO, irqs and other hw stuffs to the hardware domain. */
- int (*map_hwdom_extra_mappings)(struct domain *d);
/* Query the size of hardware domain madt table */
unsigned long (*get_hwdom_extra_madt_size)(const struct domain *d);
+#endif
+ /* Map extra GIC MMIO, irqs and other hw stuffs to the hardware domain. */
+ int (*map_hwdom_extra_mappings)(struct domain *d);
/* Deny access to GIC regions */
int (*iomem_deny_access)(const struct domain *d);
/* Handle LPIs, which require special handling */
@@ -435,8 +437,12 @@ void register_gic_ops(const struct gic_hw_operations *ops);
int gic_make_hwdom_dt_node(const struct domain *d,
const struct dt_device_node *gic,
void *fdt);
+
+#ifdef CONFIG_ACPI
int gic_make_hwdom_madt(const struct domain *d, u32 offset);
unsigned long gic_get_hwdom_madt_size(const struct domain *d);
+#endif
+
int gic_map_hwdom_extra_mappings(struct domain *d);
int gic_iomem_deny_access(const struct domain *d);