hyperv/storvsc: Force SPC3 for CDROM attached.
This unbreaks the CDROM attaching on GEN2 VMs. On GEN1 VMs, CDROM is attached to emulated ATA controller. PR: 220790 Submitted by: Hongjiang Zhang <honzhan microsoft com> MFC after: 3 days Sponsored by: Microsoft Differential Revision: https://reviews.freebsd.org/D11634
This commit is contained in:
parent
1eb6bbbb6e
commit
4d77702aa0
@ -2209,6 +2209,23 @@ storvsc_io_done(struct hv_storvsc_request *reqp)
|
||||
resp_buf[0], resp_buf[1], resp_buf[2],
|
||||
resp_buf[3], resp_buf[4]);
|
||||
}
|
||||
/*
|
||||
* XXX: Hyper-V (since win2012r2) responses inquiry with
|
||||
* unknown version (0) for GEN-2 DVD device.
|
||||
* Manually set the version number to SPC3 in order to
|
||||
* ask CAM to continue probing with "PROBE_REPORT_LUNS".
|
||||
* see probedone() in scsi_xpt.c
|
||||
*/
|
||||
if (SID_TYPE(inq_data) == T_CDROM &&
|
||||
inq_data->version == 0 &&
|
||||
(vmstor_proto_version >= VMSTOR_PROTOCOL_VERSION_WIN8)) {
|
||||
inq_data->version = SCSI_REV_SPC3;
|
||||
if (bootverbose) {
|
||||
xpt_print(ccb->ccb_h.path,
|
||||
"set version from 0 to %d\n",
|
||||
inq_data->version);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* XXX: Manually fix the wrong response returned from WS2012
|
||||
*/
|
||||
@ -2218,7 +2235,7 @@ storvsc_io_done(struct hv_storvsc_request *reqp)
|
||||
vmstor_proto_version == VMSTOR_PROTOCOL_VERSION_WIN7)) {
|
||||
if (data_len >= 4 &&
|
||||
(resp_buf[2] == 0 || resp_buf[3] == 0)) {
|
||||
resp_buf[2] = 5; // verion=5 means SPC-3
|
||||
resp_buf[2] = SCSI_REV_SPC3;
|
||||
resp_buf[3] = 2; // resp fmt must be 2
|
||||
if (bootverbose)
|
||||
xpt_print(ccb->ccb_h.path,
|
||||
|
Loading…
x
Reference in New Issue
Block a user