--- linux-2.6.16.20/arch/sh/kernel/signal.c_orig 2006-06-08 23:52:12.000000000 +0000 +++ linux-2.6.16.20/arch/sh/kernel/signal.c 2006-06-08 23:58:27.000000000 +0000 @@ -33,7 +33,7 @@ #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) -asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset); +asmlinkage int do_signal(volatile struct pt_regs *regs, sigset_t *oldset); /* * Atomically swap in the new signal mask, and wait for a signal. @@ -41,7 +41,7 @@ asmlinkage int sys_sigsuspend(old_sigset_t mask, unsigned long r5, unsigned long r6, unsigned long r7, - struct pt_regs regs) + volatile struct pt_regs regs) { sigset_t saveset; @@ -64,7 +64,7 @@ asmlinkage int sys_rt_sigsuspend(sigset_t *unewset, size_t sigsetsize, unsigned long r6, unsigned long r7, - struct pt_regs regs) + volatile struct pt_regs regs) { sigset_t saveset, newset; @@ -92,7 +92,7 @@ asmlinkage int sys_sigaction(int sig, const struct old_sigaction __user *act, - struct old_sigaction __user *oact) + volatile struct old_sigaction __user *oact) { struct k_sigaction new_ka, old_ka; int ret; @@ -125,7 +125,7 @@ asmlinkage int sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss, unsigned long r6, unsigned long r7, - struct pt_regs regs) + volatile struct pt_regs regs) { return do_sigaltstack(uss, uoss, regs.regs[15]); } @@ -232,7 +232,7 @@ asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7, - struct pt_regs regs) + volatile struct pt_regs regs) { struct sigframe __user *frame = (struct sigframe __user *)regs.regs[15]; sigset_t set; @@ -265,7 +265,7 @@ asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5, unsigned long r6, unsigned long r7, - struct pt_regs regs) + volatile struct pt_regs regs) { struct rt_sigframe __user *frame = (struct rt_sigframe __user *)regs.regs[15]; sigset_t set;