This fix addresses a refcount bug where the reference count was not properly decremented due to the mmput function not being called when mmu_notifier_register fails.
Signed-off-by: Siddharth Chintamaneni sidchintamaneni@gmail.com --- drivers/iommu/amd/iommu_v2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c index 57c2fb1146e2..bce21e266d64 100644 --- a/drivers/iommu/amd/iommu_v2.c +++ b/drivers/iommu/amd/iommu_v2.c @@ -645,7 +645,7 @@ int amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid,
ret = mmu_notifier_register(&pasid_state->mn, mm); if (ret) - goto out_free; + goto out_mmput;
ret = set_pasid_state(dev_state, pasid_state, pasid); if (ret) @@ -673,6 +673,8 @@ int amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid,
out_unregister: mmu_notifier_unregister(&pasid_state->mn, mm); + +out_mmput: mmput(mm);
out_free:
On Thu, Mar 06, 2025 at 05:18:22AM +0000, Siddharth Chintamaneni wrote:
This fix addresses a refcount bug where the reference count was not properly decremented due to the mmput function not being called when mmu_notifier_register fails.
Signed-off-by: Siddharth Chintamaneni sidchintamaneni@gmail.com
drivers/iommu/amd/iommu_v2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c index 57c2fb1146e2..bce21e266d64 100644 --- a/drivers/iommu/amd/iommu_v2.c +++ b/drivers/iommu/amd/iommu_v2.c @@ -645,7 +645,7 @@ int amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid, ret = mmu_notifier_register(&pasid_state->mn, mm); if (ret)
goto out_free;
goto out_mmput;
ret = set_pasid_state(dev_state, pasid_state, pasid); if (ret) @@ -673,6 +673,8 @@ int amd_iommu_bind_pasid(struct pci_dev *pdev, u32 pasid, out_unregister: mmu_notifier_unregister(&pasid_state->mn, mm);
+out_mmput: mmput(mm); out_free: -- 2.43.0
<formletter>
This is not the correct way to submit patches for inclusion in the stable kernel tree. Please read: https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html for how to do this properly.
</formletter>
[ Sasha's backport helper bot ]
Hi,
Summary of potential issues: ⚠️ Could not find matching upstream commit
No upstream commit was identified. Using temporary commit for testing.
Results of testing on various branches:
| Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-6.6.y | Success | Success |
linux-stable-mirror@lists.linaro.org