aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/trap.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um/kernel/trap.c')
-rw-r--r--arch/um/kernel/trap.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index ac70fa5a2e2a..e5eeaf2b6af1 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -227,9 +227,16 @@ void bad_segv(struct faultinfo fi, unsigned long ip)
227 227
228void relay_signal(int sig, union uml_pt_regs *regs) 228void relay_signal(int sig, union uml_pt_regs *regs)
229{ 229{
230 if(arch_handle_signal(sig, regs)) return; 230 if(arch_handle_signal(sig, regs))
231 if(!UPT_IS_USER(regs)) 231 return;
232
233 if(!UPT_IS_USER(regs)){
234 if(sig == SIGBUS)
235 printk("Bus error - the /dev/shm or /tmp mount likely "
236 "just ran out of space\n");
232 panic("Kernel mode signal %d", sig); 237 panic("Kernel mode signal %d", sig);
238 }
239
233 current->thread.arch.faultinfo = *UPT_FAULTINFO(regs); 240 current->thread.arch.faultinfo = *UPT_FAULTINFO(regs);
234 force_sig(sig, current); 241 force_sig(sig, current);
235} 242}