On Wed, Mar 28, 2018 at 12:41:41AM +0800, Fam Zheng wrote: > Some backends report big max_io_sectors. Making min_io_size the same > value in this case will make it impossible for guest to align memory, > therefore the disk may not be usable at all. > > Do not enlarge them when they are zero. > > Reported-by: David Gibson <[email protected]> > Signed-off-by: Fam Zheng <[email protected]>
Tested-by: David Gibson <[email protected]> With this patch applied, I was able to successfully install a ppc64le guest again. > > --- > > v2: Leave the values alone if zero. [Paolo] > At least we can consult block layer for a slightly more sensible > opt_io_size, but that's for another patch. > --- > hw/scsi/scsi-disk.c | 10 ++++++---- > 1 file changed, 6 insertions(+), 4 deletions(-) > > diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c > index f5ab767ab5..f8ed8cf2b4 100644 > --- a/hw/scsi/scsi-disk.c > +++ b/hw/scsi/scsi-disk.c > @@ -714,10 +714,12 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, > uint8_t *outbuf) > > /* min_io_size and opt_io_size can't be greater than > * max_io_sectors */ > - min_io_size = > - MIN_NON_ZERO(min_io_size, max_io_sectors); > - opt_io_size = > - MIN_NON_ZERO(opt_io_size, max_io_sectors); > + if (min_io_size) { > + min_io_size = MIN(min_io_size, max_io_sectors); > + } > + if (opt_io_size) { > + opt_io_size = MIN(opt_io_size, max_io_sectors); > + } > } > /* required VPD size with unmap support */ > buflen = 0x40; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
