Re: Warnings in DRM code when removing/unbinding a driver

From: John Garry
Date: Thu Dec 19 2019 - 05:03:38 EST


On 19/12/2019 09:54, Daniel Vetter wrote:
On Wed, Dec 18, 2019 at 7:08 PM John Garry <john.garry@xxxxxxxxxx> wrote:

+

So the v5.4 kernel does not have this issue.

I have bisected the initial occurrence to:

commit 37a48adfba6cf6e87df9ba8b75ab85d514ed86d8
Author: Thomas Zimmermann <tzimmermann@xxxxxxx>
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?

Thanks,
John