Messages in this thread Patch in this message | | | From | Tomas Krcka <> | Subject | [PATCH] iommu/arm-smmu-v3: Fix event queue overflow acknowledgment | Date | Wed, 8 Mar 2023 09:20:47 +0000 |
| |
When an overflow occurs in the event queue, the SMMU toggles overflow flag OVFLG in the PROD register. The evtq thread is supposed to acknowledge the overflow flag by toggling flag OVACKFLG in the CONS register, otherwise the overflow condition is still active (OVFLG != OVACKFLG).
Currently the acknowledge register is toggled after clearing the event queue but is never propagated to the hardware. It would be done next time when executing evtq thread.
The SMMU still adds elements to the queue when the overflow condition is active but any subsequent overflow information after clearing the event queue will be lost.
This change keeps the SMMU in sync as it's expected by design.
Signed-off-by: Tomas Krcka <krckatom@amazon.de> Suggested-by: KarimAllah Ahmed <karahmed@amazon.de> --- drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c index f2425b0f0cd6..acc1ff5ff69b 100644 --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -1579,6 +1579,7 @@ static irqreturn_t arm_smmu_evtq_thread(int irq, void *dev) /* Sync our overflow flag, as we believe we're up to speed */ llq->cons = Q_OVF(llq->prod) | Q_WRP(llq, llq->cons) | Q_IDX(llq, llq->cons); + queue_sync_cons_out(q); return IRQ_HANDLED; } -- 2.39.1
Amazon Development Center Germany GmbH Krausenstr. 38 10117 Berlin Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B Sitz: Berlin Ust-ID: DE 289 237 879
| |