From patchwork Thu Apr 1 20:07:13 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Blue Swirl X-Patchwork-Id: 49239 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 00040B7CF0 for ; Fri, 2 Apr 2010 07:10:42 +1100 (EST) Received: from localhost ([127.0.0.1]:40027 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NxQgs-0003FS-KS for incoming@patchwork.ozlabs.org; Thu, 01 Apr 2010 16:08:34 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NxQfe-0003FC-Bj for qemu-devel@nongnu.org; Thu, 01 Apr 2010 16:07:18 -0400 Received: from [140.186.70.92] (port=37398 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NxQfd-0003F3-6h for qemu-devel@nongnu.org; Thu, 01 Apr 2010 16:07:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NxQfb-0002oA-7t for qemu-devel@nongnu.org; Thu, 01 Apr 2010 16:07:17 -0400 Received: from mail-pv0-f173.google.com ([74.125.83.173]:59947) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxQfb-0002o6-0Z for qemu-devel@nongnu.org; Thu, 01 Apr 2010 16:07:15 -0400 Received: by pvc21 with SMTP id 21so632975pvc.4 for ; Thu, 01 Apr 2010 13:07:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:received:message-id :subject:from:to:content-type; bh=pwk38pe4+7EVd4CdB25fYD75mjAWFlerNeJWdjX3o74=; b=r7HwEEnPKaIQ/OYI4KrTzJahtFjaS3di7Sjz1kH+0Kqb2qCwH4Z+vITKi6msAG8i49 NzGTx1Y66fECG859NXbMSXf+sqc3O6yHMNN3PlFhjjSPLkzIis7RT6SpftBwpebtcAse C/Kw7iWl/XZjhZebzQSOlrfBvA5ximKKtySr0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=rexzjSKi+Qm39WoNq2SWMt91cV6ToNThMFJDKSXvcWJ3AwwA8Y7vDmLd0i2uOfnTOj Kzz1THyROruonVy4PhErD5ytqzvzM7WtMqdriQulnBT3PC1K0NIQR4BmYv6j1lLWVw7z YFeI/hVJ+EpyRgFoJS7aphY0njHo2JkAnptvk= MIME-Version: 1.0 Received: by 10.140.178.12 with HTTP; Thu, 1 Apr 2010 13:07:13 -0700 (PDT) Date: Thu, 1 Apr 2010 23:07:13 +0300 Received: by 10.141.124.13 with SMTP id b13mr1016815rvn.284.1270152433972; Thu, 01 Apr 2010 13:07:13 -0700 (PDT) Message-ID: From: Blue Swirl To: qemu-devel X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) Subject: [Qemu-devel] [PATCH 1/2] Move KVM init to arch_init.c, compile vl.c once X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Remove dependency of vl.c to KVM, then we can partially revert b33612d03540fda7fa67485f1c20395beb7a2bf0. Signed-off-by: Blue Swirl --- Makefile.objs | 2 +- Makefile.target | 2 +- arch_init.c | 20 ++++++++++++++++++++ arch_init.h | 2 ++ vl.c | 14 ++------------ 5 files changed, 26 insertions(+), 14 deletions(-) usb_enabled = 1; @@ -3574,15 +3572,7 @@ int main(int argc, char **argv, char **envp) exit(1); } - if (kvm_enabled()) { - int ret; - - ret = kvm_init(smp_cpus); - if (ret < 0) { - fprintf(stderr, "failed to initialize KVM\n"); - exit(1); - } - } + kvm_maybe_init(smp_cpus); if (qemu_init_main_loop()) { fprintf(stderr, "qemu_init_main_loop failed\n"); diff --git a/Makefile.objs b/Makefile.objs index 74d7a3d..4cc8ea6 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -128,7 +128,7 @@ user-obj-y += cutils.o cache-utils.o # libhw hw-obj-y = -hw-obj-y += loader.o +hw-obj-y += vl.o loader.o hw-obj-y += virtio.o virtio-console.o hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o hw-obj-y += watchdog.o diff --git a/Makefile.target b/Makefile.target index 167fc8d..2aa02f5 100644 --- a/Makefile.target +++ b/Makefile.target @@ -161,7 +161,7 @@ endif #CONFIG_BSD_USER # System emulator target ifdef CONFIG_SOFTMMU -obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o vl.o +obj-y = arch_init.o cpus.o monitor.o machine.o gdbstub.o # virtio has to be here due to weird dependency between PCI and virtio-net. # need to fix this properly obj-y += virtio-blk.o virtio-balloon.o virtio-net.o virtio-pci.o virtio-serial-bus.o diff --git a/arch_init.c b/arch_init.c index cfc03ea..001c560 100644 --- a/arch_init.c +++ b/arch_init.c @@ -41,6 +41,8 @@ #include "gdbstub.h" #include "hw/smbios.h" +int kvm_allowed = 0; + #ifdef TARGET_SPARC int graphic_width = 1024; int graphic_height = 768; @@ -508,3 +510,21 @@ int xen_available(void) return 0; #endif } + +void enable_kvm(void) +{ + kvm_allowed = 1; +} + +void kvm_maybe_init(int smp_cpus) +{ + if (kvm_enabled()) { + int ret; + + ret = kvm_init(smp_cpus); + if (ret < 0) { + fprintf(stderr, "failed to initialize KVM\n"); + exit(1); + } + } +} diff --git a/arch_init.h b/arch_init.h index 682890c..dde4309 100644 --- a/arch_init.h +++ b/arch_init.h @@ -29,5 +29,7 @@ void cpudef_init(void); int audio_available(void); int kvm_available(void); int xen_available(void); +void enable_kvm(void); +void kvm_maybe_init(int smp_cpus); #endif diff --git a/vl.c b/vl.c index 03fccbf..cc214dd 100644 --- a/vl.c +++ b/vl.c @@ -145,7 +145,6 @@ int main(int argc, char **argv) #include "dma.h" #include "audio/audio.h" #include "migration.h" -#include "kvm.h" #include "balloon.h" #include "qemu-option.h" #include "qemu-config.h" @@ -241,7 +240,6 @@ uint8_t qemu_uuid[16]; static QEMUBootSetHandler *boot_set_handler; static void *boot_set_opaque; -int kvm_allowed = 0; uint32_t xen_domid; enum xen_mode xen_mode = XEN_EMULATE; @@ -3228,7 +3226,7 @@ int main(int argc, char **argv, char **envp) printf("Option %s not supported for this target\n", popt->name); exit(1); } - kvm_allowed = 1; + enable_kvm(); break; case QEMU_OPTION_usb: