]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/module.c
m68k/m68kmmu: use kbuild.h instead of defining macros in asm-offsets.c
[linux-2.6-omap-h63xx.git] / kernel / module.c
index 68d05d2f4d8a9e70dccadefb078284a939342971..8d6cccc6c3cf99870f76b00202a2775bd5e2a54f 100644 (file)
@@ -43,7 +43,6 @@
 #include <linux/mutex.h>
 #include <linux/unwind.h>
 #include <asm/uaccess.h>
-#include <asm/semaphore.h>
 #include <asm/cacheflush.h>
 #include <linux/license.h>
 #include <asm/sections.h>
@@ -664,7 +663,7 @@ static void free_module(struct module *mod);
 
 static void wait_for_zero_refcount(struct module *mod)
 {
-       /* Since we might sleep for some time, drop the semaphore first */
+       /* Since we might sleep for some time, release the mutex first */
        mutex_unlock(&module_mutex);
        for (;;) {
                DEBUGP("Looking at refcount...\n");
@@ -2178,6 +2177,14 @@ sys_init_module(void __user *umod,
                wake_up(&module_wq);
                return ret;
        }
+       if (ret > 0) {
+               printk(KERN_WARNING "%s: '%s'->init suspiciously returned %d, "
+                                   "it should follow 0/-E convention\n"
+                      KERN_WARNING "%s: loading module anyway...\n",
+                      __func__, mod->name, ret,
+                      __func__);
+               dump_stack();
+       }
 
        /* Now it's a first class citizen!  Wake up anyone waiting for it. */
        mod->state = MODULE_STATE_LIVE;