linux/arch/sparc64/kernel
Neil Horman 7dc0b22e3c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe
For some time /proc/sys/kernel/core_pattern has been able to set its output
destination as a pipe, allowing a user space helper to receive and
intellegently process a core.  This infrastructure however has some
shortcommings which can be enhanced.  Specifically:

1) The coredump code in the kernel should ignore RLIMIT_CORE limitation
   when core_pattern is a pipe, since file system resources are not being
   consumed in this case, unless the user application wishes to save the core,
   at which point the app is restricted by usual file system limits and
   restrictions.

2) The core_pattern code should be able to parse and pass options to the
   user space helper as an argv array.  The real core limit of the uid of the
   crashing proces should also be passable to the user space helper (since it
   is overridden to zero when called).

3) Some miscellaneous bugs need to be cleaned up (specifically the
   recognition of a recursive core dump, should the user mode helper itself
   crash.  Also, the core dump code in the kernel should not wait for the user
   mode helper to exit, since the same context is responsible for writing to
   the pipe, and a read of the pipe by the user mode helper will result in a
   deadlock.

This patch:

Remove the check of RLIMIT_CORE if core_pattern is a pipe.  In the event that
core_pattern is a pipe, the entire core will be fed to the user mode helper.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Cc: <martin.pitt@ubuntu.com>
Cc: <wwoods@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:50 -07:00
..
asm-offsets.c kbuild: frv,m32r,sparc64 introduce fake asm-offsets.h file 2005-09-09 22:47:53 +02:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
auxio.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
binfmt_aout32.c core_pattern: ignore RLIMIT_CORE if core_pattern is a pipe 2007-10-17 08:42:50 -07:00
binfmt_elf32.c [PATCH] elf: Always define elf_addr_t in linux/elf.h 2006-12-07 08:39:38 -08:00
central.c [SPARC64]: Fix section mismatch warnings in arch/sparc64/kernel/console.c 2007-05-07 00:00:37 -07:00
chmc.c [SPARC64]: constify of_get_property return: arch/sparc64 2007-04-26 01:54:24 -07:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu.c [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00
ds.c [SPARC64]: Do not flood log with failed DS messages. 2007-07-20 17:14:38 -07:00
dtlb_miss.S [SPARC64]: More TLB/TSB handling fixes. 2006-03-20 01:13:34 -08:00
dtlb_prot.S [SPARC64]: Fix boot failures on SunBlade-150 2005-10-12 12:22:46 -07:00
ebus.c [SPARC]: Fix EBUS use of uninitialized variable. 2007-09-27 13:09:28 -07:00
entry.S [SPARC64]: Access ivector_table[] using physical addresses. 2007-10-13 21:53:15 -07:00
etrap.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
hvapi.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
hvtramp.S [SPARC64]: Fix memory leak when cpu hotplugging. 2007-08-08 17:33:52 -07:00
idprom.c
init_task.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
iommu_common.c
iommu_common.h
iommu.c SPARC64: sg chaining support 2007-10-16 11:27:32 +02:00
irq.c [SPARC64]: virt_to_real_irq_table --> virt_irq_table 2007-10-13 23:52:14 -07:00
isa.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
itlb_miss.S [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler. 2007-05-29 02:50:15 -07:00
kprobes.c kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
ktlb.S SPARC64: SPARSEMEM_VMEMMAP support 2007-10-16 09:42:51 -07:00
ldc.c [SPARC64]: Abstract out mdesc accesses for better MD update handling. 2007-07-16 04:04:28 -07:00
Makefile [SPARC64]: Consolidate MSI support code. 2007-10-13 21:53:13 -07:00
mdesc.c [SPARC64]: Warn user if cpu is ignored. 2007-09-16 14:45:06 -07:00
module.c [SPARC]: Handle UNWIND_INFO properly. 2006-05-12 12:45:50 -07:00
of_device.c [SPARC/64]: Prepare to remove of_platform_driver name. 2007-10-13 21:53:11 -07:00
pci_common.c [SPARC64]: Temporary workaround for PCI-E slot on T1000. 2007-10-03 21:37:57 -07:00
pci_fire.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_impl.h [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_msi.c [SPARC64]: virt_irq --> bucket mapping no longer necessary 2007-10-13 23:50:38 -07:00
pci_psycho.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_sabre.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
pci_schizo.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
pci_sun4v_asm.S [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci_sun4v.c SPARC64: sg chaining support 2007-10-16 11:27:32 +02:00
pci_sun4v.h [SPARC64]: Add PCI MSI support on Niagara. 2007-02-10 23:50:37 -08:00
pci.c [SPARC64]: Kill pci_memspace_mask. 2007-10-13 21:53:14 -07:00
power.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
process.c Remove fs.h from mm.h 2007-07-29 17:09:29 -07:00
prom.c [SPARC64]: Fix 'niu' complex IRQ probing. 2007-10-04 15:03:35 -07:00
ptrace.c [SPARC{32,64}]: Propagate ptrace_traceme() return value. 2006-12-10 02:40:27 -08:00
rtrap.S [SPARC64]: Add irqtrace/stacktrace/lockdep support. 2006-12-10 02:39:09 -08:00
sbus.c [SPARC64]: Fix conflicts in SBUS/PCI/EBUS/ISA DMA handling. 2007-07-30 00:27:34 -07:00
semaphore.c
setup.c [SPARC]: Fix serial console device detection. 2007-07-20 16:59:26 -07:00
signal32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
signal.c [SPARC64]: Kill bogus set_fs(KERNEL_DS) in do_rt_sigreturn(). 2007-07-17 14:37:54 -07:00
smp.c Convert cpu_sibling_map to be a per cpu variable 2007-10-16 09:42:50 -07:00
sparc64_ksyms.c [SPARC64]: Do not assume sun4v chips have load-twin/store-init support. 2007-08-08 17:33:45 -07:00
sstate.c [SPARC64]: Report proper system soft state to the hypervisor. 2007-05-29 02:49:29 -07:00
stacktrace.c simplify the stacktrace code 2007-05-08 11:14:58 -07:00
starfire.c [SPARC64]: Kill starfire_cookie from SBUS/PCI. 2006-06-29 16:37:08 -07:00
sun4v_ivec.S [SPARC64]: Use sun4v VIRQ interfaces as intended. 2007-10-13 21:53:16 -07:00
sun4v_tlb_miss.S [SPARC64]: Set g4/g5 properly in sun4v dtlb-prot handling. 2007-01-26 18:56:01 -08:00
sunos_ioctl32.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
sys32.S [SPARC64]: Fix arg passing to compat_sys_ipc(). 2007-04-13 13:27:08 -07:00
sys_sparc32.c [SPARC]: Add sys_fallocate() entries. 2007-07-19 21:26:47 -07:00
sys_sparc.c [SPARC64]: Fix bugs in SYSV IPC handling in 64-bit processes. 2007-10-13 21:53:12 -07:00
sys_sunos32.c [SPARC]: avoid CHILD_MAX and OPEN_MAX constants 2007-04-12 13:13:42 -07:00
sysfs.c [SPARC64]: More sensible udelay implementation. 2007-07-16 04:05:02 -07:00
systbls.S [SPARC]: Add sys_fallocate() entries. 2007-07-19 21:26:47 -07:00
time.c [SPARC/64]: Move of_platform_driver initialisations: arch/sparc{,64}. 2007-10-13 21:53:12 -07:00
trampoline.S [SPARC64]: Fix lockdep, particularly on SMP. 2007-09-16 11:51:15 -07:00
traps.c [SPARC64]: Access ivector_table[] using physical addresses. 2007-10-13 21:53:15 -07:00
tsb.S [SPARC64]: store-init needs trailing membar. 2007-03-19 13:27:33 -07:00
ttable.S [SPARC64]: Unify timer interrupt handler. 2007-04-26 01:54:11 -07:00
una_asm.S [SPARC64]: Mark __ex_table section correctly. 2006-03-04 23:23:56 -08:00
unaligned.c header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
us2e_cpufreq.c [CPUFREQ] move policy's governor initialisation out of low-level drivers into cpufreq core 2007-10-04 18:40:57 -04:00
us3_cpufreq.c [SPARC64]: kzalloc() conversion 2006-03-20 01:14:19 -08:00
vio.c [SPARC64]: VIO device addition log message level is too high. 2007-10-03 21:23:40 -07:00
viohs.c viohs: extern on function definition 2007-07-26 11:11:56 -07:00
visemul.c [SPARC64]: Call do_mathemu on illegal instruction traps too. 2006-12-10 02:39:32 -08:00
vmlinux.lds.S [SPARC64]: beautify vmlinux.lds 2007-10-13 21:53:10 -07:00
winfixup.S [SPARC64]: Fix unaligned access winfxup handling on SUN4V. 2006-03-20 01:13:39 -08:00