[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 12/12] hw/s390x/ipl: Fix crash with virtio-scsi-pci d
From: |
Cornelia Huck |
Subject: |
[Qemu-devel] [PULL 12/12] hw/s390x/ipl: Fix crash with virtio-scsi-pci device |
Date: |
Tue, 2 May 2017 15:36:04 +0200 |
From: Thomas Huth <address@hidden>
qemu-system-s390x currently crashes when it is started with a
virtio-scsi-pci device, e.g.:
qemu-system-s390x -nographic -enable-kvm -device virtio-scsi-pci \
-drive file=/tmp/disk.dat,if=none,id=d1,format=raw \
-device scsi-cd,drive=d1,bootindex=1
The problem is that the code in s390_gen_initial_iplb() currently assumes
that all SCSI devices are also CCW devices, which is not the case for
virtio-scsi-pci of course. Fix it by adding an appropriate check for
TYPE_CCW_DEVICE here.
Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: Christian Borntraeger <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
---
hw/s390x/ipl.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c
index 0711ee927a..75d3c681a4 100644
--- a/hw/s390x/ipl.c
+++ b/hw/s390x/ipl.c
@@ -249,7 +249,13 @@ static bool s390_gen_initial_iplb(S390IPLState *ipl)
SCSIBus *bus = scsi_bus_from_device(sd);
VirtIOSCSI *vdev = container_of(bus, VirtIOSCSI, bus);
VirtIOSCSICcw *scsi_ccw = container_of(vdev, VirtIOSCSICcw, vdev);
- CcwDevice *ccw_dev = CCW_DEVICE(scsi_ccw);
+ CcwDevice *ccw_dev;
+
+ ccw_dev = (CcwDevice *)object_dynamic_cast(OBJECT(scsi_ccw),
+ TYPE_CCW_DEVICE);
+ if (!ccw_dev) { /* It might be a PCI device instead */
+ return false;
+ }
ipl->iplb.len = cpu_to_be32(S390_IPLB_MIN_QEMU_SCSI_LEN);
ipl->iplb.blk0_len =
--
2.11.0
- [Qemu-devel] [PULL 04/12] util/qemu-config: Add loadparm to qemu machine_opts, (continued)
- [Qemu-devel] [PULL 04/12] util/qemu-config: Add loadparm to qemu machine_opts, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 03/12] hw/s390x/sclp: update LOADPARM in SCP Info, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 06/12] pc-bios/s390-ccw: get LOADPARM stored in SCP Read Info, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 07/12] pc-bios/s390-ccw: provide a function to interpret LOADPARM value, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 05/12] pc-bios/s390-ccw: Make ebcdic/ascii conversion public, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 01/12] hw/s390x: provide loadparm property for the machine, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 08/12] pc-bios/s390-ccw: provide entry selection on LOADPARM for SCSI disk, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 10/12] pc-bios/s390-ccw: add boot entry selection to El Torito routine, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 09/12] pc-bios/s390-ccw: add boot entry selection for ECKD DASD, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 11/12] pc-bios/s390-ccw.img: update image, Cornelia Huck, 2017/05/02
- [Qemu-devel] [PULL 12/12] hw/s390x/ipl: Fix crash with virtio-scsi-pci device,
Cornelia Huck <=
- Re: [Qemu-devel] [PULL 00/12] next batch of s390x patches, Stefan Hajnoczi, 2017/05/05