[PATCH] drm/prime: drop reference on imported dma-buf come from gem

김승우 sw0312.kim at samsung.com
Mon Dec 17 22:59:07 PST 2012


Hi Dave,

On 2012년 12월 18일 15:30, Dave Airlie wrote:
> On Thu, Sep 27, 2012 at 4:30 PM, Seung-Woo Kim <sw0312.kim at samsung.com> wrote:
>> Increasing ref counts of both dma-buf and gem for imported dma-buf come from gem
>> makes memory leak. release function of dma-buf cannot be called because f_count
>> of dma-buf increased by importing gem and gem ref count cannot be decrease
>> because of exported dma-buf.
>>
>> So I add dma_buf_put() for imported gem come from its own gem into each drivers
>> having prime_import and prime_export capabilities. With this, only gem ref
>> count is increased if importing gem exported from gem of same driver.
> 
> Okay its taken me a while to circle around and get back to this, but
> yes I admit this is needed, but I hate implementing it like this
> 
> But I think I'll push it and work out a cleaner solution, I should
> also go back and look at the older patches.

I want to also report some strange thing in dma-buf prime export.

In drm_prime_handle_to_fd_ioctl(), flags is cleared to only support
DRM_CLOEXEC but in gem_prime_export() callbacks of each driver, it uses
0600 as flags for dma_buf_export() like following.

return dma_buf_export(obj, &i915_dmabuf_ops, obj->base.size, 0600);

Best Regards,
- Seung-Woo Kim

> 
> Dave.
> 

-- 
Seung-Woo Kim
Samsung Software R&D Center
--



More information about the dri-devel mailing list