|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2 2/3] xen: arm: propagate gic's #interrupt-cells property to dom0.
This is similar to 816f5bb1f074 "xen: arm: propagate gic's
should propagate (rather than invent our own value) since this value
is used to size fields within other properties within the tree.
I'm not sure why I didn't do this as part of 816f5bb1f074. I think
probably just because #interrupt-cells must always be 3 for a GIC
whereas #address-cells can legitimately differ. Regardless, I think we
might as well do this in common code.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
xen/arch/arm/domain_build.c | 18 +++++++++++++-----
xen/arch/arm/gic-hip04.c | 4 ----
xen/arch/arm/gic-v2.c | 4 ----
xen/arch/arm/gic-v3.c | 4 ----
4 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index ab4ad65..2a2fc2b 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -784,8 +784,8 @@ static int make_gic_node(const struct domain *d, void *fdt,
{
const struct dt_device_node *gic = dt_interrupt_controller;
int res = 0;
- const void *addrcells;
- u32 addrcells_len;
+ const void *cells;
+ u32 cells_len;
/*
* Xen currently supports only a single GIC. Discard any secondary
@@ -815,10 +815,18 @@ static int make_gic_node(const struct domain *d, void
*fdt,
return res;
}
- addrcells = dt_get_property(gic, "#address-cells", &addrcells_len);
- if ( addrcells )
+ cells = dt_get_property(gic, "#address-cells", &cells_len);
+ if ( cells )
{
- res = fdt_property(fdt, "#address-cells", addrcells, addrcells_len);
+ res = fdt_property(fdt, "#address-cells", cells, cells_len);
+ if ( res )
+ return res;
+ }
+
+ cells = dt_get_property(gic, "#interrupt-cells", &cells_len);
+ if ( cells )
+ {
+ res = fdt_property(fdt, "#interrupt-cells", cells, cells_len);
if ( res )
return res;
}
diff --git a/xen/arch/arm/gic-hip04.c b/xen/arch/arm/gic-hip04.c
index 073ad33..42af10b 100644
--- a/xen/arch/arm/gic-hip04.c
+++ b/xen/arch/arm/gic-hip04.c
@@ -636,10 +636,6 @@ static int hip04gic_make_dt_node(const struct domain *d,
if ( res )
return res;
- res = fdt_property_cell(fdt, "#interrupt-cells", 3);
- if ( res )
- return res;
-
res = fdt_property(fdt, "interrupt-controller", NULL, 0);
if ( res )
diff --git a/xen/arch/arm/gic-v2.c b/xen/arch/arm/gic-v2.c
index 20cdbc9..8d1a07d 100644
--- a/xen/arch/arm/gic-v2.c
+++ b/xen/arch/arm/gic-v2.c
@@ -622,10 +622,6 @@ static int gicv2_make_dt_node(const struct domain *d,
if ( res )
return res;
- res = fdt_property_cell(fdt, "#interrupt-cells", 3);
- if ( res )
- return res;
-
res = fdt_property(fdt, "interrupt-controller", NULL, 0);
if ( res )
diff --git a/xen/arch/arm/gic-v3.c b/xen/arch/arm/gic-v3.c
index ab80670..528500a 100644
--- a/xen/arch/arm/gic-v3.c
+++ b/xen/arch/arm/gic-v3.c
@@ -1102,10 +1102,6 @@ static int gicv3_make_dt_node(const struct domain *d,
if ( res )
return res;
- res = fdt_property_cell(fdt, "#interrupt-cells", 3);
- if ( res )
- return res;
-
res = fdt_property(fdt, "interrupt-controller", NULL, 0);
if ( res )
return res;
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |