Skip to contentSkip to conversation

SVM: Fix segment attribute clobbering

PATCH New Alexander Graf 1 participant 1 message Jun 9, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 SVM: Fix segment attribute clobbering

When SVM segment flags get stored in the VMCB, there is a certain chance that they get clobbered by garbage bits. This patch ANDs the wanted bits correctly and thus makes SVM work again.

Alex

op_helper.c +1 -1
Index: target-i386/op_helper.c
===================================================================
@@ -4767,7 +4767,7 @@
     stl_phys(addr + offsetof(struct vmcb_seg, limit), 
              sc->limit);
     stw_phys(addr + offsetof(struct vmcb_seg, attrib), 
-             (sc->flags >> 8) | ((sc->flags >> 12) & 0x0f00));
+             ((sc->flags >> 8) & 0xff) | ((sc->flags >> 12) & 0x0f00));
 }
                                 
 static inline void svm_load_seg(target_phys_addr_t addr, SegmentCache *sc)