Re: [PATCH 16/21] KGDB: This allows for KGDB to better deal with autoloaded modules.

Jason Wessel
2008-01-17T14:18:48Z

Jan Kiszka wrote:
> These days, notify_mutex should better be a real mutex.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
>
> ---
> kernel/module.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> Index: b/kernel/module.c
> ===================================================================
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -66,7 +66,7 @@ extern int module_sysfs_initialized;
> * (add/delete uses stop_machine). */
> static DEFINE_MUTEX(module_mutex);
> static LIST_HEAD(modules);
> -static DECLARE_MUTEX(notify_mutex);
> +static DEFINE_MUTEX(notify_mutex);
>
> static BLOCKING_NOTIFIER_HEAD(module_notify_list);
>
> @@ -712,10 +712,10 @@ sys_delete_module(const char __user *nam
> if (ret != 0)
> goto out;
>
> - down(&notify_mutex);
> + mutex_lock(&notify_mutex);
> blocking_notifier_call_chain(&module_notify_list, MODULE_STATE_GOING,
> mod);
> - up(&notify_mutex);
> + mutex_unlock(&notify_mutex);
>
>
> /* Never wait if forced. */
> @@ -730,10 +730,10 @@ sys_delete_module(const char __user *nam
> }
> free_module(mod);
>
> - down(&notify_mutex);
> + mutex_lock(&notify_mutex);
> blocking_notifier_call_chain(&module_notify_list, MODULE_STATE_GONE,
> NULL);
> - up(&notify_mutex);
> + mutex_unlock(&notify_mutex);
>
> out:
> mutex_unlock(&module_mutex);
> @@ -2182,11 +2182,11 @@ sys_init_module(void __user *umod,
> /* Init routine failed: abort. Try to protect us from
> buggy refcounters. */
> mod->state = MODULE_STATE_GOING;
> - down(&notify_mutex);
> + mutex_lock(&notify_mutex);
> blocking_notifier_call_chain(&module_notify_list,
> MODULE_STATE_GOING,
> mod);
> - up(&notify_mutex);
> + mutex_unlock(&notify_mutex);
> synchronize_sched();
> module_put(mod);
> mutex_lock(&module_mutex);
>
Jan,

This looks fine.

I committed this to the latest development branch as well as the 2.6.24
branch. It will show up in the kernel.org & cvs repository later today.

Thanks,
Jason.