summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2017-11-09 12:08:00 -0600
committerAnson Huang <Anson.Huang@nxp.com>2018-07-05 10:53:21 +0800
commit4457f77bbcf12baf95abd39ba997595f578ace8e (patch)
treeb62a057d6ae5fe20e0f7eaad5bca6780b6b22eaf /drivers
parentec182180f98539ea0fdbe427b60c9d0276524aea (diff)
gicv3: Fix support for systems without secure interrupts
Accessing the interrupt_props array only happens inside a loop over interrupt_props_num, so the GICv3 driver can cope with no secure interrupts. This allows us to relax the asserts that insists on a non-NULL interrupt_props pointer and at least one secure interrupt. This enables GICv3 platforms which have no need for a secure interrupt. This only covers the non-deprecated code paths. Change-Id: I49db291906512f56af065772f69acb281dfbdcfb Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/arm/gic/v3/gicv3_helpers.c6
-rw-r--r--drivers/arm/gic/v3/gicv3_main.c4
2 files changed, 4 insertions, 6 deletions
diff --git a/drivers/arm/gic/v3/gicv3_helpers.c b/drivers/arm/gic/v3/gicv3_helpers.c
index dee63f18..9fe6f17e 100644
--- a/drivers/arm/gic/v3/gicv3_helpers.c
+++ b/drivers/arm/gic/v3/gicv3_helpers.c
@@ -427,8 +427,7 @@ unsigned int gicv3_secure_spis_configure_props(uintptr_t gicd_base,
unsigned int ctlr_enable = 0;
/* Make sure there's a valid property array */
- assert(interrupt_props != NULL);
- assert(interrupt_props_num > 0);
+ assert(interrupt_props_num > 0 ? interrupt_props != NULL : 1);
for (i = 0; i < interrupt_props_num; i++) {
current_prop = &interrupt_props[i];
@@ -550,8 +549,7 @@ unsigned int gicv3_secure_ppi_sgi_configure_props(uintptr_t gicr_base,
unsigned int ctlr_enable = 0;
/* Make sure there's a valid property array */
- assert(interrupt_props != NULL);
- assert(interrupt_props_num > 0);
+ assert(interrupt_props_num > 0 ? interrupt_props != NULL : 1);
for (i = 0; i < interrupt_props_num; i++) {
current_prop = &interrupt_props[i];
diff --git a/drivers/arm/gic/v3/gicv3_main.c b/drivers/arm/gic/v3/gicv3_main.c
index f4a3ef81..91a5a932 100644
--- a/drivers/arm/gic/v3/gicv3_main.c
+++ b/drivers/arm/gic/v3/gicv3_main.c
@@ -103,8 +103,8 @@ void gicv3_driver_init(const gicv3_driver_data_t *plat_driver_data)
WARN("Please migrate to using interrupt_prop_t arrays\n");
}
#else
- assert(plat_driver_data->interrupt_props != NULL);
- assert(plat_driver_data->interrupt_props_num > 0);
+ assert(plat_driver_data->interrupt_props_num > 0 ?
+ plat_driver_data->interrupt_props != NULL : 1);
#endif
/* Check for system register support */