From patchwork Wed Nov 4 10:49:53 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Avi Kivity X-Patchwork-Id: 57511 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id nA4Ao4OK031538 for ; Wed, 4 Nov 2009 10:50:05 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755306AbZKDKt5 (ORCPT ); Wed, 4 Nov 2009 05:49:57 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755303AbZKDKt4 (ORCPT ); Wed, 4 Nov 2009 05:49:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:35656 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755293AbZKDKty (ORCPT ); Wed, 4 Nov 2009 05:49:54 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nA4Anxfr026551 for ; Wed, 4 Nov 2009 05:49:59 -0500 Received: from cleopatra.tlv.redhat.com (cleopatra.tlv.redhat.com [10.35.255.11]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id nA4AnvhC001478; Wed, 4 Nov 2009 05:49:59 -0500 Received: from localhost.localdomain (file.tlv.redhat.com [10.35.255.8]) by cleopatra.tlv.redhat.com (Postfix) with ESMTP id 6581225004D; Wed, 4 Nov 2009 12:49:56 +0200 (IST) From: Avi Kivity To: Marcelo Tosatti Cc: Gleb Natapov , kvm@vger.kernel.org Subject: [PATCH QEMU-KVM 1/4] Move internal error handling into a function Date: Wed, 4 Nov 2009 12:49:53 +0200 Message-Id: <1257331796-29722-2-git-send-email-avi@redhat.com> In-Reply-To: <1257331796-29722-1-git-send-email-avi@redhat.com> References: <1257331796-29722-1-git-send-email-avi@redhat.com> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org diff --git a/qemu-kvm.c b/qemu-kvm.c index 809fd65..4b22537 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -869,6 +869,18 @@ int kvm_is_ready_for_interrupt_injection(CPUState *env) return env->kvm_run->ready_for_interrupt_injection; } +static int kvm_handle_internal_error(kvm_context_t kvm, + CPUState *env, + struct kvm_run *run) +{ + fprintf(stderr, "KVM internal error. Suberror: %d\n", + run->internal.suberror); + kvm_show_regs(env); + if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) + fprintf(stderr, "emulation failure, check dmesg for details\n"); + abort(); +} + int kvm_run(CPUState *env) { int r; @@ -967,12 +979,7 @@ int kvm_run(CPUState *env) break; #endif case KVM_EXIT_INTERNAL_ERROR: - fprintf(stderr, "KVM internal error. Suberror: %d\n", - run->internal.suberror); - kvm_show_regs(env); - if (run->internal.suberror == KVM_INTERNAL_ERROR_EMULATION) - fprintf(stderr, "emulation failure, check dmesg for details\n"); - abort(); + r = kvm_handle_internal_error(kvm, env, run); break; default: if (kvm_arch_run(env)) {