[PATCHv8 21/26] v4l: vb2-dma-contig: add reference counting for a device from allocator context
Tomasz Stanislawski
t.stanislaws at samsung.com
Thu Sep 27 08:19:05 PDT 2012
Hi Laurent,
On 08/15/2012 10:04 PM, Laurent Pinchart wrote:
> Hi Tomasz,
>
> Thanks for the patch.
>
> On Tuesday 14 August 2012 17:34:51 Tomasz Stanislawski wrote:
>> This patch adds taking reference to the device for MMAP buffers.
>>
>> Such buffers, may be exported using DMABUF mechanism. If the driver that
>> created a queue is unloaded then the queue is released, the device might be
>> released too. However, buffers cannot be released if they are referenced by
>> DMABUF descriptor(s). The device pointer kept in a buffer must be valid for
>> the whole buffer's lifetime. Therefore MMAP buffers should take a reference
>> to the device to avoid risk of dangling pointers.
>
> That patch looks good, but that approach won't scale if we ever need a more
> complex context that can't be copied. We can ignore that for now, but if we
> decide to support "orphan" vb2 buffers, that's an issue we need to be aware of
> as it might come back to bite us in the future.
>
Good news is that vb2-dma-contig knows the structure of the context.
Therefore it will always be able to implement a proper 'copy constructor'.
One could always add reference counting for contexts but I consider it
little over-engineering.
> I assume that this patch requires your dmabuf owner patch to fix the orphan
> buffer case properly.
>
The 'dmabuf owner' patch is not required for this patchset.
It will only protect 'videobuf2-dma-contig' module from being
unloaded while its dmabuf is in use.
Regards,
Tomasz Stanislawski
More information about the dri-devel
mailing list