linux/arch/powerpc/kernel
Benjamin Herrenschmidt 8b5ede69d2 powerpc/irq: Don't switch to irq stack from softirq stack
irq_exit() is now called on the irq stack, which can trigger a switch to
the softirq stack from the irq stack.  If an interrupt happens at that
point, we will not properly detect the re-entrancy and clobber the
original return context on the irq stack.

This fixes it.  The side effect is to prevent all nesting from softirq
stack to irq stack even in the "safe" case but it's simpler that way and
matches what x86_64 does.

Reported-by: Cédric Le Goater <clg@fr.ibm.com>
Tested-by: Cédric Le Goater <clg@fr.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-10-07 14:19:39 -07:00
..
vdso32
vdso64
.gitignore
align.c
asm-offsets.c powerpc: Remove ksp_limit on ppc64 2013-09-25 14:15:51 +10:00
audit.c
btext.c
cacheinfo.c
cacheinfo.h
clock.c
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_a2.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S
cpu_setup_ppc970.S
cputable.c
crash_dump.c
crash.c
dbell.c
dma-iommu.c
dma-swiotlb.c
dma.c
eeh_cache.c
eeh_dev.c
eeh_driver.c
eeh_event.c
eeh_pe.c
eeh_sysfs.c
eeh.c
entry_32.S
entry_64.S
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S
exceptions-64s.S
fadump.c
firmware.c
fpu.S
fsl_booke_entry_mapping.S
ftrace.c
head_8xx.S
head_32.S
head_40x.S
head_44x.S
head_64.S
head_booke.h
head_fsl_booke.S
hw_breakpoint.c
ibmebus.c
idle_6xx.S
idle_book3e.S
idle_e500.S
idle_power4.S
idle_power7.S
idle.c
io-workarounds.c
io.c
iomap.c
iommu.c powerpc/iommu: Use GFP_KERNEL instead of GFP_ATOMIC in iommu_init_table() 2013-10-03 17:24:44 +10:00
irq.c powerpc/irq: Don't switch to irq stack from softirq stack 2013-10-07 14:19:39 -07:00
isa-bridge.c
jump_label.c
kgdb.c
kprobes.c
kvm_emul.S
kvm.c
l2cr_6xx.S
legacy_serial.c
machine_kexec_32.c
machine_kexec_64.c
machine_kexec.c
Makefile
misc_32.S powerpc: Remove ksp_limit on ppc64 2013-09-25 14:15:51 +10:00
misc_64.S powerpc/irq: Run softirqs off the top of the irq stack 2013-09-25 14:15:36 +10:00
misc.S
module_32.c
module_64.c
module.c
msi.c
nvram_64.c
of_platform.c
paca.c
pci_32.c
pci_64.c
pci_dn.c
pci_of_scan.c
pci-common.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-09-06 10:49:42 -07:00
pci-hotplug.c
pmc.c
ppc32.h
ppc_ksyms.c
ppc_save_regs.S
proc_powerpc.c
process.c powerpc: Remove ksp_limit on ppc64 2013-09-25 14:15:51 +10:00
prom_init_check.sh
prom_init.c powerpc/pseries: Do not start secondaries in Open Firmware 2013-09-25 14:19:00 +10:00
prom_parse.c
prom.c Device tree core updates for v3.12 2013-09-10 13:53:52 -07:00
ptrace32.c
ptrace.c
reloc_32.S
reloc_64.S
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas-rtc.c
rtas.c
rtasd.c
setup_32.c
setup_64.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-09-06 10:49:42 -07:00
setup-common.c
setup.h
signal_32.c
signal_64.c
signal.c
signal.h
smp-tbsync.c
smp.c powerpc: Export cpu_to_chip_id() to fix build error 2013-09-11 11:39:37 +10:00
stacktrace.c
suspend.c
swsusp_32.S
swsusp_64.c
swsusp_asm64.S
swsusp_booke.S
swsusp.c
sys_ppc32.c
syscalls.c
sysfs.c powerpc/sysfs: Disable writing to PURR in guest mode 2013-10-03 17:22:53 +10:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-09-06 10:49:42 -07:00
tm.S powerpc/tm: Switch out userspace PPR and DSCR sooner 2013-10-03 17:25:51 +10:00
traps.c
udbg_16550.c
udbg.c
uprobes.c
vdso.c
vecemu.c
vector.S
vio.c powerpc/vio: Fix modalias_show return values 2013-10-03 17:25:16 +10:00
vmlinux.lds.S