summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powernv/opal-irqchip.c
diff options
context:
space:
mode:
authorShreyas B. Prabhu2015-05-19 21:00:14 +0200
committerMichael Ellerman2015-06-17 00:01:03 +0200
commit3609d819a36c65857816ca1278d80767d6d9b990 (patch)
treef74a540fb015f9774a22753e4665a1b5aec689b7 /arch/powerpc/platforms/powernv/opal-irqchip.c
parentpowerpc/powernv: pnv_init_idle_states() should only run on powernv (diff)
downloadkernel-qcow2-linux-3609d819a36c65857816ca1278d80767d6d9b990.tar.gz
kernel-qcow2-linux-3609d819a36c65857816ca1278d80767d6d9b990.tar.xz
kernel-qcow2-linux-3609d819a36c65857816ca1278d80767d6d9b990.zip
powerpc: Make doorbell check preemption safe
Doorbell can be used to cause ipi on cpus which are sibling threads on the same core. So icp_native_cause_ipi checks if the destination cpu is a sibling thread of the current cpu and uses doorbell in such cases. But while running with CONFIG_PREEMPT=y, since this section is preemtible, we can run into issues if after we check if the destination cpu is a sibling cpu, the task gets migrated from a sibling cpu to a cpu on another core. Fix this by using get_cpu()/ put_cpu() Signed-off-by: Shreyas B. Prabhu <shreyas@linux.vnet.ibm.com> Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/platforms/powernv/opal-irqchip.c')
0 files changed, 0 insertions, 0 deletions