diff options
Diffstat (limited to 'arch/um/kernel/trap.c')
-rw-r--r-- | arch/um/kernel/trap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index b2b02df9896e..d4d38520c4c6 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c | |||
@@ -164,6 +164,7 @@ static void bad_segv(struct faultinfo fi, unsigned long ip) | |||
164 | { | 164 | { |
165 | struct siginfo si; | 165 | struct siginfo si; |
166 | 166 | ||
167 | clear_siginfo(&si); | ||
167 | si.si_signo = SIGSEGV; | 168 | si.si_signo = SIGSEGV; |
168 | si.si_code = SEGV_ACCERR; | 169 | si.si_code = SEGV_ACCERR; |
169 | si.si_addr = (void __user *) FAULT_ADDRESS(fi); | 170 | si.si_addr = (void __user *) FAULT_ADDRESS(fi); |
@@ -220,6 +221,7 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user, | |||
220 | int is_write = FAULT_WRITE(fi); | 221 | int is_write = FAULT_WRITE(fi); |
221 | unsigned long address = FAULT_ADDRESS(fi); | 222 | unsigned long address = FAULT_ADDRESS(fi); |
222 | 223 | ||
224 | clear_siginfo(&si); | ||
223 | if (!is_user && regs) | 225 | if (!is_user && regs) |
224 | current->thread.segv_regs = container_of(regs, struct pt_regs, regs); | 226 | current->thread.segv_regs = container_of(regs, struct pt_regs, regs); |
225 | 227 | ||