aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_stub.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r--drivers/gpu/drm/drm_stub.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index ef878615c49..b9631e3a1ea 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -402,14 +402,14 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
402 if (dev->driver->load) { 402 if (dev->driver->load) {
403 ret = dev->driver->load(dev, ent->driver_data); 403 ret = dev->driver->load(dev, ent->driver_data);
404 if (ret) 404 if (ret)
405 goto err_g3; 405 goto err_g4;
406 } 406 }
407 407
408 /* setup the grouping for the legacy output */ 408 /* setup the grouping for the legacy output */
409 if (drm_core_check_feature(dev, DRIVER_MODESET)) { 409 if (drm_core_check_feature(dev, DRIVER_MODESET)) {
410 ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group); 410 ret = drm_mode_group_init_legacy_group(dev, &dev->primary->mode_group);
411 if (ret) 411 if (ret)
412 goto err_g3; 412 goto err_g4;
413 } 413 }
414 414
415 list_add_tail(&dev->driver_item, &driver->device_list); 415 list_add_tail(&dev->driver_item, &driver->device_list);
@@ -420,8 +420,11 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
420 420
421 return 0; 421 return 0;
422 422
423err_g3: 423err_g4:
424 drm_put_minor(&dev->primary); 424 drm_put_minor(&dev->primary);
425err_g3:
426 if (drm_core_check_feature(dev, DRIVER_MODESET))
427 drm_put_minor(&dev->control);
425err_g2: 428err_g2:
426 pci_disable_device(pdev); 429 pci_disable_device(pdev);
427err_g1: 430err_g1:
@@ -502,11 +505,11 @@ void drm_put_dev(struct drm_device *dev)
502 dev->agp = NULL; 505 dev->agp = NULL;
503 } 506 }
504 507
505 drm_ht_remove(&dev->map_hash);
506 drm_ctxbitmap_cleanup(dev);
507
508 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) 508 list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head)
509 drm_rmmap(dev, r_list->map); 509 drm_rmmap(dev, r_list->map);
510 drm_ht_remove(&dev->map_hash);
511
512 drm_ctxbitmap_cleanup(dev);
510 513
511 if (drm_core_check_feature(dev, DRIVER_MODESET)) 514 if (drm_core_check_feature(dev, DRIVER_MODESET))
512 drm_put_minor(&dev->control); 515 drm_put_minor(&dev->control);