OSDN Git Service

iommu/arm-smmu-v3: sync the OVACKFLG to PRIQ consumer register
authorMiao Zhong <zhongmiao@hisilicon.com>
Mon, 23 Jul 2018 12:56:58 +0000 (20:56 +0800)
committerWill Deacon <will.deacon@arm.com>
Thu, 26 Jul 2018 10:34:59 +0000 (11:34 +0100)
When PRI queue occurs overflow, driver should update the OVACKFLG to
the PRIQ consumer register, otherwise subsequent PRI requests will not
be processed.

Cc: Will Deacon <will.deacon@arm.com>
Cc: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Miao Zhong <zhongmiao@hisilicon.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
drivers/iommu/arm-smmu-v3.c

index 1d64710..deacc15 100644 (file)
@@ -1301,6 +1301,7 @@ static irqreturn_t arm_smmu_priq_thread(int irq, void *dev)
 
        /* Sync our overflow flag, as we believe we're up to speed */
        q->cons = Q_OVF(q, q->prod) | Q_WRP(q, q->cons) | Q_IDX(q, q->cons);
+       writel(q->cons, q->cons_reg);
        return IRQ_HANDLED;
 }