Re: dma-buf and ->dev refcount fun

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/25/2014 09:01 AM, Daniel Vetter wrote:
> On Tue, Mar 25, 2014 at 4:53 AM, Dave Airlie <airlied@xxxxxxxxx> wrote:
>> So I've got a reproducable oops with udl sharing from i915,
>>
>> start X, connect UDL, randr it into position, rip out udl device, kill X,
>>
>> we get an oops when dma_unmap_sg in i915_gem_unmap_dma_buf gets
>> called, attachment->dev is pointing to a freed structure, now the drm
>> + udl driver points dev->dev at the USB interface device, however when
>> the device is unplugged, the USB interface device disappears in a poof
>> of smoke, and we just keep a fake shell of the drm device around to
>> keep userspace happy.
>>
>> So I'm wondering if should be using a different device to create
>> dma-buf objects or whether dma-buf objects need to be keeping a
>> reference on the interface device,
> Don't do any mapping/attaching then since you never need to do dma
> anyway. And I guess if we ever need to do dma with usb devices for
> real we just need to teach the usb core about dma-bufs, so that the
> *hci can do the attaching and dma-mapping.
>
> On a quick look through udl_gem.c vmap will keep on working since it's
> already forwarded to i915. That leaves mmap - either your userspace
> doesn't need this for prime buffers or you'd need to implement that
> one too. Rob Clark had patches floating around for forwarding mmaping
> through dma-bufs between gem drivers a long time ago, Rob Bradford is
> working on dma-buf mmap support for i915.

Ouch, here we go!

I though the idea was *not* to implement dma-buf mmap() on the major
drivers :( ???

/Thomas
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux