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/