]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iommu/amd: Update event log pointer as soon as processing is complete
authorVasant Hegde <vasant.hegde@amd.com>
Wed, 28 Aug 2024 11:10:22 +0000 (11:10 +0000)
committerJoerg Roedel <jroedel@suse.de>
Wed, 4 Sep 2024 09:34:11 +0000 (11:34 +0200)
Update event buffer head pointer once driver completes processing. So
that IOMMU can write new log without waiting for driver to complete
processing all event logs.

Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Link: https://lore.kernel.org/r/20240828111029.5429-2-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/iommu.c

index 87c5385ce3f28621163bd4ade8dfeebd3937f404..8ada0b227ca1a4c22d6aebe24bd5b56d012609b0 100644 (file)
@@ -825,10 +825,12 @@ static void iommu_poll_events(struct amd_iommu *iommu)
 
        while (head != tail) {
                iommu_print_event(iommu, iommu->evt_buf + head);
+
+               /* Update head pointer of hardware ring-buffer */
                head = (head + EVENT_ENTRY_SIZE) % EVT_BUFFER_SIZE;
+               writel(head, iommu->mmio_base + MMIO_EVT_HEAD_OFFSET);
        }
 
-       writel(head, iommu->mmio_base + MMIO_EVT_HEAD_OFFSET);
 }
 
 #ifdef CONFIG_IRQ_REMAP