kernel-ark/arch/ppc64/kernel
Steven Rostedt 69be8f1896 [PATCH] convert signal handling of NODEFER to act like other Unix boxes.
It has been reported that the way Linux handles NODEFER for signals is
not consistent with the way other Unix boxes handle it.  I've written a
program to test the behavior of how this flag affects signals and had
several reports from people who ran this on various Unix boxes,
confirming that Linux seems to be unique on the way this is handled.

The way NODEFER affects signals on other Unix boxes is as follows:

1) If NODEFER is set, other signals in sa_mask are still blocked.

2) If NODEFER is set and the signal is in sa_mask, then the signal is
still blocked. (Note: this is the behavior of all tested but Linux _and_
NetBSD 2.0 *).

The way NODEFER affects signals on Linux:

1) If NODEFER is set, other signals are _not_ blocked regardless of
sa_mask (Even NetBSD doesn't do this).

2) If NODEFER is set and the signal is in sa_mask, then the signal being
handled is not blocked.

The patch converts signal handling in all current Linux architectures to
the way most Unix boxes work.

Unix boxes that were tested:  DU4, AIX 5.2, Irix 6.5, NetBSD 2.0, SFU
3.5 on WinXP, AIX 5.3, Mac OSX, and of course Linux 2.6.13-rcX.

* NetBSD was the only other Unix to behave like Linux on point #2. The
main concern was brought up by point #1 which even NetBSD isn't like
Linux.  So with this patch, we leave NetBSD as the lonely one that
behaves differently here with #2.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-29 10:03:11 -07:00
..
vdso32 [PATCH] ppc64: vdso32: fix link errors after recent toolchain changes 2005-07-07 18:23:36 -07:00
vdso64 [PATCH] ppc64: add PT_NOTE section to vDSO 2005-05-01 08:58:43 -07:00
align.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-offsets.c [PATCH] ppc64 iSeries: tidy up some includes and HvCall.h 2005-06-21 18:46:28 -07:00
binfmt_elf32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bitops.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bpa_iic.c [PATCH] ppc64: Add driver for BPA interrupt controllers 2005-06-23 09:43:43 +10:00
bpa_iic.h [PATCH] ppc64: Add driver for BPA interrupt controllers 2005-06-23 09:43:43 +10:00
bpa_iommu.c [PATCH] ppc64: Add driver for BPA iommu 2005-06-23 09:43:54 +10:00
bpa_iommu.h [PATCH] ppc64: Add driver for BPA iommu 2005-06-23 09:43:54 +10:00
bpa_nvram.c [PATCH] ppc64: add a minimal nvram driver 2005-06-23 09:43:31 +10:00
bpa_setup.c [PATCH] ppc64: Add driver for BPA iommu 2005-06-23 09:43:54 +10:00
btext.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpu_setup_power4.S [PATCH] ppc64: add 970MP PVR 2005-07-13 11:25:25 -07:00
cputable.c [PATCH] ppc64: add 970MP PVR 2005-07-13 11:25:25 -07:00
dma.c [PATCH] ppc64 iSeries: allow build with no PCI 2005-06-21 18:46:31 -07:00
eeh.c [PATCH] ppc64: Abolish ioremap_mm 2005-06-21 18:46:26 -07:00
entry.S [PATCH] ppc64: cleanup iseries runlight support 2005-06-02 15:12:30 -07:00
head.S [PATCH] iSeries build with newer assemblers and compilers 2005-08-16 21:06:25 -07:00
HvCall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hvCall.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hvconsole.c [PATCH] hvc_console: Separate the NUL character filtering from get_hvc_chars 2005-07-07 18:23:40 -07:00
hvcserver.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
HvLpConfig.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
HvLpEvent.c [PATCH] ppc64 iSeries: remove LparData.h 2005-06-21 18:46:27 -07:00
i8259.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i8259.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
idle_power4.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
idle.c [PATCH] ppc64: idle fixups 2005-07-07 18:23:41 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iomap.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iommu.c [PATCH] ppc64: iommu vmerge fix 2005-08-17 14:41:22 -07:00
irq.c Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6 2005-06-30 08:48:56 -07:00
iSeries_htab.c [PATCH] ppc64: kill bitfields in ppc64 hash code 2005-07-13 11:25:25 -07:00
iSeries_iommu.c [PATCH] ppc64 iSeries: allow build with no PCI 2005-06-21 18:46:31 -07:00
iSeries_irq.c [PATCH] ppc64 iSeries: tidy up irq code after merge 2005-06-21 18:46:30 -07:00
iSeries_pci.c [PATCH] ppc64 iSeries: remove some more members of iSeries_Device_Node 2005-06-21 18:46:30 -07:00
iSeries_proc.c [PATCH] ppc64: Move xItLpQueue proc code into ItLpQueue.c 2005-06-30 15:08:44 +10:00
iSeries_setup.c [PATCH] ppc64: kill bitfields in ppc64 hash code 2005-07-13 11:25:25 -07:00
iSeries_setup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iSeries_smp.c [PATCH] ppc64 iSeries: eliminate some unused inline functions 2005-06-21 18:46:28 -07:00
iSeries_VpdInfo.c [PATCH] ppc64 iSeries: remove some more members of iSeries_Device_Node 2005-06-21 18:46:30 -07:00
ItLpQueue.c [PATCH] ppc64: Replace custom locking code with a spinlock 2005-06-30 15:17:02 +10:00
kprobes.c [PATCH] kprobes: fix namespace problem and sparc64 build 2005-07-05 19:19:00 -07:00
lmb.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lparcfg.c [PATCH] ppc64: Fix compile warnings in arch/ppc64/kernel/lparcfg.c 2005-06-25 16:24:27 -07:00
LparData.c [PATCH] iSeries build with newer assemblers and compilers 2005-08-16 21:06:25 -07:00
lparmap.c [PATCH] iSeries build with newer assemblers and compilers 2005-08-16 21:06:25 -07:00
machine_kexec.c [PATCH] ppc64: fix for kexec boot issue 2005-08-04 13:00:55 -07:00
Makefile [PATCH] iSeries build with newer assemblers and compilers 2005-08-16 21:06:25 -07:00
maple_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
maple_setup.c [PATCH] ppc64: Fixup platforms for new ppc_md.idle 2005-07-07 18:23:41 -07:00
maple_time.c [PATCH] ppc64: consolidate calibrate_decr implementations 2005-06-23 09:43:07 +10:00
mf.c [PATCH] ppc64: Don't count number of events processed for caller 2005-06-30 15:15:53 +10:00
misc.S [PATCH] ppc64: inotify syscalls 2005-07-30 10:14:46 -07:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpic.c [PATCH] ppc64: fix for kexec boot issue 2005-08-04 13:00:55 -07:00
mpic.h [PATCH] ppc64: fix for kexec boot issue 2005-08-04 13:00:55 -07:00
nvram.c [PATCH] ppc64: simplify nvram partition scanning code 2005-06-28 20:33:49 +10:00
of_device.c [PATCH] openfirmware: generate device table for userspace 2005-07-06 12:55:20 -07:00
pacaData.c [PATCH] ppc64: Reorganise the paca initialisation macros 2005-06-30 15:07:48 +10:00
pci_direct_iommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci_dn.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci_iommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.c [PATCH] pci and yenta: pcibios_bus_to_resource 2005-08-04 21:32:46 -07:00
pci.h [PATCH] pSeries - read irqs dynamically 2005-06-23 17:09:54 +10:00
pmac_feature.c [PATCH] ppc64: very basic desktop g5 sound support 2005-04-16 15:24:32 -07:00
pmac_low_i2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_setup.c [PATCH] make a few functions static in pmac_setup.c 2005-07-27 16:25:57 -07:00
pmac_smp.c [PATCH] ppc64: Fix g5 hw timebase sync 2005-05-23 11:51:24 -07:00
pmac_time.c [PATCH] ppc64: consolidate calibrate_decr implementations 2005-06-23 09:43:07 +10:00
pmac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmc.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppc_ksyms.c [PATCH] ppc64: Add missing exports 2005-06-27 15:11:43 -07:00
proc_ppc64.c [PATCH] ppc64: add BPA platform type 2005-06-23 09:43:37 +10:00
process.c [PATCH] Return probe redesign: ppc64 specific implementation 2005-06-27 15:23:53 -07:00
prom_init.c [PATCH] ppc64: Fix Fan control for new PowerMac G5 2.7GHz machines 2005-08-10 11:07:40 -07:00
prom.c [PATCH] ppc64: Fix CONFIG_ALTIVEC not set 2005-08-01 19:14:00 -07:00
pSeries_hvCall.S [PATCH] ppc64: enforce medium thread priority in hypervisor calls 2005-05-01 08:58:46 -07:00
pSeries_iommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pSeries_lpar.c [PATCH] ppc64: kill bitfields in ppc64 hash code 2005-07-13 11:25:25 -07:00
pSeries_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pSeries_pci.c [PATCH] pSeries - read irqs dynamically 2005-06-23 17:09:54 +10:00
pSeries_reconfig.c [PATCH] ppc32/ppc64: cleanup /proc/device-tree 2005-06-01 07:54:14 -07:00
pSeries_setup.c [PATCH] ppc64: pSeries idle fixups 2005-07-07 18:23:41 -07:00
pSeries_smp.c [PATCH] i386 CPU hotplug 2005-06-25 16:24:29 -07:00
ptrace32.c [PATCH] convert that currently tests _NSIG directly to use valid_signal() 2005-05-01 08:59:14 -07:00
ptrace.c [PATCH] ppc64: fix seccomp with 32-bit userland 2005-06-24 00:05:18 -07:00
ras.c [PATCH] ppc64 iSeries: remove LparData.h 2005-06-21 18:46:27 -07:00
rtas_flash.c [PATCH] ppc64: trivial user annotations 2005-04-26 11:26:53 -07:00
rtas_pci.c [PATCH] ppc64: Split out generic rtas code from pSeries_pci.c. 2005-06-23 09:43:23 +10:00
rtas-proc.c [PATCH] ppc64: pSeries_progress -> rtas_progress 2005-06-23 09:43:28 +10:00
rtas.c [PATCH] correct printing to operator panel 2005-06-23 16:09:41 +10:00
rtasd.c [PATCH] ppc64: quieten RTAS printks 2005-06-20 21:43:07 +10:00
rtc.c [PATCH] ppc64: rename pSeries rtc functions into rtas_* 2005-06-23 09:43:18 +10:00
scanlog.c [PATCH] ppc64: trivial user annotations 2005-04-26 11:26:53 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c [PATCH] ppc64: Export machine_power_off for therm_pm72 module 2005-08-24 09:41:35 -07:00
signal32.c [PATCH] convert signal handling of NODEFER to act like other Unix boxes. 2005-08-29 10:03:11 -07:00
signal.c [PATCH] convert signal handling of NODEFER to act like other Unix boxes. 2005-08-29 10:03:11 -07:00
smp-tbsync.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.c [PATCH] ppc64: dynamically allocate segment tables 2005-07-27 16:25:58 -07:00
spider-pic.c [PATCH] ppc64: Add driver for BPA interrupt controllers 2005-06-23 09:43:43 +10:00
sys_ppc32.c [PATCH] ppc64: add ioprio syscalls 2005-07-07 18:23:37 -07:00
syscalls.c [PATCH] ppc64: Fix PER_LINUX32 behaviour 2005-06-08 16:24:15 -07:00
sysfs.c [PATCH] ppc64: silence perfmon exception warnings 2005-07-07 18:23:42 -07:00
time.c [PATCH] ppc64: Don't count number of events processed for caller 2005-06-30 15:15:53 +10:00
traps.c [PATCH] ppc64: add BPA platform type 2005-06-23 09:43:37 +10:00
u3_iommu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
udbg.c [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
vdso.c [PATCH] ppc64: Improve mapping of vDSO 2005-04-16 15:24:35 -07:00
vecemu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vector.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vio.c [PATCH] ppc64: tidy up vio devices fake parent 2005-06-21 18:46:31 -07:00
viopath.c [PATCH] ppc64 iSeries: misc header cleanups 2005-06-21 18:46:28 -07:00
vmlinux.lds.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xics.c [PATCH] ppc64: fix for kexec boot issue 2005-08-04 13:00:55 -07:00