[openib-general] [PATCH] single exit in ib_mad_init_module

Sean Hefty
Wed Oct 13 16:02:52 PDT 2004


Patch to fix cleanup issue in ib_mad_init_module.

- Sean

-- 
Index: access/ib_mad.c
===================================================================
--- access/ib_mad.c     (revision 987)
+++ access/ib_mad.c     (working copy)
@@ -1886,6 +1886,8 @@
 
 static int __init ib_mad_init_module(void)
 {
+       int ret;
+
        ib_mad_cache = kmem_cache_create("ib_mad",
                                         sizeof(struct ib_mad_private),
                                         0,
@@ -1894,17 +1896,23 @@
                                         NULL);
        if (!ib_mad_cache) {
                printk(KERN_ERR PFX "Couldn't create ib_mad cache\n");
-               return -ENOMEM;
+               ret = -ENOMEM;
+               goto error1;
        }
 
        INIT_LIST_HEAD(&ib_mad_port_list);
 
        if (ib_register_client(&mad_client)) {
                printk(KERN_ERR PFX "Couldn't register ib_mad client\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto error2;
        }
-
        return 0;
+
+error2:
+       kmem_cache_destroy(ib_mad_cache);
+error1:
+       return ret;
 }
 
 static void __exit ib_mad_cleanup_module(void)


More information about the openib-general mailing list