usb-uhci forgets to destroy kmem entries

From: Oleg Drokin (green@ixcelerator.com)
Date: Wed Sep 13 2000 - 09:40:07 EST


Hello!

   I do not know, if anybody really uses this driver ('UHCI (Intel PIIX4, VIA,
   ...) support'), but based one the name, I choosen it, and found, that when it
   cannot find any USB host, it forgots to do kmem_destroy_..., and
   because of that any subsequent attempts to load usb-uhci modules ends up
   with BUG in slab.c.
   Here is the patch, below. It is against 2.4.0-test8.

--- drivers/usb/usb-uhci.c.orig Wed Sep 13 17:36:20 2000
+++ drivers/usb/usb-uhci.c Wed Sep 13 18:34:33 2000
@@ -2842,6 +2842,7 @@
         
         if(!urb_priv_kmem) {
                 err("kmem_cache_create for urb_priv_t failed (out of memory)");
+ kmem_cache_destroy(urb_priv_kmem);
                 return -ENOMEM;
         }
 #endif
@@ -2876,6 +2877,15 @@
                         i++;
         }
 
+#ifdef DEBUG_SLAB
+ if (retval < 0 ) {
+ if(kmem_cache_destroy(uhci_desc_kmem))
+ err("uhci_desc_kmem remained");
+ if(kmem_cache_destroy(urb_priv_kmem))
+ err("urb_priv_kmem remained");
+ }
+#endif
+
         return retval;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:21 EST