Melchior FRANZ wrote:
> 
> * Kevin Lawton -- Saturday 09 June 2001 14:47:
> >
> >   vm_save_flags(eflags);
> >   if ( ((eflags >> 12) & 3) != 0 ) {
> >     hostprint(".......\n");
> >     return 1;
> >     }
> >   vm_restore_flags(...);
> 
> Err ... and that condition is true, that is: the "hostprint" command
> gets executed!

If IOPL==3 on the 1st iteration inbound, _before_ it ever is 3 after
the return from VM space, then there is an entirely different
issue.

First, let's confirm if IOPL==3 from the first open() call
to the kernel module.  In kernel/host-linux.c::plex86_open(),
spew the value out, before any other code:

  {
  Bit32u eflags;
  vm_save_flags(eflags);
  printk(KERN_WARNING "plex86: eflags on open is 0x%x\n", eflags);
  }

IOPL is bits 13/12.

Also, put the same code (change the printk) in init_module() too.
This is absolutely the first code called in kernel space.  Let me
know the value spewed to the kernel log files.

-Kevin


-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Kevin Lawton                        [EMAIL PROTECTED]
MandrakeSoft, Inc.                  Plex86 developer
http://www.linux-mandrake.com/      http://www.plex86.org/

Reply via email to