diff options
Diffstat (limited to 'src/dev/arm/gic_v3_cpu_interface.cc')
-rw-r--r-- | src/dev/arm/gic_v3_cpu_interface.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/dev/arm/gic_v3_cpu_interface.cc b/src/dev/arm/gic_v3_cpu_interface.cc index 73257a718..67f5a39d3 100644 --- a/src/dev/arm/gic_v3_cpu_interface.cc +++ b/src/dev/arm/gic_v3_cpu_interface.cc @@ -70,6 +70,13 @@ Gicv3CPUInterface::init() } void +Gicv3CPUInterface::resetHppi(uint32_t intid) +{ + if (intid == hppi.intid) + hppi.prio = 0xff; +} + +void Gicv3CPUInterface::setThreadContext(ThreadContext *tc) { maintenanceInterrupt = gic->params()->maint_int->get(tc); @@ -1843,7 +1850,7 @@ Gicv3CPUInterface::activateIRQ(uint32_t int_id, Gicv3::GroupId group) // By setting the priority to 0xff we are effectively // making the int_id not pending anymore at the cpu // interface. - hppi.prio = 0xff; + resetHppi(int_id); updateDistributor(); } |