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 linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 6 Feb 2014 10:57:18 +0000 From: Will Deacon <will.deacon@....com> To: "Srivatsa S. Bhat" <srivatsa.bhat@...ux.vnet.ibm.com> Cc: "paulus@...ba.org" <paulus@...ba.org>, "oleg@...hat.com" <oleg@...hat.com>, "rusty@...tcorp.com.au" <rusty@...tcorp.com.au>, "peterz@...radead.org" <peterz@...radead.org>, "tglx@...utronix.de" <tglx@...utronix.de>, "akpm@...ux-foundation.org" <akpm@...ux-foundation.org>, "mingo@...nel.org" <mingo@...nel.org>, "paulmck@...ux.vnet.ibm.com" <paulmck@...ux.vnet.ibm.com>, "tj@...nel.org" <tj@...nel.org>, "walken@...gle.com" <walken@...gle.com>, "ego@...ux.vnet.ibm.com" <ego@...ux.vnet.ibm.com>, "linux@....linux.org.uk" <linux@....linux.org.uk>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, "linux-arm-kernel@...ts.infradead.org" <linux-arm-kernel@...ts.infradead.org> Subject: Re: [PATCH 08/51] arm, hw-breakpoint: Fix CPU hotplug callback registration Hi Srivatsa, On Wed, Feb 05, 2014 at 10:06:04PM +0000, Srivatsa S. Bhat wrote: > Subsystems that want to register CPU hotplug callbacks, as well as perform > initialization for the CPUs that are already online, often do it as shown > below: > > get_online_cpus(); > > for_each_online_cpu(cpu) > init_cpu(cpu); > > register_cpu_notifier(&foobar_cpu_notifier); > > put_online_cpus(); > > This is wrong, since it is prone to ABBA deadlocks involving the > cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently > with CPU hotplug operations). Hmm, the code in question (for this patch) runs from an arch_initcall. How can you generate CPU hotplug operations at that stage? > Instead, the correct and race-free way of performing the callback > registration is: > > cpu_maps_update_begin(); > > for_each_online_cpu(cpu) > init_cpu(cpu); > > /* Note the use of the double underscored version of the API */ > __register_cpu_notifier(&foobar_cpu_notifier); > > cpu_maps_update_done(); > > > Fix the hw-breakpoint code in arm by using this latter form of callback > registration. I guess you introduce __register_cpu_notifier somewhere earlier in the series, so it's best if you take this all via your tree. Will -- 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