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 <famz@redhat.com> Message-Id: <20170327142625.1249-1-famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5354edd286
commit
bed58b4443
@ -237,9 +237,8 @@ static void scsi_read_complete(void * opaque, int ret)
|
|||||||
assert(max_transfer);
|
assert(max_transfer);
|
||||||
stl_be_p(&r->buf[8], max_transfer);
|
stl_be_p(&r->buf[8], max_transfer);
|
||||||
/* Also take care of the opt xfer len. */
|
/* Also take care of the opt xfer len. */
|
||||||
if (ldl_be_p(&r->buf[12]) > max_transfer) {
|
stl_be_p(&r->buf[12],
|
||||||
stl_be_p(&r->buf[12], max_transfer);
|
MIN_NON_ZERO(max_transfer, ldl_be_p(&r->buf[12])));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
scsi_req_data(&r->req, len);
|
scsi_req_data(&r->req, len);
|
||||||
scsi_req_unref(&r->req);
|
scsi_req_unref(&r->req);
|
||||||
|
Loading…
Reference in New Issue
Block a user