Loading arch/x86/kvm/emulate.c +10 −4 Original line number Diff line number Diff line Loading @@ -2477,6 +2477,15 @@ static int em_movdqu(struct x86_emulate_ctxt *ctxt) return X86EMUL_CONTINUE; } static int em_invlpg(struct x86_emulate_ctxt *ctxt) { struct decode_cache *c = &ctxt->decode; emulate_invlpg(ctxt->vcpu, linear(ctxt, c->src.addr.mem)); /* Disable writeback. */ c->dst.type = OP_NONE; return X86EMUL_CONTINUE; } static bool valid_cr(int nr) { switch (nr) { Loading Loading @@ -3966,10 +3975,7 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt) rc = X86EMUL_PROPAGATE_FAULT; goto done; case 7: /* invlpg*/ emulate_invlpg(ctxt->vcpu, linear(ctxt, c->src.addr.mem)); /* Disable writeback. */ c->dst.type = OP_NONE; rc = em_invlpg(ctxt); break; default: goto cannot_emulate; Loading Loading
arch/x86/kvm/emulate.c +10 −4 Original line number Diff line number Diff line Loading @@ -2477,6 +2477,15 @@ static int em_movdqu(struct x86_emulate_ctxt *ctxt) return X86EMUL_CONTINUE; } static int em_invlpg(struct x86_emulate_ctxt *ctxt) { struct decode_cache *c = &ctxt->decode; emulate_invlpg(ctxt->vcpu, linear(ctxt, c->src.addr.mem)); /* Disable writeback. */ c->dst.type = OP_NONE; return X86EMUL_CONTINUE; } static bool valid_cr(int nr) { switch (nr) { Loading Loading @@ -3966,10 +3975,7 @@ x86_emulate_insn(struct x86_emulate_ctxt *ctxt) rc = X86EMUL_PROPAGATE_FAULT; goto done; case 7: /* invlpg*/ emulate_invlpg(ctxt->vcpu, linear(ctxt, c->src.addr.mem)); /* Disable writeback. */ c->dst.type = OP_NONE; rc = em_invlpg(ctxt); break; default: goto cannot_emulate; Loading