linux/arch
David Howells 283828f3c1 [PATCH] Handle TIF_RESTORE_SIGMASK for i386
Handle TIF_RESTORE_SIGMASK as added by David Woodhouse's patch entitled:

        [PATCH] 2/3 Add TIF_RESTORE_SIGMASK support for arch/powerpc
        [PATCH] 3/3 Generic sys_rt_sigsuspend

It does the following:

 (1) Declares TIF_RESTORE_SIGMASK for i386.

 (2) Invokes it over to do_signal() when TIF_RESTORE_SIGMASK is set.

 (3) Makes do_signal() support TIF_RESTORE_SIGMASK, using the signal mask saved
     in current->saved_sigmask.

 (4) Discards sys_rt_sigsuspend() from the arch, using the generic one instead.

 (5) Makes sys_sigsuspend() save the signal mask and set TIF_RESTORE_SIGMASK
     rather than attempting to fudge the return registers.

 (6) Makes sys_sigsuspend() return -ERESTARTNOHAND rather than looping
     intrinsically.

 (7) Makes setup_frame(), setup_rt_frame() and handle_signal() return 0 or
     -EFAULT rather than true/false to be consistent with the rest of the
     kernel.

Due to the fact do_signal() is then only called from one place:

 (8) Makes do_signal() no longer have a return value is it was just being
     ignored; force_sig() takes care of this.

 (9) Discards the old sigmask argument to do_signal() as it's no longer
     necessary.

(10) Makes do_signal() static.

(11) Marks the second argument to do_notify_resume() as unused. The unused
     argument should remain in the middle as the arguments are passed in as
     registers, and the ordering is specific in entry.S

Given the way do_signal() is now no longer called from sys_{,rt_}sigsuspend(),
they no longer need access to the exception frame, and so can just take
arguments normally.

This patch depends on sys_rt_sigsuspend patch.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-18 19:20:29 -08:00
..
alpha [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
arm Merge master.kernel.org:/home/rmk/linux-2.6-arm 2006-01-18 15:18:53 -08:00
arm26 [PATCH] arm26: s/task_threas_info/task_thread_info/ 2006-01-16 23:15:27 -08:00
cris [PATCH] cris: task_thread_info() 2006-01-12 09:08:58 -08:00
frv [PATCH] Handle TIF_RESTORE_SIGMASK for FRV 2006-01-18 19:20:29 -08:00
h8300 [PATCH] h8300: task_stack_page() 2006-01-12 09:08:55 -08:00
i386 [PATCH] Handle TIF_RESTORE_SIGMASK for i386 2006-01-18 19:20:29 -08:00
ia64 [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
m32r [PATCH] m32r: task_pt_regs(), task_stack_page(), task_thread_info() 2006-01-12 09:08:54 -08:00
m68k [PATCH] m68k: console code in head.S needs framebuffer support built in 2006-01-12 09:09:06 -08:00
m68knommu [PATCH] m68knommu: task_stack_page() 2006-01-12 09:08:55 -08:00
mips [PATCH] mips: add pm_power_off 2006-01-16 23:15:26 -08:00
parisc [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
powerpc [PATCH] Generic sys_rt_sigsuspend() 2006-01-18 19:20:29 -08:00
ppc [PATCH] e1000: Added disable packet split capability 2006-01-18 16:17:57 -05:00
s390 [PATCH] s390: cputime misaccounting 2006-01-14 18:27:09 -08:00
sh [PATCH] sh: Move CPU subtype configuration to its own Kconfig 2006-01-16 23:15:28 -08:00
sh64 [PATCH] sh64: task_stack_page() 2006-01-12 09:08:57 -08:00
sparc [SPARC]: change if() BUG(); to BUG_ON in iommu.c 2006-01-17 15:36:05 -08:00
sparc64 [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
um [PATCH] uml ubd code: fix a bit of whitespace 2006-01-18 19:20:21 -08:00
v850 [PATCH] v850: task_stack_page(), task_pt_regs() 2006-01-12 09:08:54 -08:00
x86_64 [PATCH] vfs: *at functions: x86_64 2006-01-18 19:20:29 -08:00
xtensa [PATCH] xtensa: task_pt_regs(), task_stack_page() 2006-01-12 09:08:54 -08:00