UPSTREAM: net: ethernet: arc: Probe emac after set RMII clock
[firefly-linux-kernel-4.4.55.git] / drivers / iommu / intel-svm.c
index 97a818992d6ddcd16d62d29db693b131445cd0b7..d9939fa9b58887567d1fe8a7a94c7e5f1452cdf0 100644 (file)
@@ -524,6 +524,10 @@ static irqreturn_t prq_event_thread(int irq, void *d)
        struct intel_svm *svm = NULL;
        int head, tail, handled = 0;
 
+       /* Clear PPR bit before reading head/tail registers, to
+        * ensure that we get a new interrupt if needed. */
+       writel(DMA_PRS_PPR, iommu->reg + DMAR_PRS_REG);
+
        tail = dmar_readq(iommu->reg + DMAR_PQT_REG) & PRQ_RING_MASK;
        head = dmar_readq(iommu->reg + DMAR_PQH_REG) & PRQ_RING_MASK;
        while (head != tail) {