summaryrefslogtreecommitdiff
path: root/src/dev/arm/gic_v3_cpu_interface.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/arm/gic_v3_cpu_interface.cc')
-rw-r--r--src/dev/arm/gic_v3_cpu_interface.cc9
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();
}