dev-arm: Reset HPPI when clearing an LPI
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 4 Sep 2019 14:44:33 +0000 (15:44 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 9 Sep 2019 08:48:30 +0000 (08:48 +0000)
Change-Id: I2a69e6cef69aa48d7c265d59915b859e5eac2bcc
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20638
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/dev/arm/gic_v3_redistributor.cc

index 8b6233c2204edd91004d3dcbe63c22f0bd02a43d..11a1f9d3e1da807e234b2eb914471be28a1a9c8f 100644 (file)
@@ -928,6 +928,9 @@ Gicv3Redistributor::setClrLPI(uint64_t data, bool set)
         }
 
         lpi_pending_entry &= ~(1 << (lpi_pending_entry_bit_position));
+
+        // Remove the pending state from the cpu interface
+        cpuInterface->resetHppi(lpi_id);
     }
 
     writeEntryLPI(lpi_id, lpi_pending_entry);