[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 9/9] hw/usb/hcd-ehci: Fix crash when showing help of EHCI devices
From: |
Gerd Hoffmann |
Subject: |
[PULL 9/9] hw/usb/hcd-ehci: Fix crash when showing help of EHCI devices |
Date: |
Fri, 26 Mar 2021 13:49:32 +0100 |
From: Thomas Huth <thuth@redhat.com>
QEMU crashes with certain targets when trying to show the help
output of EHCI devices:
$ ./qemu-system-aarch64 -device ich9-usb-ehci1,help
qemu-system-aarch64: ../../devel/qemu/softmmu/physmem.c:1154: phys_section_add:
Assertion `map->sections_nb < TARGET_PAGE_SIZE' failed.
Aborted (core dumped)
This happens because the device is doing things at "instance_init" time
that should be done at "realize" time instead. So move the related code
to the realize() function instead. (NB: This now also matches the
memory_region_del_subregion() calls which are done in usb_ehci_unrealize(),
and not during finalize()).
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20210326095155.1994604-1-thuth@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
hw/usb/hcd-ehci.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index f71af0ad2d8f..6caa7ac6c28f 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -2514,6 +2514,11 @@ void usb_ehci_realize(EHCIState *s, DeviceState *dev,
Error **errp)
return;
}
+ memory_region_add_subregion(&s->mem, s->capsbase, &s->mem_caps);
+ memory_region_add_subregion(&s->mem, s->opregbase, &s->mem_opreg);
+ memory_region_add_subregion(&s->mem, s->opregbase + s->portscbase,
+ &s->mem_ports);
+
usb_bus_new(&s->bus, sizeof(s->bus), s->companion_enable ?
&ehci_bus_ops_companion : &ehci_bus_ops_standalone, dev);
for (i = 0; i < s->portnr; i++) {
@@ -2581,11 +2586,6 @@ void usb_ehci_init(EHCIState *s, DeviceState *dev)
"operational", s->portscbase);
memory_region_init_io(&s->mem_ports, OBJECT(dev), &ehci_mmio_port_ops, s,
"ports", 4 * s->portnr);
-
- memory_region_add_subregion(&s->mem, s->capsbase, &s->mem_caps);
- memory_region_add_subregion(&s->mem, s->opregbase, &s->mem_opreg);
- memory_region_add_subregion(&s->mem, s->opregbase + s->portscbase,
- &s->mem_ports);
}
void usb_ehci_finalize(EHCIState *s)
--
2.30.2
- [PULL 0/9] Fixes 20210326 patches, Gerd Hoffmann, 2021/03/26
- [PULL 1/9] usb: Remove "-usbdevice ccid", Gerd Hoffmann, 2021/03/26
- [PULL 3/9] vhost-user-gpu: fix vugbm_device_init fallback, Gerd Hoffmann, 2021/03/26
- [PULL 2/9] vhost-user-gpu: glFlush before notifying clients, Gerd Hoffmann, 2021/03/26
- [PULL 5/9] hw/usb/hcd-ehci-sysbus: Free USBPacket on instance finalize(), Gerd Hoffmann, 2021/03/26
- [PULL 6/9] s390x: move S390_ADAPTER_SUPPRESSIBLE, Gerd Hoffmann, 2021/03/26
- [PULL 4/9] vhost-user-gpu: fix cursor move/update, Gerd Hoffmann, 2021/03/26
- [PULL 7/9] s390x: add have_virtio_ccw, Gerd Hoffmann, 2021/03/26
- [PULL 9/9] hw/usb/hcd-ehci: Fix crash when showing help of EHCI devices,
Gerd Hoffmann <=
- [PULL 8/9] s390x: modularize virtio-gpu-ccw, Gerd Hoffmann, 2021/03/26
- Re: [PULL 0/9] Fixes 20210326 patches, Peter Maydell, 2021/03/26