If driver failed to load (for example, -EPROBE_DEFER), we'd end up doing
drm_put_minor() both from drm_dev_register() and drm_dev_free(), the
second time with a bogus pointer.

Signed-off-by: Rob Clark <robdclark at gmail.com>
---
 drivers/gpu/drm/drm_stub.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index f53d524..f245d99 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -567,10 +567,13 @@ err_unload:
                dev->driver->unload(dev);
 err_primary_node:
        drm_put_minor(dev->primary);
+       dev->primary = NULL;
 err_render_node:
        drm_put_minor(dev->render);
+       dev->render = NULL;
 err_control_node:
        drm_put_minor(dev->control);
+       dev->control = NULL;
 err_agp:
        if (dev->driver->bus->agp_destroy)
                dev->driver->bus->agp_destroy(dev);
-- 
1.8.4.2

Reply via email to