drm/amdgpu: take the mode_config mutex when handling hpds

Since we may modify display state.

Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Alex Deucher 2015-05-15 11:52:18 -04:00
parent d94aed5a6c
commit 9e14c65c57

View File

@ -59,10 +59,12 @@ static void amdgpu_hotplug_work_func(struct work_struct *work)
struct drm_mode_config *mode_config = &dev->mode_config; struct drm_mode_config *mode_config = &dev->mode_config;
struct drm_connector *connector; struct drm_connector *connector;
mutex_lock(&mode_config->mutex);
if (mode_config->num_connector) { if (mode_config->num_connector) {
list_for_each_entry(connector, &mode_config->connector_list, head) list_for_each_entry(connector, &mode_config->connector_list, head)
amdgpu_connector_hotplug(connector); amdgpu_connector_hotplug(connector);
} }
mutex_unlock(&mode_config->mutex);
/* Just fire off a uevent and let userspace tell us what to do */ /* Just fire off a uevent and let userspace tell us what to do */
drm_helper_hpd_irq_event(dev); drm_helper_hpd_irq_event(dev);
} }