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/