lkml.org 
[lkml]   [2000]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch] hotplug fixes
David Woodhouse wrote:
>
> On Sun, 10 Dec 2000, Andrew Morton wrote:
>
> > - PCMCIA layer calls call_usermodehelper from within keventd. But
> > call_usermodehelper blocks until keventd has run the helper! Duh.
> >
> > This patch special-cases the situation where keventd is calling
> > call_usermodehelper().
>
> + if (current_is_keventd()) {
> + /* We can't wait on keventd! */
> + __call_usermodehelper(&sub_info);
> + } else {
> + schedule_task(&tqs);
> + down(&sem); /* Wait until keventd has started the subprocess */
> + }
>
> That's sick. Do we have to? The PCMCIA coded obviously wants an async
> call_usermodehelper() or it wouldn't have been using schedule_task()
> for it in the first place, would it? Can't we pass an 'int async' arg to
> call_usermodehelper() instead of doing it this way?

Well, call_usermodehelper here _is_ async. We're just waiting for
acknowledgement that the subprocess has safely taken copies of
our local data (argv, envp, etc). And waiting to pick up the
return value from execve().

We can't call schedule_task() and then just return from
call_usermodehelper(), unless we take kmalloced copies of
everything (including the tq_struct) and then free them
after the vfork.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:52    [W:0.049 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site