From: Anthony Liguori Date: Tue, 11 Aug 2009 20:57:59 +0000 (-0500) Subject: KVM: When switching to a vm8086 task, load segments as 16-bit X-Git-Tag: v2.6.32-rc1~693^2~24 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0c7c04b874bf98a10d8e0c8322a5d3bc93536bc;p=pandora-kernel.git KVM: When switching to a vm8086 task, load segments as 16-bit According to 16.2.5 in the SDM, eflags.vm in the tss is consulted before loading and new segments. If eflags.vm == 1, then the segments are treated as 16-bit segments. The LDTR and TR are not normally available in vm86 mode so if they happen to somehow get loaded, they need to be treated as 32-bit segments. This fixes an invalid vmentry failure in a custom OS that was happening after a task switch into vm8086 mode. Since the segments were being mistakenly treated as 32-bit, we loaded garbage state. Signed-off-by: Anthony Liguori Signed-off-by: Avi Kivity --- Reading git-diff-tree failed