domain: detroy IDRs
authorDaniel Mack <daniel@zonque.org>
Thu, 16 Oct 2014 09:38:37 +0000 (11:38 +0200)
committerDaniel Mack <daniel@zonque.org>
Thu, 16 Oct 2014 09:38:37 +0000 (11:38 +0200)
Signed-off-by: Daniel Mack <daniel@zonque.org>
domain.c

index 471eed1012dafb8d14550d8874fff3f9de44fe4d..90840e72c601fcb333f6b5be3fd29f061097a7f7 100644 (file)
--- a/domain.c
+++ b/domain.c
@@ -107,6 +107,9 @@ void kdbus_domain_disconnect(struct kdbus_domain *domain)
                unregister_chrdev(domain->major, KBUILD_MODNAME);
                domain->major = 0;
 
+               if (idr_is_empty(&kdbus_domain_major_idr))
+                       idr_destroy(&kdbus_domain_major_idr);
+
                mutex_unlock(&kdbus_subsys_lock);
        }
 
@@ -164,6 +167,8 @@ static void __kdbus_domain_free(struct device *dev)
        BUG_ON(!hash_empty(domain->user_hash));
 
        kdbus_domain_unref(domain->parent);
+       idr_destroy(&domain->user_idr);
+       idr_destroy(&domain->idr);
        kfree(domain->name);
        kfree(domain->devpath);
        kfree(domain);