mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86emul: respect NSCB
protmode_load_seg() would better adhere to that "feature" of clearing
base (and limit) during NULL selector loads.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 87a20c98d9
master date: 2022-10-11 14:30:41 +0200
This commit is contained in:
1 parent
e5a5bdeba6
commit
5dae06578c
1 file changed
+2
-1
@@ -1970,6 +1970,7 @@ amd_like(const struct x86_emulate_ctxt *ctxt)
|
||||
#define vcpu_has_tbm() (ctxt->cpuid->extd.tbm)
|
||||
#define vcpu_has_clzero() (ctxt->cpuid->extd.clzero)
|
||||
#define vcpu_has_wbnoinvd() (ctxt->cpuid->extd.wbnoinvd)
|
||||
#define vcpu_has_nscb() (ctxt->cpuid->extd.nscb)
|
||||
|
||||
#define vcpu_has_bmi1() (ctxt->cpuid->feat.bmi1)
|
||||
#define vcpu_has_hle() (ctxt->cpuid->feat.hle)
|
||||
@@ -2102,7 +2103,7 @@ protmode_load_seg(
|
||||
case x86_seg_tr:
|
||||
goto raise_exn;
|
||||
}
|
||||
if ( !_amd_like(cp) || !ops->read_segment ||
|
||||
if ( !_amd_like(cp) || vcpu_has_nscb() || !ops->read_segment ||
|
||||
ops->read_segment(seg, sreg, ctxt) != X86EMUL_OKAY )
|
||||
memset(sreg, 0, sizeof(*sreg));
|
||||
else
|
||||
|
||||