Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 100024
b: refs/heads/master
c: a7bbb0c
h: refs/heads/master
v: v3
  • Loading branch information
Alexander van Heukelum authored and Ingo Molnar committed Jul 9, 2008
1 parent 522ff56 commit 5eb7609
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 29 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: e423f49fc8ccd761618748d7139638d8ddc1d16f
refs/heads/master: a7bbb0ce1d1f956c8491b925c74767adf654f373
56 changes: 28 additions & 28 deletions trunk/arch/x86/kernel/traps_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -630,38 +630,38 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
{
struct task_struct *tsk = current;

if (user_mode(regs)) {
/*
* We want error_code and trap_no set for userspace
* faults and kernelspace faults which result in
* die(), but not kernelspace faults which are fixed
* up. die() gives the process no chance to handle
* the signal and notice the kernel fault information,
* so that won't result in polluting the information
* about previously queued, but not yet delivered,
* faults. See also do_general_protection below.
*/
tsk->thread.error_code = error_code;
tsk->thread.trap_no = trapnr;

if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
printk_ratelimit()) {
printk(KERN_INFO
"%s[%d] trap %s ip:%lx sp:%lx error:%lx",
tsk->comm, tsk->pid, str,
regs->ip, regs->sp, error_code);
print_vma_addr(" in ", regs->ip);
printk("\n");
}
if (!user_mode(regs))
goto kernel_trap;

if (info)
force_sig_info(signr, info, tsk);
else
force_sig(signr, tsk);
return;
/*
* We want error_code and trap_no set for userspace faults and
* kernelspace faults which result in die(), but not
* kernelspace faults which are fixed up. die() gives the
* process no chance to handle the signal and notice the
* kernel fault information, so that won't result in polluting
* the information about previously queued, but not yet
* delivered, faults. See also do_general_protection below.
*/
tsk->thread.error_code = error_code;
tsk->thread.trap_no = trapnr;

if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
printk_ratelimit()) {
printk(KERN_INFO
"%s[%d] trap %s ip:%lx sp:%lx error:%lx",
tsk->comm, tsk->pid, str,
regs->ip, regs->sp, error_code);
print_vma_addr(" in ", regs->ip);
printk("\n");
}

if (info)
force_sig_info(signr, info, tsk);
else
force_sig(signr, tsk);
return;

kernel_trap:
if (!fixup_exception(regs)) {
tsk->thread.error_code = error_code;
tsk->thread.trap_no = trapnr;
Expand Down

0 comments on commit 5eb7609

Please sign in to comment.