Re: 2.6.19-rc6-mm2

Kay Sievers
2006-11-29T23:09:28Z

On Wed, 2006-11-29 at 22:54 +0000, Andy Whitcroft wrote:
> Kay Sievers wrote:
> > On Tue, 2006-11-28 at 14:30 -0800, Greg KH wrote:
> >> On Tue, Nov 28, 2006 at 12:35:43PM +0100, Mariusz Kozlowski wrote:
> >>> Hello,
> >>>
> >>> When CONFIG_MODULE_UNLOAD is not set then this happens:
> >>>
> >>> CC kernel/module.o
> >>> kernel/module.c:852: error: `initstate' undeclared here (not in a function)
> >>> kernel/module.c:852: error: initializer element is not constant
> >>> kernel/module.c:852: error: (near initialization for `modinfo_attrs[2]')
> >>> make[1]: *** [kernel/module.o] Error 1
> >>> make: *** [kernel] Error 2
> >>>
> >>> Reference to 'initstate' should stay under #ifdef CONFIG_MODULE_UNLOAD
> >>> as its definition I guess.
> >>>
> >>> Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
> >>>
> >>> --- linux-2.6.19-rc6-mm2-a/kernel/module.c 2006-11-28 12:17:09.000000000 +0100
> >>> +++ linux-2.6.19-rc6-mm2-b/kernel/module.c 2006-11-28 12:05:01.000000000 +0100
> >>> @@ -849,8 +849,8 @@ static inline void module_unload_init(st
> >>> static struct module_attribute *modinfo_attrs[] = {
> >>> &modinfo_version,
> >>> &modinfo_srcversion,
> >>> - &initstate,
> >>> #ifdef CONFIG_MODULE_UNLOAD
> >>> + &initstate,
> >>> &refcnt,
> >>> #endif
> >> Kay, is this correct? I think we still need this information exported
> >> to userspace, even if we can't unload modules, right?
> >
> > Yes, instead we should move the attribute out of the ifdef, so
> > it will be there, even when modules can't be unloaded.

> You here say move the attribute, but the patch here just adds it. Is
> this right?? Looking at whats there before this patch it appears to
> duplicate the code from inside the #ifdef, so we have two copies when
> CONFIG_MODULE_UNLOAD is defined.

It just replaces the patch "modules-state.patch" in Greg's tree, that
adds the attribute, it's not on top of it.

Thanks,
Kay