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@xxxxxxxxx> --- 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel