kernel-ark/arch/sparc/kernel
David S. Miller 5598473a5b sparc: Allow handling signals when stack is corrupted.
If we can't push the pending register windows onto the user's stack,
we disallow signal delivery even if the signal would be delivered on a
valid seperate signal stack.

Add a register window save area in the signal frame, and store any
unsavable windows there.

On sigreturn, if any windows are still queued up in the signal frame,
try to push them back onto the stack and if that fails we kill the
process immediately.

This allows the debug/tst-longjmp_chk2 glibc test case to pass.

Signed-off-by: David S. Miller <davem@davemloft.net>
2011-08-20 17:14:54 -07:00
..
.gitignore
apc.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
asm-offsets.c
audit.c
auxio_32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
auxio_64.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
btext.c of/sparc: convert various prom_* functions to use phandle 2010-10-09 02:33:34 -06:00
central.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
cherrs.S
chmc.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
compat_audit.c
cpu.c sparc: Sanitize cpu feature detection and reporting. 2011-07-28 23:31:26 -07:00
cpumap.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
cpumap.h
devices.c sparc32: always register a PROM based early console 2011-04-21 15:47:35 -07:00
dma.c
ds.c sparc: Don't do hypervisor calls on non-sun4v in DS driver. 2011-08-11 17:58:59 -07:00
dtlb_miss.S
dtlb_prot.S
ebus.c
entry.h sparc: Use popc when possible for ffs/__ffs/ffz. 2011-08-02 21:28:53 -07:00
entry.S sparc: sun4m SMP: fix wrong shift instruction in IPI handler 2011-07-16 10:45:12 -07:00
etrap_32.S
etrap_64.S
fpu_traps.S
ftrace.c
getsetcc.S
head_32.S sparc32,leon: operate on boot-cpu IRQ controller registers 2011-04-21 16:44:45 -07:00
head_64.S sparc: Minor tweaks to Niagara page copy/clear. 2011-08-02 21:28:32 -07:00
helpers.S
hvapi.c sparc: Add some missing hypervisor API groups. 2011-08-02 21:28:51 -07:00
hvcalls.S sparc: Set reboot-cmd using reboot data hypervisor call if available. 2011-08-02 21:28:52 -07:00
hvtramp.S
idprom.c
init_task.c Fix common misspellings 2011-03-31 11:26:23 -03:00
iommu_common.h
iommu.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
ioport.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2011-07-31 14:30:59 -10:00
irq_32.c sparc32: implement SMP IPIs using the generic functions 2011-05-16 13:07:43 -07:00
irq_64.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
irq.h sparc32, sun4d: Implemented SMP IPIs support for SUN4D machines 2011-05-16 13:07:44 -07:00
itlb_miss.S
ivec.S
jump_label.c jump label: Add sparc64 support 2010-09-22 16:35:09 -04:00
kernel.h sparc: Set reboot-cmd using reboot data hypervisor call if available. 2011-08-02 21:28:52 -07:00
kgdb_32.c
kgdb_64.c
kprobes.c
kstack.h
ktlb.S sparc: Access kernel TSB using physical addressing when possible. 2011-08-05 00:53:57 -07:00
ldc.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
led.c
leon_kernel.c sparc32, leon: bugfix in LEON SMP interrupt init 2011-06-09 16:12:34 -07:00
leon_pci_grpci2.c PCI: Make the struct pci_dev * argument of pci_fixup_irqs const. 2011-07-22 08:26:06 -07:00
leon_pci.c sparc32,leon: added LEON-common low-level PCI routines 2011-06-02 14:32:37 -07:00
leon_pmc.c SPARC/LEON: power down instruction different of different LEONs 2011-03-16 18:19:04 -07:00
leon_smp.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
Makefile sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
mdesc.c sparc: Size mondo queues more sanely. 2011-08-05 02:38:27 -07:00
misctrap.S
module.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
muldiv.c
nmi.c perf, arch: Cleanup perf-pmu init vs lockup-detector 2010-11-26 15:14:56 +01:00
of_device_32.c sparc32: introduce build_device_irq 2011-03-16 18:19:14 -07:00
of_device_64.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
of_device_common.c sparc: Implement of_iomap(). 2011-03-18 15:47:26 -07:00
of_device_common.h
pci_common.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
pci_fire.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_impl.h sparc64: rename virt_irq => irq - II 2011-03-16 18:19:03 -07:00
pci_msi.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
pci_psycho.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_sabre.c drivercore: revert addition of of_match to struct device 2011-05-18 12:32:23 -06:00
pci_schizo.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
pci_sun4v_asm.S
pci_sun4v.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
pci_sun4v.h
pci.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2011-07-25 13:56:39 -07:00
pcic.c sparc: fix array bounds error setting up PCIC NMI trap 2011-08-18 21:47:40 -07:00
pcr.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
perf_event.c sparc: Detect and handle UltraSPARC-T3 cpu types. 2011-07-27 22:10:10 -07:00
pmc.c sparc32: fix section mismatch warnings in apc, pmc and time_32 2011-04-21 15:37:20 -07:00
power.c sparc64: Fix section mis-match errors. 2011-03-30 17:37:56 -07:00
process_32.c sparc32,leon: SMP power down implementation 2011-05-16 13:03:28 -07:00
process_64.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-08-28 13:55:31 -07:00
prom_32.c sparc32: always register a PROM based early console 2011-04-21 15:47:35 -07:00
prom_64.c
prom_common.c of/promtree: no longer call prom_ functions directly; use an ops structure 2010-10-12 21:57:53 -06:00
prom_irqtrans.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
prom.h of/promtree: make drivers/of/pdt.c no longer sparc-only 2010-10-10 21:53:30 -06:00
psycho_common.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
psycho_common.h
ptrace_32.c ptrace: cleanup arch_ptrace() on sparc 2010-10-27 18:03:12 -07:00
ptrace_64.c sparc64: Fix build errors with gcc-4.6.0 2011-03-16 18:19:15 -07:00
reboot.c
rtrap_32.S sparc: keep calling do_signal() as long as pending signals remain 2010-10-26 08:59:55 -07:00
rtrap_64.S sparc: keep calling do_signal() as long as pending signals remain 2010-10-26 08:59:55 -07:00
sbus.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
setup_32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
setup_64.c sparc: Use popc when possible for ffs/__ffs/ffz. 2011-08-02 21:28:53 -07:00
signal32.c sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
signal_32.c sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
signal_64.c sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
sigutil_32.c sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
sigutil_64.c sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
sigutil.h sparc: Allow handling signals when stack is corrupted. 2011-08-20 17:14:54 -07:00
smp_32.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smp_64.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
sparc_ksyms_32.c
sparc_ksyms_64.c sparc: Use popc when possible for ffs/__ffs/ffz. 2011-08-02 21:28:53 -07:00
spiterrs.S
sstate.c sparc: Set reboot-cmd using reboot data hypervisor call if available. 2011-08-02 21:28:52 -07:00
stacktrace.c
starfire.c sparc: explicitly cast negative phandle checks to s32 2011-01-03 20:02:06 -07:00
sun4c_irq.c sparc32: genirq support 2011-04-19 22:11:40 -07:00
sun4d_irq.c Add support for allocating irqs for bootbus devices 2011-06-07 16:06:33 -07:00
sun4d_smp.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
sun4m_irq.c sparc32: genirq support 2011-04-19 22:11:40 -07:00
sun4m_smp.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
sun4v_ivec.S
sun4v_tlb_miss.S
sys32.S
sys_sparc32.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
sys_sparc_32.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
sys_sparc_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
syscalls.S
sysfs.c sparc: convert old cpumask API into new one 2011-05-16 13:38:07 -07:00
systbls_32.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
systbls_64.S ns: Wire up the setns system call 2011-05-28 10:48:39 -07:00
systbls.h
tadpole.c of/sparc: convert various prom_* functions to use phandle 2010-10-09 02:33:34 -06:00
time_32.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 2011-05-20 12:59:54 -07:00
time_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
trampoline_32.S
trampoline_64.S
traps_32.c
traps_64.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
tsb.S
ttable.S
una_asm_32.S sparc32: unaligned memory access (MNA) trap handler bug 2011-02-01 12:39:59 -08:00
una_asm_64.S sparc: Fix .size directive for do_int_load 2011-03-16 18:19:15 -07:00
unaligned_32.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
unaligned_64.c sparc: Use hweight64() in popc emulation. 2011-08-02 21:28:50 -07:00
us2e_cpufreq.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
us3_cpufreq.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
utrap.S
vio.c
viohs.c sparc: Remove unnecessary semicolons 2011-06-07 16:06:34 -07:00
visemul.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
vmlinux.lds.S sparc: Access kernel TSB using physical addressing when possible. 2011-08-05 00:53:57 -07:00
windows.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
winfixup.S
wof.S
wuf.S