lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 11 Mar 2014 15:07:33 -0700 From: Andrew Morton <akpm@...ux-foundation.org> To: "Srivatsa S. Bhat" <srivatsa.bhat@...ux.vnet.ibm.com> Cc: paulus@...ba.org, oleg@...hat.com, mingo@...nel.org, rjw@...ysocki.net, rusty@...tcorp.com.au, peterz@...radead.org, tglx@...utronix.de, paulmck@...ux.vnet.ibm.com, tj@...nel.org, walken@...gle.com, ego@...ux.vnet.ibm.com, linux@....linux.org.uk, linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org, linux-pm@...r.kernel.org, linuxppc-dev@...abs.org Subject: Re: [PATCH v3 00/52] CPU hotplug: Fix issues with callback registration On Tue, 11 Mar 2014 02:03:52 +0530 "Srivatsa S. Bhat" <srivatsa.bhat@...ux.vnet.ibm.com> wrote: > Hi, > > Many subsystems and drivers have the need to register CPU hotplug callbacks > from their init routines and also perform initialization for the CPUs that are > already online. But unfortunately there is no race-free way to achieve this > today. > > For example, consider this piece of code: > > get_online_cpus(); > > for_each_online_cpu(cpu) > init_cpu(cpu); > > register_cpu_notifier(&foobar_cpu_notifier); > > put_online_cpus(); > > This is not safe because there is a possibility of an ABBA deadlock involving > the cpu_add_remove_lock and the cpu_hotplug.lock. > > CPU 0 CPU 1 > ----- ----- > > Acquire cpu_hotplug.lock > [via get_online_cpus()] > > CPU online/offline operation > takes cpu_add_remove_lock > [via cpu_maps_update_begin()] > > Try to acquire > cpu_add_remove_lock > [via register_cpu_notifier()] > > CPU online/offline operation > tries to acquire cpu_hotplug.lock > [via cpu_hotplug_begin()] Can't we fix this by using a different (ie: new) lock to protect cpu_chain? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists