qemu/hw/s390x
David Hildenbrand 150f462538 s390x/pci: Fix hotplugging of PCI bridges
When hotplugging a PCI bridge right now to the root port, we resolve
pci_get_bus(pdev)->parent_dev, which results in a SEGFAULT. Hotplugging
really only works right now when hotplugging to another bridge.

Instead, we have to properly check if we are already at the root.

Let's cleanup the code while at it a bit and factor out updating the
subordinate bus number into a separate function. The check for
"old_nr < nr" is right now not strictly necessary, but makes it more
obvious what is actually going on.

Most probably fixing up the topology is not our responsibility when
hotplugging. The guest has to sort this out. But let's keep it for now
and only fix current code to not crash.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20190130155733.32742-3-david@redhat.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
2019-02-05 10:16:59 +01:00
..
3270-ccw.c s390x: remove 's390-squash-mcss' option 2018-08-20 14:18:49 +02:00
ap-bridge.c s390x/ap: base Adjunct Processor (AP) object model 2018-10-12 11:32:18 +02:00
ap-device.c s390x/ap: base Adjunct Processor (AP) object model 2018-10-12 11:32:18 +02:00
ccw-device.c s390x/ccw: make sure all ccw devices are properly reset 2018-05-14 17:10:02 +02:00
ccw-device.h s390x: vmstatify config migration for virtio-ccw 2017-07-05 12:16:55 +02:00
css-bridge.c s390x: remove 's390-squash-mcss' option 2018-08-20 14:18:49 +02:00
css.c hw/s390/ccw.c: Don't take address of packed members 2018-12-20 17:07:24 +01:00
event-facility.c hw/s390x: Allow to configure the consoles with the "-serial" parameter 2018-04-30 10:48:29 +02:00
ipl.c loader: Check access size when calling rom_ptr() to avoid crashes 2018-07-02 10:37:38 +02:00
ipl.h hw/s390x/ipl: Fix alignment problems of S390IPLState members 2018-10-04 10:32:38 +02:00
Makefile.objs hw/s390x: Include the tod-qemu also for builds with --disable-tcg 2018-10-12 11:32:19 +02:00
s390-ccw.c s390x: remove 's390-squash-mcss' option 2018-08-20 14:18:49 +02:00
s390-pci-bus.c s390x/pci: Fix hotplugging of PCI bridges 2019-02-05 10:16:59 +01:00
s390-pci-bus.h s390x/pci: Drop release timer and replace it with a flag 2019-02-04 13:47:50 +01:00
s390-pci-inst.c s390x/pci: add common function measurement block 2019-01-18 11:52:01 +01:00
s390-pci-inst.h s390x/pci: add common function measurement block 2019-01-18 11:52:01 +01:00
s390-pci-stub.c s390x/pci: remove idx from msix msg data 2017-09-19 18:21:32 +02:00
s390-skeys-kvm.c s390x/s390-skeys: Mark the storage key devices with user_creatable = false 2017-08-30 18:23:25 +02:00
s390-skeys.c hw/s390x: Use the IEC binary prefix definitions 2018-07-02 15:41:14 +02:00
s390-stattrib-kvm.c s390x/storage attributes: fix CMMA_BLOCK_SIZE usage 2018-07-11 14:36:54 +02:00
s390-stattrib.c s390x/storage attributes: fix CMMA_BLOCK_SIZE usage 2018-07-11 14:36:54 +02:00
s390-virtio-ccw.c machine: Use shorter format for GlobalProperty arrays 2019-01-09 22:10:00 -02:00
s390-virtio-hcall.c s390x: rename s390-virtio.h to s390-virtio-hcall.h 2017-09-19 18:31:31 +02:00
s390-virtio-hcall.h s390/kvm_virtio/linux-headers: remove traces of old virtio transport 2017-11-24 10:52:05 +01:00
sclp.c s390x/sclp: fix maxram calculation 2018-07-30 17:41:52 +02:00
sclpcpu.c s390x/sclp: clean up sclp masks 2018-03-08 15:49:23 +01:00
sclpquiesce.c s390x/sclp: clean up sclp masks 2018-03-08 15:49:23 +01:00
tod-kvm.c s390x/tod: Properly stop the KVM TOD while the guest is not running 2018-12-12 10:39:28 +01:00
tod-qemu.c s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
tod.c s390x/tcg: properly implement the TOD 2018-07-02 10:37:38 +02:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00
vhost-vsock-ccw.c hw/s390x: Move vhost-vsock-ccw code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-9p.c hw/s390x: Move virtio-ccw-9p code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-balloon.c hw/s390x: Move virtio-ccw-balloon code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-blk.c hw/s390x: Move virtio-ccw-blk code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-crypto.c hw/s390x: Move virtio-ccw-crypto code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-gpu.c hw/s390x: Move virtio-ccw-gpu code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-input.c hw/s390x: Move virtio-ccw-input code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-net.c hw/s390x: Move virtio-ccw-net code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-rng.c hw/s390x: Move virtio-ccw-rng code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-scsi.c hw/s390x: Move virtio-ccw-scsi code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw-serial.c hw/s390x: Move virtio-ccw-serial code to a separate file 2018-08-28 17:37:01 +02:00
virtio-ccw.c hw/s390x/virtio-ccw.c: Don't take address of fields in packed structs 2018-12-12 10:39:28 +01:00
virtio-ccw.h s390x/ccw: make sure all ccw devices are properly reset 2018-05-14 17:10:02 +02:00