From aec2ed0972eec0b7d251de1ae27de00b2bf29936 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Tue, 27 Jan 2015 17:48:10 +0100 Subject: [PATCH 07/16] main(): set current_machine before calling machine->init() Message-id: <1422380891-11054-2-git-send-email-lersek@redhat.com> Patchwork-id: 63584 O-Subject: [RHEL-7.2 qemu-kvm PATCH 1/2] main(): set current_machine before calling machine->init() Bugzilla: 1176283 RH-Acked-by: Paolo Bonzini RH-Acked-by: Vitaly Kuznetsov RH-Acked-by: Markus Armbruster Performing the assignment earlier allows machine->init() and its children to access current_machine->name. The alternative would be to pass QEMUMachineInitArgs down to pc_memory_init() and even deeper, which I deem to cause more annoyance for future backports than this patch. Note that upstream commit 0056ae24bc36798fdd96d0b31e217e9f73896736 moved the assignment similarly (but it is not backportable to RHEL-7). This patch could only regress code that depends on the nullity of "current_machine". I only found one such site, qemu_system_reset(). qemu_system_reset() is called from the following places: - load_vmstate(), which is not called in the code straddled by the assignment movement, - main_loop_should_exit(), ditto, - later in main(), - "xen-all.c", irrelevant. Downstream only. Signed-off-by: Laszlo Ersek Signed-off-by: Miroslav Rezanina --- vl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vl.c b/vl.c index 2b3dc88..35b927e 100644 --- a/vl.c +++ b/vl.c @@ -4252,6 +4252,9 @@ int main(int argc, char **argv, char **envp) .kernel_cmdline = kernel_cmdline, .initrd_filename = initrd_filename, .cpu_model = cpu_model }; + + current_machine = machine; + machine->init(&args); audio_init(); @@ -4260,8 +4263,6 @@ int main(int argc, char **argv, char **envp) set_numa_modes(); - current_machine = machine; - /* init USB devices */ if (usb_enabled(false)) { if (foreach_device_config(DEV_USB, usb_parse) < 0) -- 1.8.3.1