qemu-e2k/hw
Igor Mammedov 60b8fe49cc arm: fix qemu crash on startup with -bios option
When QEMU is started with following CLI
 -machine virt,gic-version=3,accel=kvm -cpu host -bios AAVMF_CODE.fd
it crashes with abort at
 accel/kvm/kvm-all.c:2164:
 KVM_SET_DEVICE_ATTR failed: Group 6 attr 0x000000000000c665: Invalid argument

Which is caused by implicit dependency of kvm_arm_gicv3_reset() on
arm_gicv3_icc_reset() where the later is called by CPU reset
reset callback.

However commit:
 3b77f6c arm/boot: split load_dtb() from arm_load_kernel()
broke CPU reset callback registration in case

  arm_load_kernel()
      ...
      if (!info->kernel_filename || info->firmware_loaded)

branch is taken, i.e. it's sufficient to provide a firmware
or do not provide kernel on CLI to skip cpu reset callback
registration, where before offending commit the callback
has been registered unconditionally.

Fix it by registering the callback right at the beginning of
arm_load_kernel() unconditionally instead of doing it at the end.

NOTE:
 we probably should eliminate that dependency anyways as well as
 separate arch CPU reset parts from arm_load_kernel() into CPU
 itself, but that refactoring that I probably would have to do
 anyways later for CPU hotplug to work.

Reported-by: Auger Eric <eric.auger@redhat.com>
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Message-id: 1527070950-208350-1-git-send-email-imammedo@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2018-05-31 14:50:51 +01:00
..
9pfs xen: remove other open-coded use of libxengnttab 2018-05-22 11:43:21 -07:00
acpi acpi: fix a comment about aml_call0() 2018-05-20 08:58:58 +03:00
adc Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
alpha hw/alpha/dp264: Use the TYPE_SMC37C669_SUPERIO 2018-03-12 16:12:49 +01:00
arm arm: fix qemu crash on startup with -bios option 2018-05-31 14:50:51 +01:00
audio hw/audio: Fix crashes when devices are used on ISA bus without DMA 2018-03-26 14:37:13 +02:00
block Xen 2018/05/22 2018-05-24 11:30:59 +01:00
bt hw/bt: Replace fprintf(stderr, "*\n" with error_report() 2018-01-22 09:51:00 +01:00
char xen: remove other open-coded use of libxengnttab 2018-05-22 11:43:21 -07:00
core numa: postpone options post-processing till machine_run_board_init() 2018-05-30 13:08:11 -03:00
cpu hw: use "qemu/osdep.h" as first #include in source files 2017-12-18 17:07:02 +03:00
cris Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
display bochs-display: add pcie support 2018-05-24 10:42:13 +02:00
dma xlnx-zdma: Add a model of the Xilinx ZynqMP generic DMA 2018-05-18 17:48:07 +01:00
gpio Replace all occurances of __FUNCTION__ with __func__ 2018-01-22 09:46:18 +01:00
hppa Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
i2c hw/i2c-ddc: Do not fail writes 2018-03-01 11:05:45 +00:00
i386 hw/i386: Rename 2.13 machine types to 3.0 2018-05-29 11:28:46 +01:00
ide hw/ide/ahci: Keep ALLWINNER_AHCI() macro internal 2018-05-20 08:37:53 +03:00
input ps2: Fix mouse stream corruption due to lost data 2018-05-15 11:31:33 +02:00
intc arm_gicv3_kvm: increase clroffset accordingly 2018-05-31 14:50:51 +01:00
ipack pci: Add INTERFACE_CONVENTIONAL_PCI_DEVICE to Conventional PCI devices 2017-10-15 05:54:43 +03:00
ipmi qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
isa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
lm32 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
m68k hw/m68k/mcf5208: Fix trivial typo in board description 2018-05-01 15:37:54 +02:00
mem nvdimm: fix typo in label-size definition 2018-05-23 17:02:03 +03:00
microblaze Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
mips serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
misc Remove unnecessary variables for function return value 2018-05-20 08:48:13 +03:00
moxie Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
net Xen 2018/05/22 2018-05-24 11:30:59 +01:00
nios2 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
nvram Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
openrisc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
pci virtio,vhost,pci,pc: features, cleanups 2018-03-20 15:48:34 +00:00
pci-bridge virtio,vhost,pci,pc: features, fixes and cleanups 2018-02-13 16:33:31 +00:00
pci-host hw/pci-host/q35: Replace hardcoded value with macro 2018-05-23 03:14:40 +03:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc ppc: Rename 2.13 machines to 3.0 2018-05-29 11:28:46 +01:00
rdma hw/rdma: Fix possible out of bounds access to port GID index 2018-05-03 20:52:29 +03:00
riscv RISC-V: QEMU 2.13 Minor Fixes 2018-05-10 10:25:15 +01:00
s390x hw/s390x: Rename 2.13 machines to 3.0 2018-05-29 11:28:46 +01:00
scsi hw/scsi: support SCSI-2 passthrough without PI 2018-04-09 16:36:39 +02:00
sd sdcard: Correct CRC16 offset in sd_function_switch() 2018-05-15 14:58:44 +01:00
sh4 Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
smbios Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
sparc Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
sparc64 serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS 2018-04-26 13:57:00 +01:00
ssi xilinx_spips: Correct SNOOP_NONE state when flushing the txfifo 2018-04-26 11:04:40 +01:00
timer hw/timer/mt48t59: Fix bit-rotten NVRAM_PRINTF format strings 2018-05-20 08:50:16 +03:00
tpm tpm: extend TPM TIS with state migration support 2018-05-24 12:07:04 -04:00
tricore hw: Do not include "sysemu/block-backend.h" if it is not necessary 2018-03-12 16:12:46 +01:00
unicore32 hw/input/i8042: Extract declarations from i386/pc.h into input/i8042.h 2018-03-12 16:12:48 +01:00
usb xen: remove other open-coded use of libxengnttab 2018-05-22 11:43:21 -07:00
vfio vfio-ccw: introduce vfio_ccw_get_device() 2018-04-30 10:31:41 +02:00
virtio hw/virtio: Fix brace Werror with clang 6.0.0 2018-05-23 17:02:02 +03:00
watchdog qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
xen xen_backend: make the xen_feature_grant_copy flag private 2018-05-22 11:43:21 -07:00
xenpv hw/xen*: Replace fprintf(stderr, "*\n" with error_report() 2018-02-06 18:29:46 +01:00
xtensa Change references to serial_hds[] to serial_hd() 2018-04-26 13:57:00 +01:00
Makefile.objs hw/rdma: Add wrappers and macros 2018-02-19 13:03:24 +02:00