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: