aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_mode_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_mode_config.c')
-rw-r--r--drivers/gpu/drm/drm_mode_config.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_mode_config.c b/drivers/gpu/drm/drm_mode_config.c
index cc78b3d9e5e4..256de7313612 100644
--- a/drivers/gpu/drm/drm_mode_config.c
+++ b/drivers/gpu/drm/drm_mode_config.c
@@ -382,6 +382,9 @@ void drm_mode_config_init(struct drm_device *dev)
382 ida_init(&dev->mode_config.connector_ida); 382 ida_init(&dev->mode_config.connector_ida);
383 spin_lock_init(&dev->mode_config.connector_list_lock); 383 spin_lock_init(&dev->mode_config.connector_list_lock);
384 384
385 init_llist_head(&dev->mode_config.connector_free_list);
386 INIT_WORK(&dev->mode_config.connector_free_work, drm_connector_free_work_fn);
387
385 drm_mode_create_standard_properties(dev); 388 drm_mode_create_standard_properties(dev);
386 389
387 /* Just to be sure */ 390 /* Just to be sure */
@@ -432,7 +435,7 @@ void drm_mode_config_cleanup(struct drm_device *dev)
432 } 435 }
433 drm_connector_list_iter_end(&conn_iter); 436 drm_connector_list_iter_end(&conn_iter);
434 /* connector_iter drops references in a work item. */ 437 /* connector_iter drops references in a work item. */
435 flush_scheduled_work(); 438 flush_work(&dev->mode_config.connector_free_work);
436 if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) { 439 if (WARN_ON(!list_empty(&dev->mode_config.connector_list))) {
437 drm_connector_list_iter_begin(dev, &conn_iter); 440 drm_connector_list_iter_begin(dev, &conn_iter);
438 drm_for_each_connector_iter(connector, &conn_iter) 441 drm_for_each_connector_iter(connector, &conn_iter)