Deadlock in Xorg after commit "drm: tweak getconnector locking"

Marc Finet m.dreadlock at gmail.com
Sun Feb 15 13:35:52 PST 2015


Hello,

After trying linux-next (next-20150130) on my i915-powered laptop, I failed to
get Xorg running (just a white underscore).
I bisected it to commit ccfc08655 "drm: tweak getconnector locking".

Issuing a Sysrq+T showed that Xorg has the following call-trace:
> drm_modeset_lock+0x30/0xf0 [drm]
> intel_get_load_detect_pipe+0x8f/0x480 [i915]
> intel_crt_get_edid+0x63/0x90 [i915]
> intel_crt_detect_ddc+0x51/0xe0 [i915]
> intel_crt_detect_ddc+0x51/0xe0 [i915]
> intel_crt_detect+0x45e/0x8d0 [i915]
> drm_helper_probe_single_connector_modes_merge_bits+0x278/0x410 [drm_kms_helper]
> drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
> drm_mode_getconnector+0x295/0x330 [drm]
> drm_mode_getcrtc+0xd0/0xd0 [drm]
> drm_ioctl+0x1ed/0x560 [drm]
> drm_mode_getcrtc+0xd0/0xd0 [drm]
> drm_getmap+0xc0/0xc0 [drm]

In the mentioned commit, drm_modeset_lock() has been moved (too?) up in
drm_mode_getconnector() hence connector->funcs->fill_modes() 
later calls drm_modeset_lock() too.

Should I provide more info ?

Marc.


More information about the dri-devel mailing list