diff options
Diffstat (limited to 'arch/parisc/kernel/traps.c')
| -rw-r--r-- | arch/parisc/kernel/traps.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 15914f0235a0..ff200608c851 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
| @@ -193,10 +193,9 @@ void show_stack(struct task_struct *task, unsigned long *s) | |||
| 193 | 193 | ||
| 194 | HERE: | 194 | HERE: |
| 195 | asm volatile ("copy %%r30, %0" : "=r"(sp)); | 195 | asm volatile ("copy %%r30, %0" : "=r"(sp)); |
| 196 | r = (struct pt_regs *)kmalloc(sizeof(struct pt_regs), GFP_KERNEL); | 196 | r = kzalloc(sizeof(struct pt_regs), GFP_KERNEL); |
| 197 | if (!r) | 197 | if (!r) |
| 198 | return; | 198 | return; |
| 199 | memset(r, 0, sizeof(struct pt_regs)); | ||
| 200 | r->iaoq[0] = (unsigned long)&&HERE; | 199 | r->iaoq[0] = (unsigned long)&&HERE; |
| 201 | r->gr[2] = (unsigned long)__builtin_return_address(0); | 200 | r->gr[2] = (unsigned long)__builtin_return_address(0); |
| 202 | r->gr[30] = sp; | 201 | r->gr[30] = sp; |
