On Sun, Apr 11, 2010 at 11:07:28PM +0200, Andre Przywara wrote: > On SVM we set the instruction length of skipped instructions > to hard-coded, well known values, which could be wrong when (bogus, > but valid) prefixes (REX, segment override) are used. > Newer AMD processors (Fam10h 45nm and better, aka. PhenomII or > AthlonII) have an explicit NEXTRIP field in the VMCB containing the > desired information. > Since it is cheap to do so, we use this field to override the guessed > value on newer processors. > A fix for older CPUs would be rather expensive, as it would require > to fetch and partially decode the instruction. As the problem is not > a security issue and needs special, handcrafted code to trigger > (no compiler will ever generate such code), I omit a fix for older > CPUs. > If someone is interested, I have both a patch for these CPUs as well as > demo code triggering this issue: It segfaults under KVM, but runs > perfectly on native Linux. > > Signed-off-by: Andre Przywara <andre.przywara@xxxxxxx> > --- > arch/x86/include/asm/svm.h | 4 +++- > arch/x86/kvm/svm.c | 13 ++++++++----- > 2 files changed, 11 insertions(+), 6 deletions(-) Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html