From: Fam Zheng Date: Mon, 27 Mar 2017 14:26:25 +0000 (+0800) Subject: scsi-generic: Fill in opt_xfer_len in INQUIRY reply if it is zero X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=bed58b4443b001227b953dca80ce76fa76ea0fc1;p=qmiga%2Fqemu.git scsi-generic: Fill in opt_xfer_len in INQUIRY reply if it is zero When opt_xfer_len is zero, Linux ignores max_xfer_len erroneously. While that obviously should be fixed, we do older guests a favor to always filling in a value. Signed-off-by: Fam Zheng Message-Id: <20170327142625.1249-1-famz@redhat.com> Signed-off-by: Paolo Bonzini --- diff --git a/hw/scsi/scsi-generic.c b/hw/scsi/scsi-generic.c index 2933119e7d..a55ff87c22 100644 --- a/hw/scsi/scsi-generic.c +++ b/hw/scsi/scsi-generic.c @@ -237,9 +237,8 @@ static void scsi_read_complete(void * opaque, int ret) assert(max_transfer); stl_be_p(&r->buf[8], max_transfer); /* Also take care of the opt xfer len. */ - if (ldl_be_p(&r->buf[12]) > max_transfer) { - stl_be_p(&r->buf[12], max_transfer); - } + stl_be_p(&r->buf[12], + MIN_NON_ZERO(max_transfer, ldl_be_p(&r->buf[12]))); } scsi_req_data(&r->req, len); scsi_req_unref(&r->req);