Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 163521
b: refs/heads/master
c: 2fc742f
h: refs/heads/master
i:
  163519: d169526
v: v3
  • Loading branch information
Carl Shaw authored and Paul Mundt committed Aug 24, 2009
1 parent 162f82a commit faa444c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5a0ab35e43a6e3c69893c0091fe6a78ea8b3e443
refs/heads/master: 2fc742f8d64c68b4a175a1dcb28351b112d63315
12 changes: 11 additions & 1 deletion trunk/arch/sh/kernel/signal_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ struct fdpic_func_descriptor {
unsigned long GOT;
};

/*
* The following define adds a 64 byte gap between the signal
* stack frame and previous contents of the stack. This allows
* frame unwinding in a function epilogue but only if a frame
* pointer is used in the function. This is necessary because
* current gcc compilers (<4.3) do not generate unwind info on
* SH for function epilogues.
*/
#define UNWINDGUARD 64

/*
* Atomically swap in the new signal mask, and wait for a signal.
*/
Expand Down Expand Up @@ -327,7 +337,7 @@ get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size)
sp = current->sas_ss_sp + current->sas_ss_size;
}

return (void __user *)((sp - frame_size) & -8ul);
return (void __user *)((sp - (frame_size+UNWINDGUARD)) & -8ul);
}

/* These symbols are defined with the addresses in the vsyscall page.
Expand Down

0 comments on commit faa444c

Please sign in to comment.