]> git.baikalelectronics.ru Git - kernel.git/commit
drm: Fixup racy refcounting in plane_force_disable
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Fri, 27 Feb 2015 11:58:13 +0000 (12:58 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 10 Mar 2015 08:59:33 +0000 (09:59 +0100)
commit3a14f135a7042d7a9cc046008839bffa28e0e866
tree2a60a6183417a61bf243b72e18a77721fb35f7e3
parentee6457b2de59feb8098cfd5e6d44de3d334e6589
drm: Fixup racy refcounting in plane_force_disable

Originally it was impossible to be dropping the last refcount in this
function since there was always one around still from the idr. But in

commit 19d6a8a01df290930e52e372ae1c1d8eac653782
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Aug 6 09:10:18 2014 +0200

    drm: Don't grab an fb reference for the idr

we've switched to weak references, broke that assumption but forgot to
fix it up.

Since we still force-disable planes it's only possible to hit this
when racing multiple rmfb with fbdev restoring or similar evil things.
As long as userspace is nice it's impossible to hit the BUG_ON.

But the BUG_ON would most likely be hit from fbdev code, which usually
invovles the console_lock besides all modeset locks. So very likely
we'd never get the bug reports if this was hit in the wild, hence
better be safe than sorry and backport.

Spotted by Matt Roper while reviewing other patches.

Cc: stable@vger.kernel.org
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
drivers/gpu/drm/drm_crtc.c