Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f58411d authored by Ilia Mirkin's avatar Ilia Mirkin Committed by Dave Airlie
Browse files

drm: don't double-free on driver load error



All instances of drm_dev_register are followed by drm_dev_free on
failure. Don't free dev->control/render/primary on failure, as they will
be freed by drm_dev_free since commit 8f6599da (drm: delay minor
destruction to drm_dev_free()). Instead unplug them.

Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
Reported-and-tested-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 0ca9fff7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -566,11 +566,11 @@ int drm_dev_register(struct drm_device *dev, unsigned long flags)
	if (dev->driver->unload)
		dev->driver->unload(dev);
err_primary_node:
	drm_put_minor(dev->primary);
	drm_unplug_minor(dev->primary);
err_render_node:
	drm_put_minor(dev->render);
	drm_unplug_minor(dev->render);
err_control_node:
	drm_put_minor(dev->control);
	drm_unplug_minor(dev->control);
err_agp:
	if (dev->driver->bus->agp_destroy)
		dev->driver->bus->agp_destroy(dev);