drm: Handle ->disable_plane failures correctly
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 23 Apr 2014 08:24:11 +0000 (10:24 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 23 Apr 2014 18:07:00 +0000 (20:07 +0200)
commit731cce487ab0485c6607e44a0759d92bef1c144e
treeedf6a9e353508a976e13d35df175f307f50ed014
parent0fe27f063fcef920a0be93ad5e89d9c8ef5c5858
drm: Handle ->disable_plane failures correctly

The ->disable_plane hook always had a return value, but only since the
introduction of primary planes was there any implementation that
actually failed.

So handle such failures correctly.

Note that drm_plane_force_disable is special: In the modeset cleanup
case we first disable all crtc, so primary planes should all be freed
already. And in the fb helper we only reset non-primary planes. Still
better be paranoid and add an early return.

I don't see how this could happen, but it might fix the fb refcount
underrun Thierry is seeing. Matt Roper spotted this issue.

Cc: Thierry Reding <treding@nvidia.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_crtc.c