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
powerpc: Convert some mftb/mftbu into mfspr
2013-08-20 19:33:12 -05:00
vdso64
powerpc: Add VDSO version of time
2013-04-23 16:05:05 +10:00
.gitignore
align.c
powerpc: Never handle VSX alignment exceptions from kernel
2013-08-27 14:44:26 +10:00
asm-offsets.c
powerpc: Remove ksp_limit on ppc64
2013-09-25 14:15:51 +10:00
audit.c
btext.c
powerpc/btext: Fix CONFIG_PPC_EARLY_DEBUG_BOOTX on ppc32
2013-08-27 16:01:23 +10:00
cacheinfo.c
powerpc: Make device tree accesses in cache info code endian safe
2013-08-14 15:33:27 +10:00
cacheinfo.h
clock.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
compat_audit.c
cpu_setup_6xx.S
powerpc: Fix some 6xx/7xxx CPU setup functions
2011-02-07 12:57:11 +11:00
cpu_setup_44x.S
powerpc/44x: Add support for the AMCC APM821xx SoC
2010-10-13 08:47:09 -04:00
cpu_setup_a2.S
powerpc: Enforce usage of RA 0-R31 where possible
2012-07-10 19:18:35 +10:00
cpu_setup_fsl_booke.S
powerpc/85xx: Add machine check handler to fix PCIe erratum on mpc85xx
2013-07-30 15:50:07 -05:00
cpu_setup_pa6t.S
cpu_setup_power.S
powerpc: Fix TLB cleanup at boot on POWER8
2013-05-24 18:13:44 +10:00
cpu_setup_ppc970.S
powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits
2011-07-12 13:16:58 +03:00
cputable.c
Merge remote-tracking branch 'scott/next' into next
2013-08-09 16:01:40 +10:00
crash.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
crash_dump.c
powerpc: Remove savemaxmem parameter setup
2013-07-03 16:08:03 -07:00
dbell.c
powerpc: Add accounting for Doorbell interrupts
2013-04-18 15:59:55 +10:00
dma-iommu.c
powerpc/dma-iommu: Fix IOMMU window check
2012-08-24 20:26:07 +10:00
dma-swiotlb.c
powerpc/swiotlb: Enable at early stage and disable if not necessary
2012-09-12 14:57:09 -05:00
dma.c
powerpc/kernel: Remove uses of abs_to_virt() and virt_to_abs()
2012-09-05 15:19:30 +10:00
eeh.c
powerpc/eeh: Add missing procfs entry for PowerNV
2013-08-09 18:06:47 +10:00
eeh_cache.c
powerpc/eeh: Remove reference to PCI device
2013-07-24 14:18:46 +10:00
eeh_dev.c
powerpc/eeh: Move common part to kernel directory
2013-06-20 17:05:35 +10:00
eeh_driver.c
powerpc/eeh: Fix unbalanced enable for IRQ
2013-07-24 14:18:49 +10:00
eeh_event.c
powerpc/eeh: Use interruptible sleep in keehd
2013-06-25 17:24:41 +10:00
eeh_pe.c
powerpc/eeh: Don't use pci_dev during BAR restore
2013-07-24 14:18:49 +10:00
eeh_sysfs.c
powerpc/eeh: Introdce flag to protect sysfs
2013-07-24 14:18:49 +10:00
entry_32.S
powerpc/32bit:Store temporary result in r0 instead of r8
2013-06-01 08:29:27 +10:00
entry_64.S
powerpc: Cleanup handling of the DSCR bit in the FSCR register
2013-08-27 15:05:22 +10:00
epapr_hcalls.S
powerpc: Add paravirt idle loop for 64-bit Book-E
2013-03-13 14:19:36 -05:00
epapr_paravirt.c
powerpc/85xx: Move ePAPR paravirt initialization earlier
2013-08-07 18:38:06 -05:00
exceptions-64e.S
powerpc/ppc64: Rename SOFT_DISABLE_INTS with RECONCILE_IRQ_STATE
2013-08-14 14:57:47 +10:00
exceptions-64s.S
Merge branch 'merge' into next
2013-08-27 15:03:30 +10:00
fadump.c
mm/ppc: use common help functions to free reserved pages
2013-04-29 15:54:30 -07:00
firmware.c
powerpc: fix implicit use of cache.h in kernel/firmware.c
2011-10-31 19:30:41 -04:00
fpu.S
powerpc: Add FP/VSX and VMX register load functions for transactional memory
2013-02-15 16:58:52 +11:00
fsl_booke_entry_mapping.S
powerpc/fsl-booke: Fix address issue when using relocatable kernels
2010-07-11 11:04:08 -05:00
ftrace.c
powerpc/ftrace: Trace function graph entry before updating index
2012-07-27 11:42:34 +10:00
head_8xx.S
powerpc: Remove the empty giveup_fpu() function on 32bit kernel
2013-08-14 14:59:50 +10:00
head_32.S
powerpc: Call do_page_fault() with interrupts off
2012-03-09 10:55:08 +11:00
head_40x.S
powerpc: Remove the empty giveup_fpu() function on 32bit kernel
2013-08-14 14:59:50 +10:00
head_44x.S
powerpc: Remove the empty giveup_fpu() function on 32bit kernel
2013-08-14 14:59:50 +10:00
head_64.S
powerpc: Align p_toc
2013-08-14 11:50:19 +10:00
head_booke.h
powerpc: Fix interrupt range check on debug exception
2013-05-02 10:31:01 +10:00
head_fsl_booke.S
powerpc: Remove the empty giveup_fpu() function on 32bit kernel
2013-08-14 14:59:50 +10:00
hw_breakpoint.c
powerpc/hw_brk: Fix off by one error when validating DAWR region end
2013-07-02 08:20:49 +10:00
ibmebus.c
ibmebus: convert of_platform_driver to platform_driver
2013-06-12 12:37:26 +01:00
idle.c
powerpc/idle: Convert use of typedef ctl_table to struct ctl_table
2013-07-01 11:10:35 +10:00
idle_6xx.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_book3e.S
powerpc: Add paravirt idle loop for 64-bit Book-E
2013-03-13 14:19:36 -05:00
idle_e500.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_power4.S
powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly
2012-07-11 14:18:22 +10:00
idle_power7.S
powerpc/powernv: Always go into nap mode when CPU is offline
2012-09-05 16:05:20 +10:00
io-workarounds.c
powerpc: Better split CONFIG_PPC_INDIRECT_PIO and CONFIG_PPC_INDIRECT_MMIO
2013-08-14 14:57:50 +10:00
io.c
powerpc/powernv: Add PIO accessors for Power8 LPC bus
2013-08-14 14:58:08 +10:00
iomap.c
powerpc: switch to GENERIC_PCI_IOMAP
2011-11-28 21:13:18 +02:00
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
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
jump_label.c
powerpc: Fix build breakage in jump_label.c
2011-11-16 14:25:19 +11:00
kgdb.c
powerpc/kgdb: Removed kmalloc returned value cast
2013-04-18 13:03:56 +10:00
kprobes.c
powerpc: Move the single step enable code to a generic path
2013-06-20 16:55:09 +10:00
kvm.c
mm: enhance free_reserved_area() to support poisoning memory with zero
2013-07-03 16:07:32 -07:00
kvm_emul.S
KVM: PPC: Not optimizing MSR_CE and MSR_ME with paravirt.
2012-05-30 11:43:11 +02:00
l2cr_6xx.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
legacy_serial.c
powerpc: Little endian fixes for legacy_serial.c
2013-08-14 15:33:32 +10:00
machine_kexec.c
powerpc+of: Rename the drivers/of prom_* functions to of_*
2012-11-15 12:56:52 +11:00
machine_kexec_32.c
treewide: convert uses of ATTRIB_NORETURN to __noreturn
2012-01-12 20:13:03 -08:00
machine_kexec_64.c
powerpc/kexec: Fix kexec when using VMX optimised memcpy
2013-05-14 14:36:23 +10:00
Makefile
powerpc/pseries: Move lparcfg.c to platforms/pseries
2013-08-28 11:20:54 +10:00
misc.S
powerpc: switch to generic sys_execve()/kernel_execve()
2012-09-30 23:35:51 -04:00
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
module.c
powerpc: remove non-required uses of include <linux/module.h>
2011-10-31 19:30:44 -04:00
module_32.c
powerpc: Fix kernel panic during kernel module load
2012-06-08 19:59:08 +10:00
module_64.c
powerpc: Build kernel with -mcmodel=medium
2013-01-10 17:00:31 +11:00
msi.c
nvram_64.c
powerpc/nvram64: Need return the related error code on failure occurs
2013-07-01 11:46:56 +10:00
of_platform.c
powerpc/eeh: Fix crash when adding a device in a slot with DDW
2013-01-10 17:01:58 +11:00
paca.c
powerpc: Fix little endian lppaca, slb_shadow and dtl_entry
2013-08-14 15:33:35 +10:00
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
powerpc/pci: Partial tree hotplug support
2013-07-24 14:18:48 +10:00
pci_32.c
powerpc/pci: Support per-aperture memory offset
2013-05-06 13:40:40 +10:00
pci_64.c
powerpc/pci: Don't use bitfield for force_32bit_msi
2013-08-14 11:50:25 +10:00
pci_dn.c
powerpc: Make PCI device node device tree accesses endian safe
2013-08-14 15:33:31 +10:00
pci_of_scan.c
powerpc: Make OF PCI device tree accesses endian safe
2013-08-14 15:33:30 +10:00
pmc.c
bug.h: add include of it to various implicit C users
2012-02-29 17:15:08 -05:00
ppc32.h
powerpc: switch to generic old sigaction()
2013-02-03 18:16:10 -05:00
ppc_ksyms.c
powerpc: Remove the empty giveup_fpu() function on 32bit kernel
2013-08-14 14:59:50 +10:00
ppc_save_regs.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
proc_powerpc.c
proc_powerpc: switch to fixed_size_llseek()
2013-06-29 12:57:50 +04:00
process.c
powerpc: Remove ksp_limit on ppc64
2013-09-25 14:15:51 +10:00
prom.c
Device tree core updates for v3.12
2013-09-10 13:53:52 -07:00
prom_init.c
powerpc/pseries: Do not start secondaries in Open Firmware
2013-09-25 14:19:00 +10:00
prom_init_check.sh
powerpc/pmac: Early debug output on screen on 64-bit macs
2013-08-14 14:57:40 +10:00
prom_parse.c
powerpc: of_parse_dma_window should take a __be32 *dma_window
2013-08-14 15:33:26 +10:00
ptrace.c
ptrace/powerpc: revert "hw_breakpoints: Fix racy access to ptrace breakpoints"
2013-07-09 10:33:25 -07:00
ptrace32.c
powerpc: fixing ptrace_get_reg to return an error
2013-04-18 13:03:57 +10:00
reloc_32.S
powerpc: Don't flush/invalidate the d/icache for an unknown relocation type
2013-07-01 11:10:34 +10:00
reloc_64.S
rtas-proc.c
powerpc: Move /proc/ppc64 to /proc/powerpc update
2010-01-15 13:26:17 +11:00
rtas-rtc.c
powerpc/rtas-rtc: remove sideeffects of printk_ratelimit
2011-06-29 15:30:43 +10:00
rtas.c
powerpc: Make RTAS calls endian safe
2013-08-14 15:33:22 +10:00
rtas_flash.c
powerpc/rtas_flash: Fix validate_flash buffer overflow issue
2013-05-14 14:36:26 +10:00
rtas_pci.c
powerpc/kernel: Cleanup on rtas_pci.c
2013-04-18 13:03:48 +10:00
rtasd.c
powerpc/pseries: Add /proc interface to control topology updates
2013-04-26 16:08:26 +10:00
setup-common.c
powerpc: More little endian fixes for setup-common.c
2013-08-14 15:33:24 +10:00
setup.h
setup_32.c
powerpc/85xx: Move ePAPR paravirt initialization earlier
2013-08-07 18:38:06 -05:00
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
signal.c
powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions
2013-06-01 08:29:23 +10:00
signal.h
powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions
2013-06-01 08:29:23 +10:00
signal_32.c
powerpc: Fix VRSAVE handling
2013-08-14 14:57:18 +10:00
signal_64.c
powerpc: Remove the redundant flush_fp_to_thread() in setup_sigcontext()
2013-08-14 14:59:38 +10:00
smp-tbsync.c
POWERPC: drivers: remove __dev* attributes.
2013-01-03 15:57:04 -08:00
smp.c
powerpc: Export cpu_to_chip_id() to fix build error
2013-09-11 11:39:37 +10:00
stacktrace.c
powerpc: various straight conversions from module.h --> export.h
2011-10-31 19:30:44 -04:00
suspend.c
update email address
2010-07-19 10:56:54 +02:00
swsusp.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
swsusp_32.S
Fix common misspellings
2011-03-31 11:26:23 -03:00
swsusp_64.c
Disintegrate asm/system.h for PowerPC
2012-03-28 18:30:02 +01:00
swsusp_asm64.S
powerpc: add Book E support to 64-bit hibernation
2013-08-23 19:39:26 -05:00
swsusp_booke.S
powerpc/mpc85xx: invalidate TLB after hibernation resume
2013-07-30 15:50:08 -05:00
sys_ppc32.c
unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE
2013-05-09 13:46:38 -04:00
syscalls.c
powerpc: Fix personality handling in ppc64_personality()
2012-08-24 20:26:07 +10:00
sysfs.c
powerpc/sysfs: Disable writing to PURR in guest mode
2013-10-03 17:22:53 +10:00
systbl.S
systbl_chk.c
systbl_chk.sh
tau_6xx.c
tree-wide: fix assorted typos all over the place
2009-12-04 15:39:55 +01:00
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
powerpc: Cleanup handling of the DSCR bit in the FSCR register
2013-08-27 15:05:22 +10:00
udbg.c
powerpc: Add a configuration option for early BootX/OpenFirmware debug
2013-06-20 16:55:12 +10:00
udbg_16550.c
powerpc/wsp: Fix early debug build
2013-08-16 10:59:27 +10:00
uprobes.c
uretprobes/powerpc: Hijack return address
2013-04-13 15:31:56 +02:00
vdso.c
powerpc: Delete __cpuinit usage from all users
2013-07-01 11:10:36 +10:00
vecemu.c
vector.S
powerpc: Add FP/VSX and VMX register load functions for transactional memory
2013-02-15 16:58:52 +11:00
vio.c
powerpc/vio: Fix modalias_show return values
2013-10-03 17:25:16 +10:00
vmlinux.lds.S
powerpc/modules: Module CRC relocation fix causes perf issues
2013-07-24 14:18:43 +10:00