diff options
-rw-r--r-- | arch/x86/kvm/emulate.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 439a3286406a..0d5ecbd45882 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c | |||
@@ -4736,17 +4736,17 @@ special_insn: | |||
4736 | goto done; | 4736 | goto done; |
4737 | 4737 | ||
4738 | writeback: | 4738 | writeback: |
4739 | if (!(ctxt->d & NoWrite)) { | ||
4740 | rc = writeback(ctxt, &ctxt->dst); | ||
4741 | if (rc != X86EMUL_CONTINUE) | ||
4742 | goto done; | ||
4743 | } | ||
4744 | if (ctxt->d & SrcWrite) { | 4739 | if (ctxt->d & SrcWrite) { |
4745 | BUG_ON(ctxt->src.type == OP_MEM || ctxt->src.type == OP_MEM_STR); | 4740 | BUG_ON(ctxt->src.type == OP_MEM || ctxt->src.type == OP_MEM_STR); |
4746 | rc = writeback(ctxt, &ctxt->src); | 4741 | rc = writeback(ctxt, &ctxt->src); |
4747 | if (rc != X86EMUL_CONTINUE) | 4742 | if (rc != X86EMUL_CONTINUE) |
4748 | goto done; | 4743 | goto done; |
4749 | } | 4744 | } |
4745 | if (!(ctxt->d & NoWrite)) { | ||
4746 | rc = writeback(ctxt, &ctxt->dst); | ||
4747 | if (rc != X86EMUL_CONTINUE) | ||
4748 | goto done; | ||
4749 | } | ||
4750 | 4750 | ||
4751 | /* | 4751 | /* |
4752 | * restore dst type in case the decoding will be reused | 4752 | * restore dst type in case the decoding will be reused |