hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/arch/ia64/kernel/brl_emu.c
....@@ -58,11 +58,9 @@
5858 unsigned long bundle[2];
5959 unsigned long opcode, btype, qp, offset, cpl;
6060 unsigned long next_ip;
61
- struct siginfo siginfo;
6261 struct illegal_op_return rv;
6362 long tmp_taken, unimplemented_address;
6463
65
- clear_siginfo(&siginfo);
6664 rv.fkt = (unsigned long) -1;
6765
6866 /*
....@@ -198,39 +196,22 @@
198196 * The target address contains unimplemented bits.
199197 */
200198 printk(KERN_DEBUG "Woah! Unimplemented Instruction Address Trap!\n");
201
- siginfo.si_signo = SIGILL;
202
- siginfo.si_errno = 0;
203
- siginfo.si_flags = 0;
204
- siginfo.si_isr = 0;
205
- siginfo.si_imm = 0;
206
- siginfo.si_code = ILL_BADIADDR;
207
- force_sig_info(SIGILL, &siginfo, current);
199
+ force_sig_fault(SIGILL, ILL_BADIADDR, (void __user *)NULL,
200
+ 0, 0, 0);
208201 } else if (ia64_psr(regs)->tb) {
209202 /*
210203 * Branch Tracing is enabled.
211204 * Force a taken branch signal.
212205 */
213
- siginfo.si_signo = SIGTRAP;
214
- siginfo.si_errno = 0;
215
- siginfo.si_code = TRAP_BRANCH;
216
- siginfo.si_flags = 0;
217
- siginfo.si_isr = 0;
218
- siginfo.si_addr = 0;
219
- siginfo.si_imm = 0;
220
- force_sig_info(SIGTRAP, &siginfo, current);
206
+ force_sig_fault(SIGTRAP, TRAP_BRANCH, (void __user *)NULL,
207
+ 0, 0, 0);
221208 } else if (ia64_psr(regs)->ss) {
222209 /*
223210 * Single Step is enabled.
224211 * Force a trace signal.
225212 */
226
- siginfo.si_signo = SIGTRAP;
227
- siginfo.si_errno = 0;
228
- siginfo.si_code = TRAP_TRACE;
229
- siginfo.si_flags = 0;
230
- siginfo.si_isr = 0;
231
- siginfo.si_addr = 0;
232
- siginfo.si_imm = 0;
233
- force_sig_info(SIGTRAP, &siginfo, current);
213
+ force_sig_fault(SIGTRAP, TRAP_TRACE, (void __user *)NULL,
214
+ 0, 0, 0);
234215 }
235216 return rv;
236217 }