[PATCH rc v2] iommu/arm-smmu-v3: Do not use GFP_KERNEL under as spinlock

Michael Shavit mshavit at google.com
Mon Feb 19 00:32:40 PST 2024


On Sat, Feb 17, 2024 at 9:24 PM Jason Gunthorpe <jgg at nvidia.com> wrote:
>
> On Sat, Feb 17, 2024 at 08:25:36PM +0800, Michael Shavit wrote:
>
> > Calling arm_smmu_write_ctx_desc requires the CD which we get from the
> > mmu_notifiers list...which makes it a bit more complicated than
> > that.
>
> @@ -404,9 +384,15 @@ static int __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm)
>                 goto err_free_bond;
>         }
>
> +       ret = arm_smmu_write_ctx_desc(master, pasid, bond->smmu_mn->cd);
> +       if (ret)
> +               goto err_put_notifier;
> +
>
Oh hey that's not much more complicated :) . I'm guessing that'll be a
call to arm_smmu_mmu_notifier_put() rather than a goto on the error
path?
Speaking of... the arm_smmu_update_ctx_desc_devices call in
arm_smmu_mmu_notifier_put might be tricky as well if it's encountered
on the error path before all devices (in theoretical non-pci case) had
a chance to previously call arm_smmu_write_ctx_desc.



More information about the linux-arm-kernel mailing list