Re: [PATCH] do not keep interrupt window closed by sti in real mode

From: Avi Kivity
Date: Wed Apr 08 2009 - 04:21:43 EST


H. Peter Anvin wrote:
Avi Kivity wrote:
I'm guessing the problem is due to the second instruction. We don't
clear the 'blocked by interrupt shadow' flag when we emulate, which
extends interrupt shadow by one more instruction. If the instruction
sequence is 'sti hlt' we end in an inconsistent state.


Ah, and since we're in real mode, we have to emulate everything (at
least on some hardware), right?

Well, not everything. We use vm86 mode in the guest to emulate real mode. Of course that doesn't support all instructions, so we emulate these. Unfortunately it also doesn't support big real mode.

So we really do need to clear the
interrupt shadow bit in the interpreter... I don't see a way around that.

Yes.

Otherwise not just STI but MOV SS shadows will break, and in real mode
MOV SS shadow is crucial.

'mov ss' executes natively.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

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