]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iommu/amd: Use atomic64_inc_return() in iommu.c
authorUros Bizjak <ubizjak@gmail.com>
Mon, 7 Oct 2024 08:43:31 +0000 (10:43 +0200)
committerJoerg Roedel <jroedel@suse.de>
Tue, 15 Oct 2024 08:22:37 +0000 (10:22 +0200)
Use atomic64_inc_return(&ref) instead of atomic64_add_return(1, &ref)
to use optimized implementation and ease register pressure around
the primitive for targets that implement optimized variant.

Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Cc: Joerg Roedel <joro@8bytes.org>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Will Deacon <will@kernel.org>
Cc: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20241007084356.47799-1-ubizjak@gmail.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/iommu.c

index 8364cd6fa47d016311c7d79ed218adfea90fcbb6..074effba7fbebea1a26759f6768c8f0a93d50ed7 100644 (file)
@@ -1230,7 +1230,7 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
        if (!iommu->need_sync)
                return 0;
 
-       data = atomic64_add_return(1, &iommu->cmd_sem_val);
+       data = atomic64_inc_return(&iommu->cmd_sem_val);
        build_completion_wait(&cmd, iommu, data);
 
        raw_spin_lock_irqsave(&iommu->lock, flags);
@@ -2890,7 +2890,7 @@ static void iommu_flush_irt_and_complete(struct amd_iommu *iommu, u16 devid)
                return;
 
        build_inv_irt(&cmd, devid);
-       data = atomic64_add_return(1, &iommu->cmd_sem_val);
+       data = atomic64_inc_return(&iommu->cmd_sem_val);
        build_completion_wait(&cmd2, iommu, data);
 
        raw_spin_lock_irqsave(&iommu->lock, flags);