Hi Dmitry, > > On 8/13/24 06:49, Vivek Kasireddy wrote: > > +long virtgpu_dma_buf_import_sgt(struct virtio_gpu_mem_entry **ents, > > + unsigned int *nents, > > + struct virtio_gpu_object *bo, > > + struct dma_buf_attachment *attach) > > +{ > > + struct scatterlist *sl; > > + struct sg_table *sgt; > > + long i, ret; > > + > > + dma_resv_assert_held(attach->dmabuf->resv); > > + > > + ret = dma_resv_wait_timeout(attach->dmabuf->resv, > > + DMA_RESV_USAGE_KERNEL, > > + false, MAX_SCHEDULE_TIMEOUT); > > Why this wait is needed? The intention was to wait for any pending operations on the backing object to finish and let it become idle before mapping and accessing the underlying memory. But I suspect this wait may not be necessary given that we would have already called dma_buf_pin() at this point, which would have had the desired effect? Thanks, Vivek > > -- > Best regards, > Dmitry