linux/arch/powerpc
Ravi K. Nittala df17f56d8a powerpc/pseries: Cancel RTAS event scan before firmware flash
The RTAS firmware flash update is conducted using an RTAS call that is
serialized by lock_rtas() which uses spin_lock. While the flash is in
progress, rtasd performs scan for any RTAS events that are generated by
the system. rtasd keeps scanning for the RTAS events generated on the
machine. This is performed via workqueue mechanism. The rtas_event_scan()
also uses an RTAS call to scan the events, eventually trying to acquire
the spin_lock before issuing the request.

The flash update takes a while to complete and during this time, any other
RTAS call has to wait. In this case, rtas_event_scan() waits for a long time
on the spin_lock resulting in a soft lockup.

Fix: Just before the flash update is performed, the queued rtas_event_scan()
work item is cancelled from the work queue so that there is no other RTAS
call issued while the flash is in progress. After the flash completes, the
system reboots and the rtas_event_scan() is rescheduled.

Signed-off-by: Suzuki Poulose <suzuki@in.ibm.com>
Signed-off-by: Ravi Nittala <ravi.nittala@in.ibm.com>
Reported-by: Divya Vikas <divya.vikas@in.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2011-11-25 14:11:29 +11:00
..
boot Merge remote-tracking branch 'agust/next' into merge 2011-11-08 14:53:55 +11:00
configs powerpc/book3e: Add Chroma as a new WSP/PowerEN platform. 2011-11-25 14:11:29 +11:00
include/asm powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
kernel powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
kvm Merge branch 'kvm-updates/3.2' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-11-20 14:57:43 -08:00
lib powerpc: Copy down exception vectors after feature fixups 2011-11-16 14:47:54 +11:00
math-emu powerpc/math_emu/efp: Look for errata handler when type mismatches 2011-10-06 23:36:47 -05:00
mm powerpc/icswx: Simple ACOP fault handler 2011-11-25 14:11:28 +11:00
net net: filter: BPF 'JIT' compiler for PPC64 2011-07-21 12:38:32 -07:00
oprofile powerpc/oprofile: Handle events that raise an exception without overflowing 2011-05-26 13:38:57 +10:00
platforms powerpc/book3e: Add Chroma as a new WSP/PowerEN platform. 2011-11-25 14:11:29 +11:00
sysdev Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux 2011-11-15 14:47:28 -02:00
xmon powerpc/xmon: Fix #if typo for systems without MSR[RI] 2011-11-25 14:11:28 +11:00
Kconfig powerpc/4xx: Fix typos in kexec config dependencies 2011-11-16 14:47:54 +11:00
Kconfig.debug powerpc/powernv: Support for OPAL console 2011-09-20 16:09:54 +10:00
Makefile powerpc: Remove buggy 9-year-old test for binutils < 2.12.1 2011-11-17 16:26:07 +11:00
relocs_check.pl