Re: [patch] i386: remove IOPL check on task switch

From: Zachary Amsden
Date: Sat Nov 04 2006 - 14:40:54 EST


Zachary Amsden wrote:
Chuck Ebbert wrote:
In-Reply-To: <454B850C.3050402@xxxxxxxxxx>

On Fri, 03 Nov 2006 10:06:04 -0800, Zachary Amsden wrote:

Chuck Ebbert wrote:
IOPL is implicitly saved and restored on task switch,
so explicit check is no longer needed.
Nack. This is used for paravirt-ops kernels that use IOPL'd userspace.

How does that work? In the stock kernel, anything done by
the call to set_iopl_mask() (that was removed by the patch)
will be nullified by the 'popfl' at the end of the switch_to()
macro.

Who put a popfl back in switch_to? I took it out some time ago. It should not be there. The only reason for it was to stop IOPL leaking from one process to another from a sleep during a sysenter based system call.

Ok, checking shows Linus put it back to stop NT leakage. This is correct, but unlikely. Would be nice to avoid it unless absolutely necessary. Perhaps xor eflags old and new and only set_system_eflags() if non-ALU bits have changed.

Zach
-
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/