Re: Sysenter crash with Nested Task Bit set
From: Jeremy Fitzhardinge
Date: Mon Sep 18 2006 - 12:25:15 EST
Linus Torvalds wrote:
Final note (I promise): now that we save/restore eflags again, we
should probably revert the set_iopl_mask() in task switching too. However,
that apparently has some para-virtualization issues, so I'm going to
ignore that part from now.
I'm wondering if we shouldn't have a (__)switch_to paravirt hook, so we
can wrap the context switch in whatever we like.
However, I'd really like people who know and care about the
paravirtualization to take a good long look at it: because right now, with
the addition of the eflags save/restore, the set_iopl_mask() in
__switch_to() is entirely useless for non-virtualized environments, afaik.
Hm. Zach removed the pushf/popf in switch_to this last Sept, with the
comment "The pushf/popf in switch_to are ONLY used to switch IOPL.
Making this explicit in C code is more clear. This pushf/popf pair was
added as a bugfix for leaking IOPL to unprivileged processes when using
sysenter/sysexit based system calls (sysexit does not restore flags)."
Zack added to the cc. Who else needs to know?
Rusty, Chris Wright and me.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/