On 10/16/26 22:26, Karl Mehltretter wrote:
> On Tue, Feb 17, 2026 at 08:11:34PM -0400, Jason Gunthorpe wrote:
>> +    match_args.attach = attach;
>> +    if (dmabuf->ops->match_mapping) {
>> +            ret = dmabuf->ops->match_mapping(&match_args);
>> +    }
>> +
>>      attach->dmabuf = dmabuf;
>>      attach->importer_ops = importer_ops;
>>      attach->importer_priv = importer_priv;
> 
> I may misunderstand the intended contract. match_mapping() runs while the
> attachment is still zeroed and without dmabuf->resv held.
> 
> Patch 11's amdgpu callback needs importer_ops and importer_priv, so its XGMI
> match cannot work here. Patch 12's VFIO callback asserts dmabuf->resv and
> reads priv->vdev, which cleanup changes under that lock.
> 
> Should the core initialize the attachment and hold dmabuf->resv for
> match_mapping(), or should callbacks avoid attachment and lock-protected
> state?

Right. This completely misplaced.

The matching can't be done at attachment time, but rather needs to be done 
before creating a mapping while holding the resv lock so that the matching 
decision can't change.

Regards,
Christian.

> 
> Thanks,
> Karl

Reply via email to