drm/udl: Get rid of dev->struct_mutex usage
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 27 Mar 2018 08:23:54 +0000 (10:23 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 28 Mar 2018 15:07:36 +0000 (17:07 +0200)
commitae358dacd217370cc362f1674712c4e9246ace8d
tree049bc8fbf62f7ef091087ee0e5d9d017ebbfc116
parentfcb1e57f79c0ecf4c85fecd2294a469367cbddd0
drm/udl: Get rid of dev->struct_mutex usage

It's only used to protect our page list, and only when we know we have
a full reference. This means none of these code paths can ever race
with the final unref, and hence we do not need dev->struct_mutex
serialization and can simply switch to our own locking.

For more context the only magic the locked gem_free_object provides is
that it prevents concurrent final unref (and destruction) of gem
objects while anyone is holding dev->struct_mutex. This was used by
i915 (and other drivers) to implement eviction handling with less
headaches.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Dave Airlie <airlied@redhat.com>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180327082356.24516-3-daniel.vetter@ffwll.ch
drivers/gpu/drm/udl/udl_dmabuf.c
drivers/gpu/drm/udl/udl_drv.c
drivers/gpu/drm/udl/udl_drv.h
drivers/gpu/drm/udl/udl_gem.c
drivers/gpu/drm/udl/udl_main.c