summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/um/os-Linux/skas/process.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index ae2aea062f06..97c2f964f5fc 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -163,12 +163,6 @@ static void get_skas_faultinfo(int pid, struct faultinfo *fi)
memcpy(fi, (void *)current_stub_stack(), sizeof(*fi));
}
-static void handle_segv(int pid, struct uml_pt_regs *regs)
-{
- get_skas_faultinfo(pid, &regs->faultinfo);
- segv(regs->faultinfo, 0, 1, NULL, NULL);
-}
-
static void handle_trap(int pid, struct uml_pt_regs *regs)
{
if ((UPT_IP(regs) >= STUB_START) && (UPT_IP(regs) < STUB_END))
@@ -521,13 +515,14 @@ void userspace(struct uml_pt_regs *regs)
switch (sig) {
case SIGSEGV:
- if (PTRACE_FULL_FAULTINFO) {
- get_skas_faultinfo(pid,
- &regs->faultinfo);
+ get_skas_faultinfo(pid, &regs->faultinfo);
+
+ if (PTRACE_FULL_FAULTINFO)
(*sig_info[SIGSEGV])(SIGSEGV, (struct siginfo *)&si,
regs, NULL);
- }
- else handle_segv(pid, regs);
+ else
+ segv(regs->faultinfo, 0, 1, NULL, NULL);
+
break;
case SIGTRAP + 0x80:
handle_trap(pid, regs);