Skip to content

Commit 4f4acc9

Browse files
committed
parisc: Fix SIGSYS signals in compat case
Signed-off-by: Helge Deller <[email protected]> Cc: [email protected] # v4.5
1 parent b562e44 commit 4f4acc9

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

arch/parisc/include/asm/compat.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,13 @@ typedef struct compat_siginfo {
183183
int _band; /* POLL_IN, POLL_OUT, POLL_MSG */
184184
int _fd;
185185
} _sigpoll;
186+
187+
/* SIGSYS */
188+
struct {
189+
compat_uptr_t _call_addr; /* calling user insn */
190+
int _syscall; /* triggering system call number */
191+
compat_uint_t _arch; /* AUDIT_ARCH_* of syscall */
192+
} _sigsys;
186193
} _sifields;
187194
} compat_siginfo_t;
188195

arch/parisc/kernel/signal32.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,11 @@ copy_siginfo_to_user32 (compat_siginfo_t __user *to, const siginfo_t *from)
371371
val = (compat_int_t)from->si_int;
372372
err |= __put_user(val, &to->si_int);
373373
break;
374+
case __SI_SYS >> 16:
375+
err |= __put_user(ptr_to_compat(from->si_call_addr), &to->si_call_addr);
376+
err |= __put_user(from->si_syscall, &to->si_syscall);
377+
err |= __put_user(from->si_arch, &to->si_arch);
378+
break;
374379
}
375380
}
376381
return err;

0 commit comments

Comments
 (0)