padata: Use get_online_cpus/put_online_cpus in padata_free
authorSteffen Klassert <steffen.klassert@secunet.com>
Wed, 19 May 2010 03:45:35 +0000 (13:45 +1000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 19 May 2010 03:45:35 +0000 (13:45 +1000)
Add get_online_cpus/put_online_cpus to ensure that no cpu goes
offline during the flushing of the padata percpu queues.

Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
kernel/padata.c

index ca89dfb698058b5a838647bdaf07f013c191fc30..b1c9857f8402d8ae66ae651153b917239d08d512 100644 (file)
@@ -763,7 +763,10 @@ void padata_free(struct padata_instance *pinst)
 #ifdef CONFIG_HOTPLUG_CPU
        unregister_hotcpu_notifier(&pinst->cpu_notifier);
 #endif
+       get_online_cpus();
        padata_flush_queues(pinst->pd);
+       put_online_cpus();
+
        padata_free_pd(pinst->pd);
        free_cpumask_var(pinst->cpumask);
        kfree(pinst);