On 17/08/2020 16:57, Roger Pau Monne wrote: > @@ -1005,6 +1013,13 @@ static int write_msr(unsigned int reg, uint64_t val, > curr->arch.pv.gs_base_user = val; > return X86EMUL_OKAY; > > + case MSR_EFER: > + /* Silently drop writes that don't change the reported value. */ > + temp = guest_efer(currd); > + if ( val != temp ) > + goto invalid;
break. The invalid label does write-discard, rather than injecting #GP. The comment would be clearer as "Reject writes which change the value, but tolerate no-op writes", seeing as that is the compatibility behaviour we're adding. ~Andrew