When the system reboots, the rng seed that QEMU passes should be re-randomized, so that the new boot gets a new seed. This series wires that up for FDT.
Then, since the record&replay subsystem makes use of reset as well, we add a new reset cause for record&replay, so that we can avoid re-randomizing in these cases. Version 4 prevents the new reset type from leaking over QAPI, documents this alongside which version it was introduced, and adds mips and m68k machine types to the queue. Jason A. Donenfeld (11): reset: allow registering handlers that aren't called by snapshot loading device-tree: add re-randomization helper function x86: do not re-randomize RNG seed on snapshot load arm: re-randomize rng-seed on reboot riscv: re-randomize rng-seed on reboot m68k/virt: do not re-randomize RNG seed on snapshot load m68k/q800: do not re-randomize RNG seed on snapshot load mips/boston: re-randomize rng-seed on reboot mips/malta: pass RNG seed via env var and re-randomize on reboot openrisc: re-randomize rng-seed on reboot rx: re-randomize rng-seed on reboot hw/arm/aspeed.c | 4 ++-- hw/arm/boot.c | 2 ++ hw/arm/mps2-tz.c | 4 ++-- hw/core/reset.c | 15 ++++++++++++++- hw/hppa/machine.c | 4 ++-- hw/i386/microvm.c | 4 ++-- hw/i386/pc.c | 6 +++--- hw/i386/x86.c | 2 +- hw/m68k/q800.c | 33 +++++++++++++-------------------- hw/m68k/virt.c | 20 +++++++++++--------- hw/mips/boston.c | 3 +++ hw/mips/malta.c | 25 +++++++++++++++++++++++++ hw/openrisc/boot.c | 3 +++ hw/ppc/pegasos2.c | 4 ++-- hw/ppc/pnv.c | 4 ++-- hw/ppc/spapr.c | 4 ++-- hw/riscv/boot.c | 3 +++ hw/rx/rx-gdbsim.c | 3 +++ hw/s390x/s390-virtio-ccw.c | 4 ++-- include/hw/boards.h | 2 +- include/sysemu/device_tree.h | 9 +++++++++ include/sysemu/reset.h | 5 ++++- migration/savevm.c | 2 +- qapi/run-state.json | 5 ++++- softmmu/device_tree.c | 21 +++++++++++++++++++++ softmmu/runstate.c | 11 ++++++++--- 26 files changed, 145 insertions(+), 57 deletions(-) -- 2.38.1