From patchwork Wed May 4 19:43:49 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 754662 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter2.kernel.org (8.14.4/8.14.3) with ESMTP id p44JiUgI024240 for ; Wed, 4 May 2011 19:44:31 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755603Ab1EDToV (ORCPT ); Wed, 4 May 2011 15:44:21 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:51142 "EHLO fmmailgate02.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755563Ab1EDToS (ORCPT ); Wed, 4 May 2011 15:44:18 -0400 Received: from smtp04.web.de ( [172.20.0.225]) by fmmailgate02.web.de (Postfix) with ESMTP id 03C3319EB2A78; Wed, 4 May 2011 21:44:17 +0200 (CEST) Received: from [88.64.22.120] (helo=localhost.localdomain) by smtp04.web.de with asmtp (TLSv1:AES256-SHA:256) (WEB.DE 4.110 #2) id 1QHhzc-0006mo-01; Wed, 04 May 2011 21:44:16 +0200 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Cc: kvm@vger.kernel.org Subject: [PATCH 15/19] qemu-kvm: Fold kvm_arch_qemu_create_context into kvm_arch_create Date: Wed, 4 May 2011 21:43:49 +0200 Message-Id: <9cf2bf9d03e7233aadafcb8b9aedcb573dee812a.1304538230.git.jan.kiszka@web.de> X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: X-Sender: jan.kiszka@web.de X-Provags-ID: V01U2FsdGVkX18PYG4xV2sLdEOfSw+wRM2Pust2c8JX+sziFK5Y GZ2eMZIfh1v5u0Be4XZDW03Wxw+dBKjz9qSAtgXwHuwtwXAvON gpgFi9t40= Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter2.kernel.org [140.211.167.43]); Wed, 04 May 2011 19:44:31 +0000 (UTC) From: Jan Kiszka This reorders kvm_create_irqchip and the content of kvm_arch_qemu_create_context, but this should not cause any problems. Signed-off-by: Jan Kiszka --- qemu-kvm-x86.c | 48 ++++++++++++++++++++---------------------------- qemu-kvm.c | 7 +------ qemu-kvm.h | 5 +---- 3 files changed, 22 insertions(+), 38 deletions(-) diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c index a88f8be..6b816bc 100644 --- a/qemu-kvm-x86.c +++ b/qemu-kvm-x86.c @@ -116,9 +116,9 @@ static int kvm_create_pit(kvm_context_t kvm) return 0; } -int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes, - void **vm_mem) +int kvm_arch_create(kvm_context_t kvm) { + struct utsname utsname; int r = 0; r = kvm_init_tss(kvm); @@ -149,6 +149,24 @@ int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes, return r; } + uname(&utsname); + lm_capable_kernel = strcmp(utsname.machine, "x86_64") == 0; + + if (kvm_shadow_memory) { + kvm_set_shadow_pages(kvm_context, kvm_shadow_memory); + } + + /* initialize has_msr_star/has_msr_hsave_pa */ + r = kvm_get_supported_msrs(kvm_state); + if (r < 0) { + return r; + } + + r = kvm_set_boot_cpu_id(0); + if (r < 0 && r != -ENOSYS) { + return r; + } + return 0; } @@ -426,32 +444,6 @@ static int kvm_enable_tpr_access_reporting(CPUState *env) } #endif -int kvm_arch_qemu_create_context(void) -{ - int r; - struct utsname utsname; - - uname(&utsname); - lm_capable_kernel = strcmp(utsname.machine, "x86_64") == 0; - - if (kvm_shadow_memory) { - kvm_set_shadow_pages(kvm_context, kvm_shadow_memory); - } - - /* initialize has_msr_star/has_msr_hsave_pa */ - r = kvm_get_supported_msrs(kvm_state); - if (r < 0) { - return r; - } - - r = kvm_set_boot_cpu_id(0); - if (r < 0 && r != -ENOSYS) { - return r; - } - - return 0; -} - static int _kvm_arch_init_vcpu(CPUState *env) { kvm_arch_reset_vcpu(env); diff --git a/qemu-kvm.c b/qemu-kvm.c index 359bec7..ecee3dc 100644 --- a/qemu-kvm.c +++ b/qemu-kvm.c @@ -1397,7 +1397,7 @@ static int kvm_create_context(void) return -1; } - r = kvm_arch_create(kvm_context, 0, NULL); + r = kvm_arch_create(kvm_context); if (r < 0) { kvm_finalize(kvm_state); return r; @@ -1405,11 +1405,6 @@ static int kvm_create_context(void) kvm_create_irqchip(kvm_context); - r = kvm_arch_qemu_create_context(); - if (r < 0) { - kvm_finalize(kvm_state); - return -1; - } if (kvm_pit && !kvm_pit_reinject) { if (kvm_reinject_control(kvm_context, 0)) { fprintf(stderr, "failure to disable in-kernel PIT reinjection\n"); diff --git a/qemu-kvm.h b/qemu-kvm.h index a4f1816..0814883 100644 --- a/qemu-kvm.h +++ b/qemu-kvm.h @@ -64,8 +64,7 @@ typedef struct kvm_context *kvm_context_t; #include "kvm.h" -int kvm_arch_create(kvm_context_t kvm, unsigned long phys_mem_bytes, - void **vm_mem); +int kvm_arch_create(kvm_context_t kvm); int kvm_arch_run(CPUState *env); @@ -449,8 +448,6 @@ void on_vcpu(CPUState *env, void (*func)(void *data), void *data); void kvm_inject_interrupt(CPUState *env, int mask); void kvm_update_interrupt_request(CPUState *env); -int kvm_arch_qemu_create_context(void); - int kvm_arch_has_work(CPUState *env); void kvm_arch_process_irqchip_events(CPUState *env); int kvm_arch_try_push_interrupts(void *opaque);