From b498bb2cdb95879cb94038a0be8b1d87ef9c2682 Mon Sep 17 00:00:00 2001 From: Harvey Harrison Date: Wed, 30 Jan 2008 13:33:23 +0100 Subject: [PATCH] --- yaml --- r: 80353 b: refs/heads/master c: d729ab35ee1367b7690458ae9e050571cb055bd3 h: refs/heads/master i: 80351: efd00d8ae55d16c097c942516c5adfd5f83b99b6 v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/fault_32.c | 4 +++- trunk/arch/x86/mm/fault_64.c | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0e4dd7da02ff..93307d9cc67d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5f5cd8fd60c71ce47d2ce4e60e7ccbc306e91c64 +refs/heads/master: d729ab35ee1367b7690458ae9e050571cb055bd3 diff --git a/trunk/arch/x86/mm/fault_32.c b/trunk/arch/x86/mm/fault_32.c index 276863dc4bdd..93ede2dde958 100644 --- a/trunk/arch/x86/mm/fault_32.c +++ b/trunk/arch/x86/mm/fault_32.c @@ -475,14 +475,16 @@ void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code) else tsk->min_flt++; +#ifdef CONFIG_X86_32 /* * Did it hit the DOS screen memory VA from vm86 mode? */ - if (regs->flags & VM_MASK) { + if (v8086_mode(regs)) { unsigned long bit = (address - 0xA0000) >> PAGE_SHIFT; if (bit < 32) tsk->thread.screen_bitmap |= 1 << bit; } +#endif up_read(&mm->mmap_sem); return; diff --git a/trunk/arch/x86/mm/fault_64.c b/trunk/arch/x86/mm/fault_64.c index 9ef0306efe9e..2d9e6da2cb30 100644 --- a/trunk/arch/x86/mm/fault_64.c +++ b/trunk/arch/x86/mm/fault_64.c @@ -514,6 +514,17 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, tsk->maj_flt++; else tsk->min_flt++; + +#ifdef CONFIG_X86_32 + /* + * Did it hit the DOS screen memory VA from vm86 mode? + */ + if (v8086_mode(regs)) { + unsigned long bit = (address - 0xA0000) >> PAGE_SHIFT; + if (bit < 32) + tsk->thread.screen_bitmap |= 1 << bit; + } +#endif up_read(&mm->mmap_sem); return;