Re: 2.3.30pre1 syscall w/6 args support?

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Wed, 8 Dec 1999 19:13:24 +0100 (CET)


On Wed, 8 Dec 1999, Linus Torvalds wrote:

> I was more thinking about the case where SYSENTER was used for the vm86()
> system call, and you'd have to be careful _not_ to use SYSEXIT because you
> can't use SYSEXIT to return to vm86 mode - you have to use the same old
> "iret" for that case. That shouldn't be too hard: just check the flags on
> the return path and if the flags imply a return to VM86 you just use the
> old path.

i believe the best solution is to not call sys_vm86() with SYSENTER. The
reason is to not slow down all the other system calls with an extra check
for VM_MASK.

(it will still be possible to call sys_vm86() with SYSENTER and it cannot
crash the system - but it will not have the intended effect.) Same holds
for all other flag-modifying system calls: eg. iopl(). These are not
high-speed system calls anyway, so i dont think we should care.

> The same is true of Wine: you just need to check the DS/SS segment values
> on return (and if they are anything but USER_DS you need to use "iret"
> again).

whoops, nasty. I'm not quite sure how we could do this though - SYSENTER
destroys CS and SS, so we have nothing to check ... Probably Wine has to
use the old int $80 interface?

> > Oh, there's something else i have on the todo list, but haven't yet
> > looked into -- SYSENTER doesn't clear TF.
>
> Does it matter?

it doesnt matter on 2.3.

-- mingo

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/