linux-sg2042/arch
Bernd Schmidt c824498db4 Blackfin arch: fix signal handling bug
There's a forum thread at
https://blackfin.uclinux.org/gf/project/uclinux-dist/forum/?action=ForumBrowse&_forum_action=MessageReply&message_id=24741

which has a testcase involving signal handling that crashes quite readily.
Inspecting the code I believe what happens is that signal handling can become
confused when it is invoked on return from an interrupt, if the contents of
P0 and R0 at the time of the interrupt happen to be such that P0 is larger
than zero (indicating to the signal code that we're in a syscall), and R0
happens to have a value of something like -EINTR or -ERESTARTSYS.
Fixed by setting orig_p0 to -1 if we're returning from an interrupt.  The
testcase now seems to run without problems.

Signed-off-by: Bernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-21 09:50:23 -07:00
..
alpha utimensat implementation 2007-05-08 11:15:18 -07:00
arm Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
arm26 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
avr32 [AVR32] Implement platform hooks for atmel_lcdfb driver 2007-05-15 14:13:27 +02:00
blackfin Blackfin arch: fix signal handling bug 2007-05-21 09:50:23 -07:00
cris Fix trivial typos in Kconfig* files 2007-05-09 07:12:20 +02:00
frv Slab allocators: define common size limitations 2007-05-17 05:23:04 -07:00
h8300 h8300 syscall update 2007-05-11 08:29:33 -07:00
i386 Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
ia64 [IA64] optimize pagefaults a little 2007-05-16 09:00:51 -07:00
m32r m32r: fix tme_handler to check _PAGE_PRESENT bit 2007-05-11 08:29:33 -07:00
m68k m68k: implement __clear_user() 2007-05-15 08:54:00 -07:00
m68knommu Slab allocators: define common size limitations 2007-05-17 05:23:04 -07:00
mips Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
parisc Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
powerpc Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
ppc [PPC] MCC2 missing in MPC826x device_list 2007-05-17 21:10:17 +10:00
s390 [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
sh Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2007-05-09 13:08:20 -07:00
sh64 sh64: Add .gitignore entry for syscalltab. 2007-05-14 10:15:18 +09:00
sparc [SPARC32]: Update defconfig. 2007-05-14 03:53:12 -07:00
sparc64 [SPARC64]: Fix sched_clock() et al. 2007-05-17 22:55:26 -07:00
um fix uml-x86_64 2007-05-15 18:56:37 -07:00
v850 Slab allocators: define common size limitations 2007-05-17 05:23:04 -07:00
x86_64 Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00
xtensa Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-05-09 12:54:17 -07:00