qemu-e2k/include/hw
Greg Kurz 3bf0844f3b spapr: Don't hijack current_machine->boot_order
QEMU 6.0 moved all the -boot variables to the machine. Especially, the
removal of the boot_order static changed the handling of '-boot once'
from:

    if (boot_once) {
        qemu_boot_set(boot_once, &error_fatal);
        qemu_register_reset(restore_boot_order, g_strdup(boot_order));
    }

to

    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));
    }

This means that we now register as subsequent boot order a copy
of current_machine->boot_once that was just set with the previous
call to qemu_boot_set(), i.e. we never transition away from the
once boot order.

It is certainly fragile^Wwrong for the spapr code to hijack a
field of the base machine type object like that. The boot order
rework simply turned this software boundary violation into an
actual bug.

Have the spapr code to handle that with its own field in
SpaprMachineState. Also kfree() the initial boot device
string when "once" was used.

Fixes: 4b7acd2ac8 ("vl: clean up -boot variables")
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1960119
Cc: pbonzini@redhat.com
Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20210521160735.1901914-1-groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-06-03 13:22:06 +10:00
..
acpi acpi: Move maximum size logic into acpi_add_rom_blob() 2021-03-22 18:58:19 -04:00
adc
arm hw/arm: Model TCMs in the SSE-300, not the AN547 2021-05-25 16:01:43 +01:00
audio
block vmstate: Constify some VMStateDescriptions 2021-05-02 17:24:50 +02:00
char Miscellaneous patches for 2021-05-12 2021-05-13 20:13:24 +01:00
core Adjust types for some memory access functions. 2021-05-28 16:25:21 +01:00
cpu
cris hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
display Drop the deprecated lm32 target 2021-05-12 18:20:25 +02:00
dma hw/dma: Implement a Xilinx CSU DMA model 2021-03-08 17:20:04 +00:00
firmware hw/smbios: support for type 41 (onboard devices extended information) 2021-05-14 10:26:18 -04:00
gpio
hyperv
i2c hw/i2c: add pca954x i2c-mux switch 2021-04-15 07:10:39 -05:00
i386 hw: add compat machines for 6.1 2021-04-30 11:16:51 +01:00
ide
input
intc m68k: add an interrupt controller 2021-03-15 21:02:20 +01:00
ipack
ipmi
isa vt82c686: Add emulation of VT8231 south bridge 2021-05-04 11:41:25 +10:00
kvm
m68k
mem pc-dimm: remove unnecessary get_vmstate_memory_region() method 2021-05-14 10:26:18 -04:00
mips
misc hw/misc/mps2-scc: Support using CFG0 bit 0 for remapping 2021-05-10 17:21:54 +01:00
net
nubus
nvram
pci hw/pci-host: Add emulation of Marvell MV64361 PPC system controller 2021-05-04 11:41:25 +10:00
pci-bridge
pci-host ppc patch queue 2021-05-04 2021-05-05 20:29:14 +01:00
ppc spapr: Don't hijack current_machine->boot_order 2021-06-03 13:22:06 +10:00
rdma
remote
riscv hw/opentitan: Update the interrupt layout 2021-05-11 20:02:06 +10:00
rtc
rx
s390x s390x: move S390_ADAPTER_SUPPRESSIBLE 2021-03-26 09:33:50 +01:00
scsi esp: fix setting of ESPState mig_version_id when launching QEMU with -S option 2021-04-12 22:31:24 +01:00
sd
sh4 hw/sh4: Add missing license 2021-03-06 16:18:42 +01:00
southbridge
sparc hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
ssi aspeed/smc: Add extra controls to request DMA 2021-05-01 10:03:52 +02:00
timer hw: Remove superfluous includes of hw/hw.h 2021-05-02 17:24:50 +02:00
tricore hw/tricore: Add testdevice for tests in tests/tcg/ 2021-05-18 09:36:21 +01:00
usb usb/storage: move declarations to usb/msd.h header 2021-03-15 17:01:12 +01:00
vfio
virtio virtio-gpu: Add virtio_gpu_set_scanout_blob 2021-05-27 12:07:37 +02:00
watchdog
xen xen: Free xenforeignmemory_resource at exit 2021-05-10 13:43:58 +01:00
xtensa
boards.h hw: add compat machines for 6.1 2021-04-30 11:16:51 +01:00
clock.h clock: Add clock_ns_to_ticks() function 2021-03-08 17:20:01 +00:00
elf_ops.h Remove the deprecated moxie target 2021-05-12 17:42:23 +02:00
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader-fit.h
loader.h hw/core/loader: Add new function rom_ptr_for_as() 2021-03-23 11:47:31 +00:00
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h clock: Add ClockEvent parameter to callbacks 2021-03-08 17:20:01 +00:00
qdev-core.h
qdev-dma.h
qdev-properties-system.h
qdev-properties.h
register.h hw: Replace anti-social QOM type names 2021-03-19 15:18:43 +01:00
registerfields.h
resettable.h
stream.h
sysbus.h
usb.h usb: remove support for -usbdevice parameters 2021-03-15 17:00:58 +01:00
vmstate-if.h