linux/include
Haren Myneni 81b73dd92b [POWERPC] Fix might-sleep warning on removing cpus
Noticing the following might_sleep warning (dump_stack()) during kdump
testing when CONFIG_DEBUG_SPINLOCK_SLEEP is enabled. All secondary CPUs
will be calling rtas_set_indicator with interrupts disabled to remove
them from global interrupt queue.

BUG: sleeping function called from invalid context at
arch/powerpc/kernel/rtas.c:463
in_atomic():1, irqs_disabled():1
Call Trace:
[C00000000FFFB970] [C000000000010234] .show_stack+0x68/0x1b0 (unreliable)
[C00000000FFFBA10] [C000000000059354] .__might_sleep+0xd8/0xf4
[C00000000FFFBA90] [C00000000001D1BC] .rtas_busy_delay+0x20/0x5c
[C00000000FFFBB20] [C00000000001D8A8] .rtas_set_indicator+0x6c/0xcc
[C00000000FFFBBC0] [C000000000048BF4] .xics_teardown_cpu+0x118/0x134
[C00000000FFFBC40] [C00000000004539C]
.pseries_kexec_cpu_down_xics+0x74/0x8c
[C00000000FFFBCC0] [C00000000002DF08] .crash_ipi_callback+0x15c/0x188
[C00000000FFFBD50] [C0000000000296EC] .smp_message_recv+0x84/0xdc
[C00000000FFFBDC0] [C000000000048E08] .xics_ipi_dispatch+0xf0/0x130
[C00000000FFFBE50] [C00000000009EF10] .handle_IRQ_event+0x7c/0xf8
[C00000000FFFBF00] [C0000000000A0A14] .handle_percpu_irq+0x90/0x10c
[C00000000FFFBF90] [C00000000002659C] .call_handle_irq+0x1c/0x2c
[C00000000058B9C0] [C00000000000CA10] .do_IRQ+0xf4/0x1a4
[C00000000058BA50] [C0000000000044EC] hardware_interrupt_entry+0xc/0x10
 --- Exception: 501 at .plpar_hcall_norets+0x14/0x1c
   LR = .pseries_dedicated_idle_sleep+0x190/0x1d4
[C00000000058BD40] [C00000000058BDE0] 0xc00000000058bde0 (unreliable)
[C00000000058BDF0] [C00000000001270C] .cpu_idle+0x10c/0x1e0
[C00000000058BE70] [C000000000009274] .rest_init+0x44/0x5c

To fix this issue, rtas_set_indicator_fast() is added so that will not
wait for RTAS 'busy' delay and this new function is used for kdump (in
xics_teardown_cpu()) and for CPU hotplug ( xics_migrate_irqs_away() and
xics_setup_cpu()).

Note that the platform architecture spec says that set-indicator
on the indicator we're using here is not permitted to return the
busy or extended busy status codes.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-08-08 16:00:11 +10:00
..
acpi Pull acpi_os_allocate into test branch 2006-07-10 02:39:47 -04:00
asm-alpha [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-arm [ARM] 3743/1: ARM: OMAP: Fix compile for OMAP 2006-08-02 14:41:39 +01:00
asm-arm26 [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-cris [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-frv [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-generic [PATCH] hdrinstall: remove asm/io.h from user visibility 2006-07-14 21:53:52 -07:00
asm-h8300 [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-i386 [PATCH] IA64: kprobe invalidate icache of jump buffer 2006-07-31 13:28:38 -07:00
asm-ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2006-08-03 12:50:20 -07:00
asm-m32r [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-m68k [SPARC]: Kill prom_getname, unused and not implemented properly. 2006-07-21 14:17:55 -07:00
asm-m68knommu [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-mips [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-parisc [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-powerpc [POWERPC] Fix might-sleep warning on removing cpus 2006-08-08 16:00:11 +10:00
asm-ppc [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-s390 [S390] get_clock inline assembly. 2006-07-17 16:09:42 +02:00
asm-sh [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-sh64 [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-sparc [SPARC]: Fix SA_STATIC_ALLOC value. 2006-07-24 22:34:00 -07:00
asm-sparc64 [PATCH] IA64: kprobe invalidate icache of jump buffer 2006-07-31 13:28:38 -07:00
asm-um Merge git://git.infradead.org/hdrinstall-2.6 2006-07-04 12:55:45 -07:00
asm-v850 [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
asm-x86_64 [PATCH] IA64: kprobe invalidate icache of jump buffer 2006-07-31 13:28:38 -07:00
asm-xtensa [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
keys [PATCH] keys: discard the contents of a key on revocation 2006-06-26 09:58:18 -07:00
linux Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2006-08-06 09:12:49 -07:00
math-emu
media V4L/DVB (4316): Check __must_check warnings 2006-07-29 17:22:21 -03:00
mtd Merge git://git.infradead.org/hdrinstall-2.6 2006-07-04 12:55:45 -07:00
net [PKT_SCHED] RED: Fix overflow in calculation of queue average 2006-08-04 22:59:51 -07:00
pcmcia
rdma IB/mad: Validate MADs for spec compliance 2006-07-24 09:18:07 -07:00
rxrpc
scsi [SCSI] scsi_transport_sas: add expander backlink 2006-07-12 09:03:20 -04:00
sound [ALSA] Fix section mismatch errors in ALSA PCI drivers 2006-07-12 20:08:01 +02:00
video [PATCH] mbxfb: Add framebuffer driver for the Intel 2700G 2006-07-14 21:53:55 -07:00
Kbuild