Warnings in DRM code when removing/unbinding a driver

Daniel Vetter daniel at ffwll.ch
Thu Dec 19 10:10:37 UTC 2019


On Thu, Dec 19, 2019 at 11:03 AM John Garry <john.garry at huawei.com> wrote:
>
> On 19/12/2019 09:54, Daniel Vetter wrote:
> > On Wed, Dec 18, 2019 at 7:08 PM John Garry <john.garry at huawei.com> wrote:
> >>
> >> +
> >>
> >> So the v5.4 kernel does not have this issue.
> >>
> >> I have bisected the initial occurrence to:
> >>
> >> commit 37a48adfba6cf6e87df9ba8b75ab85d514ed86d8
> >> Author: Thomas Zimmermann <tzimmermann at suse.de>
> >> Date:   Fri Sep 6 14:20:53 2019 +0200
> >>
> >>       drm/vram: Add kmap ref-counting to GEM VRAM objects
> >>
> >>       The kmap and kunmap operations of GEM VRAM buffers can now be called
> >>       in interleaving pairs. The first call to drm_gem_vram_kmap() maps the
> >>       buffer's memory to kernel address space and the final call to
> >>       drm_gem_vram_kunmap() unmaps the memory. Intermediate calls to these
> >>       functions increment or decrement a reference counter.
> >>
> >> So this either exposes or creates the issue.
> >
> > Yeah that's just shooting the messenger.
>
> OK, so it exposes it.
>
>   Like I said, for most drivers
> > you can pretty much assume that their unload sequence has been broken
> > since forever. It's not often tested, and especially the hotunbind
> > from a device (as opposed to driver unload) stuff wasn't even possible
> > to get right until just recently.
>
> Do you think it's worth trying to fix this for 5.5 and earlier, or just
> switch to the device-managed interface for 5.6 and forget about 5.5 and
> earlier?

I suspect it's going to be quite some trickery to fix this properly
and everywhere, even for just one driver. Lots of drm drivers
unfortunately use anti-patterns with wrong lifetimes (e.g. you can't
use devm_kmalloc for anything that hangs of a drm_device, like
plane/crtc/connector). Except when it's for a real hotunpluggable
device (usb) we've never bothered backporting these fixes. Too much
broken stuff unfortunately.
-Daniel

>
> Thanks,
> John



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the dri-devel mailing list