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