Re: linux-next: build failure after merge of the final tree (driver-core tree related)

From: Rafael J. Wysocki
Date: Tue May 10 2011 - 15:38:33 EST


On Tuesday, May 10, 2011, Kay Sievers wrote:
> On Tue, 2011-05-10 at 00:19 +0200, Rafael J. Wysocki wrote:
> > On Monday, May 09, 2011, Kay Sievers wrote:
> > > On Mon, May 9, 2011 at 06:58, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > > > After merging the final tree, today's linux-next build (powerpc allnoconfig)
> > > > failed like this:
> > > >
> > > > kernel/sys.c: In function 'kernel_restart_prepare':
> > > > kernel/sys.c:317: error: implicit declaration of function 'usermodehelper_disable'
> > >
> > > Rafael, seems usermodehelper_disable() depends on CONFIG_PM_SLEEP.
> > >
> > > Any reason for that conditional? Remove it now?
> >
> > Aw, we have two conflicting changes. Could you prepare a patch on top of:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6.git pm-next
> >
> > removing that #ifdef? That needs to be done in kmod.h too.
>
> Like this?

Yes, thanks.

I applied it to suspend-2.6/linux-next.

Rafael


> From: Kay Sievers <kay.sievers@xxxxxxxx>
> Subject: kmod: always provide usermodehelper_disable()
>
> We need to prevent kernel-forked processes during system poweroff.
> Such processes try to access the filesystem whose disks we are
> trying to shutdown at the same time. This causes delays and exceptions
> in the storage drivers.
>
> A follow-up patch will add these calls and need usermodehelper_disable()
> also on systems without suspend support.
>
> Signed-off-by: Kay Sievers <kay.sievers@xxxxxxxx>
> ---
>
> diff --git a/include/linux/kmod.h b/include/linux/kmod.h
> index 7f3dbcb..3102318 100644
> --- a/include/linux/kmod.h
> +++ b/include/linux/kmod.h
> @@ -111,12 +111,8 @@ call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
>
> extern void usermodehelper_init(void);
>
> -#ifdef CONFIG_PM_SLEEP
> extern int usermodehelper_disable(void);
> extern void usermodehelper_enable(void);
> extern bool usermodehelper_is_disabled(void);
> -#else
> -static inline bool usermodehelper_is_disabled(void) { return false; }
> -#endif
>
> #endif /* __LINUX_KMOD_H__ */
> diff --git a/kernel/kmod.c b/kernel/kmod.c
> index 9ab513b..5ae0ff3 100644
> --- a/kernel/kmod.c
> +++ b/kernel/kmod.c
> @@ -245,7 +245,6 @@ static void __call_usermodehelper(struct work_struct *work)
> }
> }
>
> -#ifdef CONFIG_PM_SLEEP
> /*
> * If set, call_usermodehelper_exec() will exit immediately returning -EBUSY
> * (used for preventing user land processes from being created after the user
> @@ -321,12 +320,6 @@ static void helper_unlock(void)
> if (atomic_dec_and_test(&running_helpers))
> wake_up(&running_helpers_waitq);
> }
> -#else /* CONFIG_PM_SLEEP */
> -#define usermodehelper_disabled 0
> -
> -static inline void helper_lock(void) {}
> -static inline void helper_unlock(void) {}
> -#endif /* CONFIG_PM_SLEEP */
>
> /**
> * call_usermodehelper_setup - prepare to call a usermode helper
>
>
> --
> 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/
>
>

--
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/