1
linux/arch/powerpc
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
..
boot Merge remote branch 'jwb/merge' into merge 2010-08-24 14:36:45 +10:00
configs powerpc: Trim defconfigs 2010-08-09 11:19:16 +10:00
include/asm powerpc: Wire up fanotify_init, fanotify_mark, prlimit64 syscalls 2010-08-24 15:28:28 +10:00
kernel powerpc: Don't use kernel stack with translation off 2010-08-31 11:35:13 +10:00
kvm Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-08-05 09:03:46 -07:00
lib Merge commit 'paulus-perf/master' into next 2010-07-09 11:25:48 +10:00
math-emu
mm powerpc: Export memstart_addr and kernstart_addr on ppc64 2010-08-24 15:26:26 +10:00
oprofile powerpc/oprofile: Don't build server oprofile drivers on 64-bit BookE 2010-07-14 14:13:54 +10:00
platforms powerpc/pseries: Correct rtas_data_buf locking in dlpar code 2010-09-02 10:07:38 +10:00
sysdev powerpc/85xx: Add P1021 PCI IDs and quirks 2010-08-31 16:44:24 -05:00
xmon Input: sysrq - drop tty argument from sysrq ops handlers 2010-08-19 22:07:06 -07:00
Kconfig Merge branch 'timers-timekeeping-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 13:18:29 -07:00
Kconfig.debug powerpc: Unconditionally enabled irq stacks 2010-06-15 15:02:37 +10:00
Makefile powerpc: Fix typo in uImage target 2010-08-24 15:26:32 +10:00
relocs_check.pl