mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
pc-bios/s390-ccw: Build a reasonable max_sectors limit
Now that we've read all the possible limits that have been defined for a virtio-scsi controller and the disk we're booting from, it's possible that we are STILL going to exceed the limits of the host device. For example, a "-device scsi-generic" device does not support the Block Limits VPD page. So, let's fallback to something that seems to work for most boot configurations if larger values were specified (including if nothing was explicitly specified, and we took default values). Signed-off-by: Eric Farman <farman@linux.vnet.ibm.com> Message-Id: <20170510155359.32727-8-farman@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
fe921fc8b7
commit
de4e3ae408
2 changed files with 11 additions and 0 deletions
|
@ -399,6 +399,15 @@ void virtio_scsi_setup(VDev *vdev)
|
|||
vdev->max_transfer = evpd_bl->max_transfer;
|
||||
}
|
||||
|
||||
/*
|
||||
* The host sg driver will often be unhappy with particularly large
|
||||
* I/Os that exceed the block iovec limits. Let's enforce something
|
||||
* reasonable, despite what the device configuration tells us.
|
||||
*/
|
||||
|
||||
vdev->max_transfer = MIN_NON_ZERO(VIRTIO_SCSI_MAX_SECTORS,
|
||||
vdev->max_transfer);
|
||||
|
||||
if (!scsi_read_capacity(vdev, data, data_size)) {
|
||||
virtio_scsi_verify_response(&resp, "virtio-scsi:setup:read_capacity");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue