Commit 205cf6e7 authored by Andre Przywara's avatar Andre Przywara
Browse files

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: default avatarAndre Przywara <andre.przywara@arm.com>
parent 9d6d800d
......@@ -433,8 +433,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];
......@@ -556,8 +555,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];
......
......@@ -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 */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment