linux/arch/powerpc/platforms/pseries
Nathan Fontenot 93f68f1ef7 powerpc/pseries: Correct rtas_data_buf locking in dlpar code
The dlpar code can cause a deadlock to occur when making the RTAS
configure-connector call.  This occurs because we make kmalloc calls,
which can block, while parsing the rtas_data_buf and holding the
rtas_data_buf_lock.  This an cause issues if someone else attempts
to grab the rtas_data_bug_lock.

This patch alleviates this issue by copying the contents of the rtas_data_buf
to a local buffer before parsing.  This allows us to only hold the
rtas_data_buf_lock around the RTAS configure-connector calls.

Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-09-02 10:07:38 +10:00
..
cmm.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
dlpar.c powerpc/pseries: Correct rtas_data_buf locking in dlpar code 2010-09-02 10:07:38 +10:00
dtl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
eeh_cache.c powerpc/pseries/eeh: Use for_each_pci_dev() 2010-07-09 11:28:25 +10:00
eeh_driver.c powerpc/eeh: Fix a bug when pci structure is null 2010-02-17 14:02:47 +11:00
eeh_event.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
eeh_sysfs.c
eeh.c powerpc/eeh: Fix oops when probing in early boot 2010-05-21 17:31:09 +10:00
event_sources.c powerpc/pseries: Add WARN_ON() to request_event_sources_irqs() on irq allocation/request failure 2010-07-09 11:28:32 +10:00
firmware.c powerpc: Fix hypervisor TLB batching 2009-10-14 16:58:37 +11:00
hotplug-cpu.c powerpc/pseries: Increase cpu die timeout 2010-07-31 15:04:15 +10:00
hotplug-memory.c powerpc: Fix erroneous lmb->memblock conversions 2010-07-23 12:56:57 +10:00
hvCall_inst.c tracing: fix for tracepoint API change 2010-05-28 10:20:14 -07:00
hvCall.S powerpc/pseries: Add hcall to read 4 ptes at a time in real mode 2010-05-21 17:31:10 +10:00
hvconsole.c
hvcserver.c
iommu.c powerpc: Fix bogus it_blocksize in VIO iommu code 2010-08-24 15:26:31 +10:00
Kconfig powerpc/pseries: Select XICS and PCI_MSI PSERIES 2009-12-18 14:54:25 +11:00
kexec.c
lpar.c powerpc/kexec: Speedup kexec hash PTE tear down 2010-05-21 17:31:11 +10:00
Makefile powerpc/pseries: Partition hibernation support 2010-07-09 11:26:17 +10:00
msi.c powerpc/pci: Fix regression in powerpc MSI-X 2009-11-05 17:06:27 +11:00
nvram.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
offline_states.h powerpc: Reset kernel stack on cpu online from cede state 2010-03-09 11:57:10 +11:00
pci_dlpar.c powerpc: Remove trailing space in messages 2010-02-09 13:56:23 +11:00
pci.c
phyp_dump.c lmb: rename to memblock 2010-07-14 17:14:00 +10:00
plpar_wrappers.h powerpc/pseries: Add hcall to read 4 ptes at a time in real mode 2010-05-21 17:31:10 +10:00
power.c
pseries.h powerpc/pseries: Make request_ras_irqs() available to other pseries code 2010-05-21 17:31:12 +10:00
ras.c powerpc/pseries: Rename RAS_VECTOR_OFFSET to RTAS_VECTOR_EXTERNAL_INTERRUPT and move to rtas.h 2010-07-09 11:28:31 +10:00
reconfig.c powerpc/pseries: Use kstrdup 2010-07-09 11:28:37 +10:00
scanlog.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
setup.c powerpc: Use smt_snooze_delay=-1 to always busy loop 2010-05-21 17:31:12 +10:00
smp.c powerpc: Correct smt_enabled=X boot option for > 2 threads per core 2010-08-24 15:26:30 +10:00
suspend.c powerpc/pseries: Partition hibernation support 2010-07-09 11:26:17 +10:00
xics.c powerpc: Silence xics_migrate_irqs_away() during cpu offline 2010-08-24 15:26:30 +10:00
xics.h powerpc/xics: Consolidate ipi message encode and decode 2008-10-13 16:24:16 +11:00