diff options
| -rw-r--r-- | arch/parisc/include/asm/compat.h | 7 | ||||
| -rw-r--r-- | arch/parisc/kernel/signal32.c | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/parisc/include/asm/compat.h b/arch/parisc/include/asm/compat.h index 0448a2c8eafb..3387307cc33e 100644 --- a/arch/parisc/include/asm/compat.h +++ b/arch/parisc/include/asm/compat.h | |||
| @@ -183,6 +183,13 @@ typedef struct compat_siginfo { | |||
| 183 | int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ | 183 | int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ |
| 184 | int _fd; | 184 | int _fd; |
| 185 | } _sigpoll; | 185 | } _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; | ||
| 186 | } _sifields; | 193 | } _sifields; |
| 187 | } compat_siginfo_t; | 194 | } compat_siginfo_t; |
| 188 | 195 | ||
diff --git a/arch/parisc/kernel/signal32.c b/arch/parisc/kernel/signal32.c index 984abbee71ca..c342b2e17492 100644 --- a/arch/parisc/kernel/signal32.c +++ b/arch/parisc/kernel/signal32.c | |||
| @@ -371,6 +371,11 @@ copy_siginfo_to_user32 (compat_siginfo_t __user *to, const siginfo_t *from) | |||
| 371 | val = (compat_int_t)from->si_int; | 371 | val = (compat_int_t)from->si_int; |
| 372 | err |= __put_user(val, &to->si_int); | 372 | err |= __put_user(val, &to->si_int); |
| 373 | break; | 373 | 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; | ||
| 374 | } | 379 | } |
| 375 | } | 380 | } |
| 376 | return err; | 381 | return err; |
