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: Sun, 23 Jun 2013 19:15:39 +0530 From: "Srivatsa S. Bhat" <srivatsa.bhat@...ux.vnet.ibm.com> To: tglx@...utronix.de, peterz@...radead.org, tj@...nel.org, oleg@...hat.com, paulmck@...ux.vnet.ibm.com, rusty@...tcorp.com.au, mingo@...nel.org, akpm@...ux-foundation.org, namhyung@...nel.org, walken@...gle.com, vincent.guittot@...aro.org, laijs@...fujitsu.com Cc: rostedt@...dmis.org, wangyun@...ux.vnet.ibm.com, xiaoguangrong@...ux.vnet.ibm.com, sbw@....edu, fweisbec@...il.com, zhong@...ux.vnet.ibm.com, nikunj@...ux.vnet.ibm.com, srivatsa.bhat@...ux.vnet.ibm.com, linux-pm@...r.kernel.org, linux-arch@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, Mikael Starvik <starvik@...s.com>, Jesper Nilsson <jesper.nilsson@...s.com>, Thomas Gleixner <tglx@...utronix.de>, linux-cris-kernel@...s.com Subject: [PATCH 33/45] cris/smp: Use get/put_online_cpus_atomic() to prevent CPU offline Once stop_machine() is gone from the CPU offline path, we won't be able to depend on disabling preemption to prevent CPUs from going offline from under us. Use the get/put_online_cpus_atomic() APIs to prevent CPUs from going offline, while invoking from atomic context. Cc: Mikael Starvik <starvik@...s.com> Cc: Jesper Nilsson <jesper.nilsson@...s.com> Cc: Thomas Gleixner <tglx@...utronix.de> Cc: linux-cris-kernel@...s.com Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@...ux.vnet.ibm.com> --- arch/cris/arch-v32/kernel/smp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c index cdd1202..b2d4612 100644 --- a/arch/cris/arch-v32/kernel/smp.c +++ b/arch/cris/arch-v32/kernel/smp.c @@ -13,6 +13,7 @@ #include <linux/init.h> #include <linux/timex.h> #include <linux/sched.h> +#include <linux/cpu.h> #include <linux/kernel.h> #include <linux/cpumask.h> #include <linux/interrupt.h> @@ -222,6 +223,7 @@ void flush_tlb_common(struct mm_struct* mm, struct vm_area_struct* vma, unsigned unsigned long flags; cpumask_t cpu_mask; + get_online_cpus_atomic(); spin_lock_irqsave(&tlbstate_lock, flags); cpu_mask = (mm == FLUSH_ALL ? cpu_all_mask : *mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); @@ -230,6 +232,7 @@ void flush_tlb_common(struct mm_struct* mm, struct vm_area_struct* vma, unsigned flush_addr = addr; send_ipi(IPI_FLUSH_TLB, 1, cpu_mask); spin_unlock_irqrestore(&tlbstate_lock, flags); + put_online_cpus_atomic(); } void flush_tlb_all(void) @@ -319,10 +322,12 @@ int smp_call_function(void (*func)(void *info), void *info, int wait) data.info = info; data.wait = wait; + get_online_cpus_atomic(); spin_lock(&call_lock); call_data = &data; ret = send_ipi(IPI_CALL, wait, cpu_mask); spin_unlock(&call_lock); + put_online_cpus_atomic(); return ret; } -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists