aboutsummaryrefslogtreecommitdiff
path: root/arch/i386/mm/fault.c
diff options
context:
space:
mode:
authorSteve French <sfrench@hera.kernel.org>2005-06-30 20:57:39 -0700
committerSteve French <sfrench@hera.kernel.org>2005-06-30 20:57:39 -0700
commitab997aaeb9cf7a0da1cecc46c5bb6c7262416917 (patch)
treeb8a09ed676101a2478d17c1d71da1274293c3c64 /arch/i386/mm/fault.c
parentfa5cfae37799177769e9ae2c0527fbdfea462fa9 (diff)
parentbd53d1270f51c6cfb53b06c8f93fd42327871d6b (diff)
Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'arch/i386/mm/fault.c')
-rw-r--r--arch/i386/mm/fault.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/i386/mm/fault.c b/arch/i386/mm/fault.c
index a509237c481..8e90339d6ea 100644
--- a/arch/i386/mm/fault.c
+++ b/arch/i386/mm/fault.c
@@ -146,7 +146,7 @@ static int __is_prefetch(struct pt_regs *regs, unsigned long addr)
if (instr > limit)
break;
- if (__get_user(opcode, (unsigned char *) instr))
+ if (__get_user(opcode, (unsigned char __user *) instr))
break;
instr_hi = opcode & 0xf0;
@@ -173,7 +173,7 @@ static int __is_prefetch(struct pt_regs *regs, unsigned long addr)
scan_more = 0;
if (instr > limit)
break;
- if (__get_user(opcode, (unsigned char *) instr))
+ if (__get_user(opcode, (unsigned char __user *) instr))
break;
prefetch = (instr_lo == 0xF) &&
(opcode == 0x0D || opcode == 0x18);
@@ -463,6 +463,9 @@ no_context:
printk(KERN_ALERT "*pte = %08lx\n", page);
}
#endif
+ tsk->thread.cr2 = address;
+ tsk->thread.trap_no = 14;
+ tsk->thread.error_code = error_code;
die("Oops", regs, error_code);
bust_spinlocks(0);
do_exit(SIGKILL);