drm: Fix error handling in drm_master_create
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sat, 5 Apr 2014 09:12:04 +0000 (11:12 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 22 Apr 2014 13:39:42 +0000 (15:39 +0200)
We need to check whether drm_ht_create succeed and clean up
if not.

Spotted by coverity.

Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/drm_stub.c

index 4c24c3a..bfa6cb9 100644 (file)
@@ -128,7 +128,10 @@ struct drm_master *drm_master_create(struct drm_minor *minor)
        kref_init(&master->refcount);
        spin_lock_init(&master->lock.spinlock);
        init_waitqueue_head(&master->lock.lock_queue);
-       drm_ht_create(&master->magiclist, DRM_MAGIC_HASH_ORDER);
+       if (drm_ht_create(&master->magiclist, DRM_MAGIC_HASH_ORDER)) {
+               kfree(master);
+               return NULL;
+       }
        INIT_LIST_HEAD(&master->magicfree);
        master->minor = minor;