Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 15 Dec 2020 21:24:31 +0000 (21:24 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 15 Dec 2020 21:24:31 +0000 (21:24 +0000)
* New -action option and set-action QMP command (Alejandro)
* More vl.c cleanup (myself with help from Daniel and Igor)
* Remove deprecated options (Philippe, Thomas)
* Dirty bitmap fix (Zenghui)
* icount caching speedup (Pavel)
* SCSI race fix (Maxim)
* Remove pre-GCC 4.8 code (Marc-AndrĂ©)

# gpg: Signature made Tue 15 Dec 2020 17:53:24 GMT
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "pbonzini@redhat.com"
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
# gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini-gitlab/tags/for-upstream: (45 commits)
  build: -no-pie is no functional linker flag
  scripts/git.orderfile: Keep files with .inc extension sorted
  compiler.h: remove QEMU_GNUC_PREREQ
  linux-user: remove GNUC check
  compiler: remove GNUC check
  xen: remove GNUC check
  poison: remove GNUC check
  compiler.h: explicit case for Clang printf attribute
  virtiofsd: replace _Static_assert with QEMU_BUILD_BUG_ON
  tests: remove GCC < 4 fallbacks
  qemu-plugin.h: remove GCC < 4
  compiler.h: remove GCC < 3 __builtin_expect fallback
  accel/tcg: Remove special case for GCC < 4.6
  qemu/atomic: Drop special case for unsupported compiler
  hw/core: Restrict 'fw-path-provider.c' to system mode emulation
  docs: set CONFDIR when running sphinx
  vl: rename local variable in configure_accelerators
  qemu-option: pass QemuOptsList to opts_accepts_any
  qemu-option: simplify search for end of key
  kvm: Take into account the unaligned section size when preparing bitmap
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
# Conflicts:
# softmmu/vl.c

1  2 
MAINTAINERS
hw/core/machine.c

diff --cc MAINTAINERS
Simple merge
index d7f8fdee4546cd548bd07fcfbf27a368ee18d0c6,607eb88291934c4d4c79416ac136eb5967200cb3..05dcaf09c9e342069522df7dfdebf3e38ce6968c
@@@ -1187,10 -1193,49 +1193,48 @@@ void qemu_remove_machine_init_done_noti
      notifier_remove(notify);
  }
  
- void qemu_run_machine_init_done_notifiers(void)
+ void qdev_machine_creation_done(void)
  {
-     machine_init_done = true;
+     cpu_synchronize_all_post_init();
+     if (current_machine->boot_once) {
+         qemu_boot_set(current_machine->boot_once, &error_fatal);
+         qemu_register_reset(restore_boot_order, g_strdup(current_machine->boot_order));
+     }
+     /*
+      * ok, initial machine setup is done, starting from now we can
+      * only create hotpluggable devices
+      */
+     phase_advance(PHASE_MACHINE_READY);
+     qdev_assert_realized_properly();
+     /* TODO: once all bus devices are qdevified, this should be done
+      * when bus is created by qdev.c */
+     /*
+      * TODO: If we had a main 'reset container' that the whole system
+      * lived in, we could reset that using the multi-phase reset
+      * APIs. For the moment, we just reset the sysbus, which will cause
+      * all devices hanging off it (and all their child buses, recursively)
+      * to be reset. Note that this will *not* reset any Device objects
+      * which are not attached to some part of the qbus tree!
+      */
+     qemu_register_reset(resettable_cold_reset_fn, sysbus_get_default());
      notifier_list_notify(&machine_init_done_notifiers, NULL);
 -        error_report("rom check and register reset failed");
+     if (rom_check_and_register_reset() != 0) {
+         exit(1);
+     }
+     replay_start();
+     /* This checkpoint is required by replay to separate prior clock
+        reading from the other reads, because timer polling functions query
+        clock values from the log. */
+     replay_checkpoint(CHECKPOINT_RESET);
+     qemu_system_reset(SHUTDOWN_CAUSE_NONE);
+     register_global_state();
  }
  
  static const TypeInfo machine_info = {