2008-11-11 20:59:34

by Masami Hiramatsu

[permalink] [raw]
Subject: [PATCH 6/7] module: Add MODULE_STATE_LIVE notify

Add a module notifier call which notifies that the state of a module changes
from MODULE_STATE_COMING to MODULE_STATE_LIVE.

Signed-off-by: Masami Hiramatsu <[email protected]>
---
kernel/module.c | 2 ++
1 file changed, 2 insertions(+)

Steven, Ananth told me that this patch might also help to solve
cmpxchg problem.

Index: 2.6.28-rc4/kernel/module.c
===================================================================
--- 2.6.28-rc4.orig/kernel/module.c
+++ 2.6.28-rc4/kernel/module.c
@@ -2346,6 +2346,8 @@ sys_init_module(void __user *umod,
/* Now it's a first class citizen! Wake up anyone waiting for it. */
mod->state = MODULE_STATE_LIVE;
wake_up(&module_wq);
+ blocking_notifier_call_chain(&module_notify_list,
+ MODULE_STATE_LIVE, mod);

mutex_lock(&module_mutex);
/* Drop initial reference. */

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division

e-mail: [email protected]


2008-11-11 21:10:28

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH 6/7] module: Add MODULE_STATE_LIVE notify


On Tue, 11 Nov 2008, Masami Hiramatsu wrote:

> Add a module notifier call which notifies that the state of a module changes
> from MODULE_STATE_COMING to MODULE_STATE_LIVE.
>
> Signed-off-by: Masami Hiramatsu <[email protected]>
> ---
> kernel/module.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> Steven, Ananth told me that this patch might also help to solve
> cmpxchg problem.

I'm assuming you are talking about the infamous e1000e ftrace cmpxchg
corruption bug?

In anycase, ftrace has already solved those issues, and does not use
cmpxchg anymore.

Thanks anyway,

-- Steve


>
> Index: 2.6.28-rc4/kernel/module.c
> ===================================================================
> --- 2.6.28-rc4.orig/kernel/module.c
> +++ 2.6.28-rc4/kernel/module.c
> @@ -2346,6 +2346,8 @@ sys_init_module(void __user *umod,
> /* Now it's a first class citizen! Wake up anyone waiting for it. */
> mod->state = MODULE_STATE_LIVE;
> wake_up(&module_wq);
> + blocking_notifier_call_chain(&module_notify_list,
> + MODULE_STATE_LIVE, mod);
>
> mutex_lock(&module_mutex);
> /* Drop initial reference. */
>
> --
> Masami Hiramatsu
>
> Software Engineer
> Hitachi Computer Products (America) Inc.
> Software Solutions Division
>
> e-mail: [email protected]
>
>
>