diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2013-12-05 15:42:49 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2013-12-13 04:03:50 +0100 |
commit | 0f58411d4fd704d8958879fb08751eae3573271b (patch) | |
tree | fb5459f2bfd56398029c0184b17a68f8e309035c /drivers/gpu/drm/drm_stub.c | |
parent | Merge branch 'vmwgfx-fixes-3.13' of git://people.freedesktop.org/~thomash/lin... (diff) | |
download | linux-0f58411d4fd704d8958879fb08751eae3573271b.tar.xz linux-0f58411d4fd704d8958879fb08751eae3573271b.zip |
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 8f6599da8e (drm: delay minor
destruction to drm_dev_free()). Instead unplug them.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reported-and-tested-by: Bruno Prémont <bonbons@linux-vserver.org>
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index f53d5246979c..66dd3a001cf1 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -566,11 +566,11 @@ err_unload: 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); |