On 04/10, Eric W. Biederman wrote: > > static int kthread(void *_create) > { > struct kthread_create_info *create = _create; > int (*threadfn)(void *data); > void *data; > - sigset_t blocked; > int ret = -EINTR; > > - kthread_exit_files(); > - > - /* Copy data: it's on keventd's stack */ > + /* Copy data: it's on kthread's stack */ > threadfn = create->threadfn; > data = create->data; > > - /* Block and flush all signals (in case we're not from keventd). */ > - sigfillset(&blocked); > - sigprocmask(SIG_BLOCK, &blocked, NULL); > - flush_signals(current); > - > - /* By default we can run anywhere, unlike keventd. */ > - set_cpus_allowed(current, CPU_MASK_ALL);
The above is OK, but I believe you should add set_cpus_allowed() to kthreadd_setup(). Note that kthreadd() is forked after init_idle(). Oleg. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/