linux/arch/powerpc/platforms/powernv
Benjamin Herrenschmidt 298b34d7d5 powerpc/powernv: Fix kexec races going back to OPAL
We have a subtle race when sending CPUs back to OPAL on kexec.

We mark them as "in real mode" right before we send them down. Once
we've booted the new kernel, it might try to call opal_reinit_cpus()
to change endianness, and that requires all CPUs to be spinning inside
OPAL.

However there is no synchronization here and we've observed cases
where the returning CPUs hadn't established their new state inside
OPAL before opal_reinit_cpus() is called, causing it to fail.

The proper fix is to actually wait for them to go down all the way
from the kexec'ing kernel.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2014-04-28 13:08:50 +10:00
..
eeh-ioda.c powerpc/powernv: Dump PHB diag-data immediately 2014-02-28 18:43:10 +11:00
eeh-powernv.c powerpc/eeh: Cleanup on eeh_subsystem_enabled 2014-02-17 11:19:39 +11:00
Kconfig cpufreq: powernv: Select CPUFreq related Kconfig options for powernv 2014-04-07 14:35:28 +02:00
Makefile powerpc/powernv: Add OPAL message log interface 2014-04-09 12:53:19 +10:00
opal-async.c powerpc/powernv: Fix endian issues with OPAL async code 2014-04-07 10:34:27 +10:00
opal-dump.c powerpc/powernv Adapt opal-elog and opal-dump to new sysfs_remove_file_self 2014-04-09 13:51:50 +10:00
opal-elog.c powerpc/powernv Adapt opal-elog and opal-dump to new sysfs_remove_file_self 2014-04-09 13:51:50 +10:00
opal-flash.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-01-27 21:11:26 -08:00
opal-lpc.c powerpc/powernv: Fix OPAL LPC access in Little Endian 2013-12-13 15:55:15 +11:00
opal-memory-errors.c powerpc/powernv: Get FSP memory errors and plumb into memory poison infrastructure. 2013-12-09 11:41:14 +11:00
opal-msglog.c powerpc/powernv: Add OPAL message log interface 2014-04-09 12:53:19 +10:00
opal-nvram.c powerpc/powernv: Make OPAL NVRAM device tree accesses endian safe 2013-10-11 16:48:47 +11:00
opal-rtc.c powernv: Remove get/set_rtc_time when they are not present 2013-12-05 16:08:22 +11:00
opal-sensor.c powerpc/powernv: Fix endian issues with sensor code 2014-04-09 12:52:49 +10:00
opal-sysparam.c powerpc/powernv: Check sysparam size before creation 2014-04-28 13:08:49 +10:00
opal-takeover.S powerpc: Merge STK_REG/PARAM/FRAMESIZE 2012-07-10 19:18:03 +10:00
opal-wrappers.S powerpc/powernv: Add invalid OPAL call 2014-04-09 12:53:23 +10:00
opal-xscom.c powerpc/powernv: Fix indirect XSCOM unmangling 2014-02-28 19:15:49 +11:00
opal.c powerpc/powernv: Add invalid OPAL call 2014-04-09 12:53:23 +10:00
pci-ioda.c powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
pci-p5ioc2.c PPC: POWERNV: move iommu_add_device earlier 2013-12-05 16:08:17 +11:00
pci.c powerpc/powernv: Refactor PHB diag-data dump 2014-02-28 18:43:19 +11:00
pci.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
powernv.h powerpc/powernv: Add iommu DMA bypass support for IODA2 2014-02-11 16:07:37 +11:00
rng.c powerpc: Make cpu_to_chip_id() available when SMP=n 2013-11-21 10:33:44 +11:00
setup.c powerpc/powernv: Fix kexec races going back to OPAL 2014-04-28 13:08:50 +10:00
smp.c powerpc: Convert platforms to smp_generic_cpu_bootable 2013-08-14 14:56:57 +10:00