From patchwork Wed Jan 7 12:11:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Apfelbaum X-Patchwork-Id: 426214 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 0DB5214007F for ; Thu, 8 Jan 2015 00:43:23 +1100 (AEDT) Received: from localhost ([::1]:40061 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8qtO-0005ap-OA for incoming@patchwork.ozlabs.org; Wed, 07 Jan 2015 08:43:22 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47942) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8qlv-000220-2j for qemu-devel@nongnu.org; Wed, 07 Jan 2015 08:35:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y8qlq-0003NI-Fy for qemu-devel@nongnu.org; Wed, 07 Jan 2015 08:35:38 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55015) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y8qlq-0002Ye-9Z; Wed, 07 Jan 2015 08:35:34 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t07CBfIi026748 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 7 Jan 2015 07:11:41 -0500 Received: from work.redhat.com (vpn1-4-156.ams2.redhat.com [10.36.4.156]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t07CBcNp024962; Wed, 7 Jan 2015 07:11:39 -0500 From: Marcel Apfelbaum To: qemu-devel@nongnu.org Date: Wed, 7 Jan 2015 14:11:38 +0200 Message-Id: <1420632698-27461-1-git-send-email-marcel@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 209.132.183.28 Cc: marcel@redhat.com, pbonzini@redhat.com, armbru@redhat.com, qemu-stable@nongnu.org Subject: [Qemu-devel] [PATCH v3] vl.c: fix regression when reading machine type from config file X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org After 'Machine as QOM' series the machine type input triggers the creation of the machine class. If the machine type is set in the configuration file, the machine class is not updated accordingly and remains the default. Fixed that by querying the machine options after the configuration file is loaded. Cc: qemu-stable@nongnu.org Reported-by: William Dauchy Signed-off-by: Marcel Apfelbaum --- v2 -> v3: - Addressed Paolo Bonzini's comments: - fixed whitespace v1 -> v2: - Addressed Paolo Bonzini's comments: - moved the call to machine_parse after the switch and brought QEMU_OPTION_M near QEMU_OPTION_machine vl.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/vl.c b/vl.c index 7786b2f..1a2da2b 100644 --- a/vl.c +++ b/vl.c @@ -2796,9 +2796,6 @@ int main(int argc, char **argv, char **envp) exit(1); } switch(popt->index) { - case QEMU_OPTION_M: - machine_class = machine_parse(optarg); - break; case QEMU_OPTION_no_kvm_irqchip: { olist = qemu_find_opts("machine"); qemu_opts_parse(olist, "kernel_irqchip=off", 0); @@ -3420,16 +3417,13 @@ int main(int argc, char **argv, char **envp) olist = qemu_find_opts("machine"); qemu_opts_parse(olist, "accel=kvm", 0); break; + case QEMU_OPTION_M: case QEMU_OPTION_machine: olist = qemu_find_opts("machine"); opts = qemu_opts_parse(olist, optarg, 1); if (!opts) { exit(1); } - optarg = qemu_opt_get(opts, "type"); - if (optarg) { - machine_class = machine_parse(optarg); - } break; case QEMU_OPTION_no_kvm: olist = qemu_find_opts("machine"); @@ -3752,6 +3746,13 @@ int main(int argc, char **argv, char **envp) } } } + + opts = qemu_get_machine_opts(); + optarg = qemu_opt_get(opts, "type"); + if (optarg) { + machine_class = machine_parse(optarg); + } + loc_set_none(); os_daemonize();