aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/irqchip/irq-gic.c
diff options
context:
space:
mode:
authorJon Hunter <jonathanh@nvidia.com>2016-05-10 11:14:40 -0400
committerMarc Zyngier <marc.zyngier@arm.com>2016-05-11 05:12:42 -0400
commit26acfe7463dc7162e595a8f7bd7ef3e06111e25d (patch)
tree057529e0cccad9423d2d29becb8099baa34c58fe /drivers/irqchip/irq-gic.c
parent992345a58e0cbcd63c26226e3e818b4583c4a34d (diff)
irqchip/gic: Don't initialise chip if mapping IO space fails
If we fail to map the address space for the GIC distributor or CPU interface, then don't attempt to initialise the chip, just WARN and return. Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'drivers/irqchip/irq-gic.c')
-rw-r--r--drivers/irqchip/irq-gic.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
index 5c4da5808b15..612a3584a282 100644
--- a/drivers/irqchip/irq-gic.c
+++ b/drivers/irqchip/irq-gic.c
@@ -1209,10 +1209,14 @@ gic_of_init(struct device_node *node, struct device_node *parent)
1209 return -ENODEV; 1209 return -ENODEV;
1210 1210
1211 dist_base = of_iomap(node, 0); 1211 dist_base = of_iomap(node, 0);
1212 WARN(!dist_base, "unable to map gic dist registers\n"); 1212 if (WARN(!dist_base, "unable to map gic dist registers\n"))
1213 return -ENOMEM;
1213 1214
1214 cpu_base = of_iomap(node, 1); 1215 cpu_base = of_iomap(node, 1);
1215 WARN(!cpu_base, "unable to map gic cpu registers\n"); 1216 if (WARN(!cpu_base, "unable to map gic cpu registers\n")) {
1217 iounmap(dist_base);
1218 return -ENOMEM;
1219 }
1216 1220
1217 /* 1221 /*
1218 * Disable split EOI/Deactivate if either HYP is not available 1222 * Disable split EOI/Deactivate if either HYP is not available