drm: Try to acquire modeset lock on panic or sysrq
authorThierry Reding <treding@nvidia.com>
Tue, 29 Apr 2014 09:44:32 +0000 (11:44 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 29 Apr 2014 10:24:12 +0000 (12:24 +0200)
commitb77f0765fdfb3a115e40effd890acb4674dc0989
tree01fec81e4a91610342c2f7774ecab002f7526b82
parent1dcc0ceba05797dc6a696022509df6a180a78384
drm: Try to acquire modeset lock on panic or sysrq

Commit 62ff94a54921 "drm/crtc-helper: remove LOCKING from kerneldoc"
causes drm_helper_crtc_in_use() and drm_helper_encoder_in_use() to
complain loudly during a kernel panic or sysrq processing. This is
caused by nobody acquiring the modeset lock in these code paths.

This patch fixes this by trying to acquire the modeset lock for each
FB helper that's forced to kernel mode. If the lock can't be acquired,
it's likely that somebody else is performing a modeset. However, doing
another modeset concurrently might make things even worse, so the safe
option is to simply bail out in that case.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_fb_helper.c