linux/arch/powerpc/sysdev
Shreyas B. Prabhu 3609d819a3 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>
2015-06-17 08:01:03 +10:00
..
ge powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
qe_lib powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
xics powerpc: Make doorbell check preemption safe 2015-06-17 08:01:03 +10:00
6xx-suspend.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
axonram.c Merge branch 'for-3.20/core' into for-3.20/drivers 2015-01-13 21:58:45 -07:00
cpm1.c powerpc: Mark low level irq handlers NO_THREAD 2013-06-20 16:55:08 +10:00
cpm2_pic.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
cpm2_pic.h
cpm2.c
cpm_common.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
dart_iommu.c powerpc/iommu: Move tce_xxx callbacks from ppc_md to iommu_table 2015-06-11 15:14:56 +10:00
dart.h
dcr-low.S
dcr.c powerpc: Use bool function return values of true/false not 1/0 2015-03-31 14:19:47 +11:00
ehv_pic.c powerpc:eVh_pic: Kill irq_desc abuse 2014-03-04 17:37:51 +01:00
fsl_85xx_cache_ctlr.h powerpc/85xx: Fix sram_offset parameter type 2012-07-26 13:24:32 -05:00
fsl_85xx_cache_sram.c powerpc/85xx: Fix compiler error with THIS_MODULE and related 2012-03-16 14:50:25 -05:00
fsl_85xx_l2ctlr.c powerpc: sysdev: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
fsl_gtm.c Merge remote-tracking branch 'grant/devicetree/next' into for-next 2013-11-07 10:34:46 -06:00
fsl_lbc.c powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_mpic_err.c powerpc/mpic: FSL MPIC error interrupt support. 2012-09-12 14:57:10 -05:00
fsl_mpic_timer_wakeup.c powerpc/fsl: add MPIC timer wakeup support 2013-07-01 18:38:42 -05:00
fsl_msi.c powerpc/fsl_msi: Move MSI-related ops to pci_controller_ops 2015-06-02 11:47:42 +10:00
fsl_msi.h powerpc/85xx: workaround for chips with MSI hardware errata 2015-03-23 19:51:18 -05:00
fsl_pci.c powerpc: fsl_pci, swiotlb: Move controller ops from ppc_md to controller_ops 2015-04-11 20:49:17 +10:00
fsl_pci.h fsl/pci: The new pci suspend/resume implementation 2014-03-19 22:37:44 -05:00
fsl_pmc.c powerpc: sysdev: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
fsl_rio.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
fsl_rio.h powerpc/fsl-rio: add support for mapping inbound windows 2014-11-12 23:56:16 -06:00
fsl_rmu.c powerpc/rmu: Fix the error memory free parameters 2014-05-22 18:08:13 -05:00
fsl_soc.c powerpc/fsl: fsl_soc: delete unneeded test before of_node_put 2014-11-10 09:59:34 +11:00
fsl_soc.h powerpc/mpc512x: remove unnecessary #if 2013-10-30 22:56:10 +01:00
grackle.c powerpc: rename ppc_pci_*_flags to pci_*_flags 2011-07-12 09:28:04 -05:00
i8259.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
indirect_pci.c powerpc/fsl_pci: Fix pci stack build bug with FRAME_WARN 2015-01-29 19:56:15 -06:00
ipic.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
ipic.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
Kconfig powerpc: Added PCI MSI support using the HSTA module 2014-05-01 08:26:30 +10:00
Makefile powerpc/pasemi: Only the build the pasemi MSI code for PASEMI=y 2015-05-11 19:55:25 +10:00
micropatch.c powerpc/8xx: Remove empty asm/mpc8xx.h 2014-06-25 18:49:40 -05:00
mmio_nvram.c treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
mpc5xxx_clocks.c powerpc/mpc5xxx: delete unneeded test before of_node_put 2014-11-10 09:59:34 +11:00
mpc8xx_pic.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
mpc8xx_pic.h
mpic_msgr.c powerpc: sysdev: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
mpic_msi.c of/irq: Replace of_irq with of_phandle_args 2013-10-24 11:42:51 +01:00
mpic_timer.c powerpc/mpic_timer: fix convert ticks to time subtraction overflow 2014-01-09 17:52:14 -06:00
mpic_u3msi.c powerpc/mpic_u3msi: Move MSI-related ops to pci_controller_ops 2015-06-02 11:47:44 +10:00
mpic.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
mpic.h powerpc/pasemi: Only the build the pasemi MSI code for PASEMI=y 2015-05-11 19:55:25 +10:00
msi_bitmap.c powerpc/msi: Use WARN_ON() in msi bitmap selftests 2014-10-15 13:09:33 +11:00
mv64x60_dev.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00
mv64x60_pci.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
mv64x60_pic.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
mv64x60_udbg.c dt/bindings: Remove device_type "serial" from marvell,mv64360-mpsc 2014-01-16 16:31:31 +00:00
mv64x60.h
of_rtc.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
pmi.c powerpc: sysdev: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
ppc4xx_cpm.c powerpc/4xx/cpm: delete unneeded test before of_node_put 2014-11-10 09:59:34 +11:00
ppc4xx_gpio.c
ppc4xx_hsta_msi.c powerpc/ppc4xx_hsta_msi: Move MSI-related ops to pci_controller_ops 2015-06-02 11:47:43 +10:00
ppc4xx_msi.c powerpc/ppc4xx_msi: Move MSI-related ops to pci_controller_ops 2015-06-02 11:47:42 +10:00
ppc4xx_ocm.c powerpc/44x: Fix ocm_block allocation 2013-12-10 11:25:04 +11:00
ppc4xx_pci.c powerpc: Remove superfluous bootmem includes 2014-11-10 09:59:26 +11:00
ppc4xx_pci.h powerpc/476fpe: Add 476fpe SoC code 2011-12-09 07:51:02 -05:00
ppc4xx_soc.c powerpc: add explicit OF includes 2013-10-09 20:04:11 -05:00
rtc_cmos_setup.c PTR_RET is now PTR_ERR_OR_ZERO(): Replace most. 2013-07-15 11:25:01 +09:30
scom.c powerpc/scom: Improve debugfs interface 2013-11-06 14:13:50 +11:00
simple_gpio.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
simple_gpio.h
tsi108_dev.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
tsi108_pci.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
udbg_memcons.c powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
uic.c powerpc: Use irq_desc_get_xxx() to avoid redundant lookup of irq_desc 2015-06-02 16:54:44 +10:00
xilinx_intc.c powerpc: Constify irq_domain_ops 2015-05-11 16:58:20 +10:00
xilinx_pci.c powerpc: make of_device_ids const 2014-09-25 23:14:46 +10:00