diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/arm/gic/arm_gic.c | 2 | ||||
-rw-r--r-- | drivers/arm/tzc400/tzc400.c | 9 |
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/arm/gic/arm_gic.c b/drivers/arm/gic/arm_gic.c index 636348ba..86aaa9a1 100644 --- a/drivers/arm/gic/arm_gic.c +++ b/drivers/arm/gic/arm_gic.c @@ -322,7 +322,7 @@ uint32_t arm_gic_interrupt_type_to_line(uint32_t type, type == INTR_TYPE_EL3 || type == INTR_TYPE_NS); - assert(security_state == NON_SECURE || security_state == SECURE); + assert(sec_state_is_valid(security_state)); /* * We ignore the security state parameter under the assumption that diff --git a/drivers/arm/tzc400/tzc400.c b/drivers/arm/tzc400/tzc400.c index c1716db4..715ea6c0 100644 --- a/drivers/arm/tzc400/tzc400.c +++ b/drivers/arm/tzc400/tzc400.c @@ -103,7 +103,7 @@ static uint32_t tzc_get_gate_keeper(uint64_t base, uint8_t filter) tmp = (tzc_read_gate_keeper(base) >> GATE_KEEPER_OS_SHIFT) & GATE_KEEPER_OS_MASK; - return tmp >> filter; + return (tmp >> filter) & GATE_KEEPER_FILTER_MASK; } /* This function is not MP safe. */ @@ -241,6 +241,13 @@ void tzc_enable_filters(const tzc_instance_t *controller) for (filter = 0; filter < controller->num_filters; filter++) { state = tzc_get_gate_keeper(controller->base, filter); if (state) { + /* The TZC filter is already configured. Changing the + * programmer's view in an active system can cause + * unpredictable behavior therefore panic for now rather + * than try to determine whether this is safe in this + * instance. See: + * http://infocenter.arm.com/help/index.jsp?\ + * topic=/com.arm.doc.ddi0504c/CJHHECBF.html */ ERROR("TZC : Filter %d Gatekeeper already enabled.\n", filter); panic(); |