memcpy(fi, (void *)current_stub_stack(), sizeof(*fi));
}
-static void handle_segv(int pid, struct uml_pt_regs *regs)
-{
- get_skas_faultinfo(pid, ®s->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))
switch (sig) {
case SIGSEGV:
- if (PTRACE_FULL_FAULTINFO) {
- get_skas_faultinfo(pid,
- ®s->faultinfo);
+ get_skas_faultinfo(pid, ®s->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);