#include <linux/device.h>
#include <linux/string.h>
#include <linux/sched.h>
+#include <linux/mutex.h>
#include <asm/uaccess.h>
#include <asm/semaphore.h>
#include <asm/cacheflush.h>
static DECLARE_MUTEX(module_mutex);
static LIST_HEAD(modules);
-static DECLARE_MUTEX(notify_mutex);
+static DEFINE_MUTEX(notify_mutex);
static struct notifier_block * module_notify_list;
int register_module_notifier(struct notifier_block * nb)
{
int err;
- down(¬ify_mutex);
+ mutex_lock(¬ify_mutex);
err = notifier_chain_register(&module_notify_list, nb);
- up(¬ify_mutex);
+ mutex_unlock(¬ify_mutex);
return err;
}
EXPORT_SYMBOL(register_module_notifier);
int unregister_module_notifier(struct notifier_block * nb)
{
int err;
- down(¬ify_mutex);
+ mutex_lock(¬ify_mutex);
err = notifier_chain_unregister(&module_notify_list, nb);
- up(¬ify_mutex);
+ mutex_unlock(¬ify_mutex);
return err;
}
EXPORT_SYMBOL(unregister_module_notifier);
/* Drop lock so they can recurse */
up(&module_mutex);
- down(¬ify_mutex);
+ mutex_lock(¬ify_mutex);
notifier_call_chain(&module_notify_list, MODULE_STATE_COMING, mod);
- up(¬ify_mutex);
+ mutex_unlock(¬ify_mutex);
/* Start the module */
if (mod->init != NULL)