diff options
Diffstat (limited to 'drivers/gpu/drm/drm_mode_config.c')
| -rw-r--r-- | drivers/gpu/drm/drm_mode_config.c | 5 |
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) |
