Commit 8215ade82d699be33a2fa545bceca29c95fcfa47

Authored by Richard Weinberger
Committed by Richard Weinberger
1 parent 615869e40b

cris: Use sigsp()

Use sigsp() instead of the open coded variant.

Signed-off-by: Richard Weinberger <richard@nod.at>

Showing 2 changed files with 8 additions and 22 deletions Side-by-side Diff

arch/cris/arch-v10/kernel/signal.c
... ... @@ -203,16 +203,10 @@
203 203 * - usually on the stack. */
204 204  
205 205 static inline void __user *
206   -get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size)
  206 +get_sigframe(struct ksignal *ksig, size_t frame_size)
207 207 {
208   - unsigned long sp = rdusp();
  208 + unsigned long sp = sigsp(rdusp(), ksig);
209 209  
210   - /* This is the X/Open sanctioned signal stack switching. */
211   - if (ka->sa.sa_flags & SA_ONSTACK) {
212   - if (! on_sig_stack(sp))
213   - sp = current->sas_ss_sp + current->sas_ss_size;
214   - }
215   -
216 210 /* make sure the frame is dword-aligned */
217 211  
218 212 sp &= ~3;
... ... @@ -235,7 +229,7 @@
235 229 unsigned long return_ip;
236 230 int err = 0;
237 231  
238   - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame));
  232 + frame = get_sigframe(ksig, sizeof(*frame));
239 233  
240 234 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
241 235 return -EFAULT;
... ... @@ -287,7 +281,7 @@
287 281 unsigned long return_ip;
288 282 int err = 0;
289 283  
290   - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame));
  284 + frame = get_sigframe(ksig, sizeof(*frame));
291 285  
292 286 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
293 287 return -EFAULT;
arch/cris/arch-v32/kernel/signal.c
... ... @@ -189,18 +189,10 @@
189 189  
190 190 /* Figure out where to put the new signal frame - usually on the stack. */
191 191 static inline void __user *
192   -get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size)
  192 +get_sigframe(struct ksignal *ksig, size_t frame_size)
193 193 {
194   - unsigned long sp;
  194 + unsigned long sp = sigsp(rdusp(), ksig);
195 195  
196   - sp = rdusp();
197   -
198   - /* This is the X/Open sanctioned signal stack switching. */
199   - if (ka->sa.sa_flags & SA_ONSTACK) {
200   - if (!on_sig_stack(sp))
201   - sp = current->sas_ss_sp + current->sas_ss_size;
202   - }
203   -
204 196 /* Make sure the frame is dword-aligned. */
205 197 sp &= ~3;
206 198  
... ... @@ -222,7 +214,7 @@
222 214 struct signal_frame __user *frame;
223 215  
224 216 err = 0;
225   - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame));
  217 + frame = get_sigframe(ksig, sizeof(*frame));
226 218  
227 219 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
228 220 return -EFAULT;
... ... @@ -290,7 +282,7 @@
290 282 struct rt_signal_frame __user *frame;
291 283  
292 284 err = 0;
293   - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame));
  285 + frame = get_sigframe(ksig, sizeof(*frame));
294 286  
295 287 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
296 288 return -EFAULT;