* [PATCH] UML - Fix a signal race
@ 2004-09-14 7:27 Jeff Dike
0 siblings, 0 replies; only message in thread
From: Jeff Dike @ 2004-09-14 7:27 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel
This patch saves and restores UML's idea of user mode across an interrupt.
Without this, an interrupt arriving at the wrong time can cause UML to lose
track of whether an interrupted handler is handing a userspace interrupt.
>From Ingo Molnar
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Index: 2.6.9-rc2/arch/um/kernel/skas/trap_user.c
===================================================================
--- 2.6.9-rc2.orig/arch/um/kernel/skas/trap_user.c 2004-09-14 02:03:52.000000000 -0400
+++ 2.6.9-rc2/arch/um/kernel/skas/trap_user.c 2004-09-14 02:04:00.000000000 -0400
@@ -19,8 +19,10 @@
struct skas_regs *r;
struct signal_info *info;
int save_errno = errno;
+ int save_user;
r = &TASK_REGS(get_current())->skas;
+ save_user = r->is_user;
r->is_user = 0;
r->fault_addr = SC_FAULT_ADDR(sc);
r->fault_type = SC_FAULT_TYPE(sc);
@@ -33,6 +35,7 @@
(*info->handler)(sig, (union uml_pt_regs *) r);
errno = save_errno;
+ r->is_user = save_user;
}
void user_signal(int sig, union uml_pt_regs *regs)
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2004-09-14 6:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-14 7:27 [PATCH] UML - Fix a signal race Jeff Dike
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®