Commit 8215ade82d699be33a2fa545bceca29c95fcfa47
Committed by
Richard Weinberger
1 parent
615869e40b
Exists in
ti-lsk-linux-4.1.y
and in
10 other branches
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; |