Re: Linux 2.6.17-rc2 - notifier chain problem?

From: Chandra Seetharaman
Date: Wed Apr 26 2006 - 14:18:57 EST


On Wed, 2006-04-26 at 11:49 -0400, Alan Stern wrote:
> On Mon, 24 Apr 2006, Andrew Morton wrote:
<snip>

> > I guess for now, bringing those things into .text and .data when there's
> > doubt is a reasonable thing to do.
>
> It seems clear that this particular oops was caused by the xfs driver
> trying to register a cpu_notifier at a time when that notifier chain was
> expected to be completely idle.
>
> Instead of moving all this code and data out of the init sections,
> wouldn't it be better to fix the individual drivers (like xfs) so they
> won't try to use inaccessible notifier chains?
>
> For that matter, if lots of entries on the cpu_notifier chain are marked
> with __cpuinit, then shouldn't the chain header itself plus
> register_cpu_notifier and unregister_cpu_notifier be marked the same way?

Your suggestion is very valid, since the cpu_notifiers are called only
at init time, unless CONFIG_HOTPLUG_CPU is turned ON. Definitions of
__cpuinit and __cpuinitdata takes care of HOTPLUG config option.

XFS wants to register only for HOTPLUG_CPU case, and it do so by putting
the callback, register and unregister inside #ifdef HOTPLUG_CPU.

Note: I made the changes and tested, it works.

Andrew, Linus, Any comments ?

> Alan Stern
>
--

----------------------------------------------------------------------
Chandra Seetharaman | Be careful what you choose....
- sekharan@xxxxxxxxxx | .......you may get it.
----------------------------------------------------------------------


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/