Now that workqueue can handle work item queueing from very early during boot, there is no need to gate schedule_delayed_work_on() while !keventd_up(). Remove it.
Signed-off-by: Tejun Heo <[email protected]> Cc: Christoph Lameter <[email protected]> Cc: Pekka Enberg <[email protected]> Cc: David Rientjes <[email protected]> Cc: Joonsoo Kim <[email protected]> Cc: Andrew Morton <[email protected]> Cc: [email protected] --- Hello, This change depends on an earlier workqueue patch and is followed by a patch to remove keventd_up(). It'd be great if it can be routed through the wq/for-4.9 branch. Thanks. mm/slab.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mm/slab.c b/mm/slab.c index b672710..dc69b6b 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -550,12 +550,7 @@ static void start_cpu_timer(int cpu) { struct delayed_work *reap_work = &per_cpu(slab_reap_work, cpu); - /* - * When this gets called from do_initcalls via cpucache_init(), - * init_workqueues() has already run, so keventd will be setup - * at that time. - */ - if (keventd_up() && reap_work->work.func == NULL) { + if (reap_work->work.func == NULL) { init_reap_node(cpu); INIT_DEFERRABLE_WORK(reap_work, cache_reap); schedule_delayed_work_on(cpu, reap_work, -- 2.7.4

