Messages in this thread | | | Subject | Re: [PATCHv2] x86: Use v8086_mode helper, trivial unification | From | Harvey Harrison <> | Date | Fri, 18 Jan 2008 01:22:00 -0800 |
| |
On Fri, 2008-01-18 at 10:12 +0100, Ingo Molnar wrote: > * Harvey Harrison <harvey.harrison@gmail.com> wrote: > > > Use v8086_mode inline in fault_32.c, no functional change also ifdef > > the section for 32-bit only and add to fault_64.c > > > - if (regs->flags & VM_MASK) { > > + if (v8086_mode(regs)) { > > > --- a/arch/x86/mm/fault_64.c > > +++ b/arch/x86/mm/fault_64.c > > @@ -551,6 +551,16 @@ good_area: > > tsk->maj_flt++; > > else > > tsk->min_flt++; > > + > > + /* > > + * 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; > > + } > > hm, is there even vm86 mode in 64-bit? Anyway, gcc will eliminate it i > guess. I've applied your patch. >
No, it doesn't mean anything to 64-bit, but helps make the diff a little bit smaller, getting pretty close now.
Still needs a bit of work to introduce oops_begin/end from 64-bit to 32-bit in traps_32.c and introduce a bad_pgtable-like function to 32bit, then we're down to small differences between 32/64 bit do_page_fault and vmalloc_sync_all that should be relatively clean to harmonize.
Got distracted with the ptrace stuff today, but patch coming soon.
Harvey
| |