scsi: do not require a minimum allocation length for INQUIRY

The requirements on the INQUIRY buffer size are not in my copy of SPC
(SPC-4 r27) and not observed by LIO.  Rip them out.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2012-05-03 14:34:45 +02:00
parent 065c25996b
commit 3c3d8a95ca
2 changed files with 0 additions and 19 deletions

View File

@ -367,10 +367,6 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r)
if (r->req.cmd.buf[1] & 0x1) { if (r->req.cmd.buf[1] & 0x1) {
/* Vital product data */ /* Vital product data */
uint8_t page_code = r->req.cmd.buf[2]; uint8_t page_code = r->req.cmd.buf[2];
if (r->req.cmd.xfer < 4) {
return false;
}
r->buf[r->len++] = page_code ; /* this page */ r->buf[r->len++] = page_code ; /* this page */
r->buf[r->len++] = 0x00; r->buf[r->len++] = 0x00;
@ -398,10 +394,6 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r)
} }
/* PAGE CODE == 0 */ /* PAGE CODE == 0 */
if (r->req.cmd.xfer < 5) {
return false;
}
r->len = MIN(r->req.cmd.xfer, 36); r->len = MIN(r->req.cmd.xfer, 36);
memset(r->buf, 0, r->len); memset(r->buf, 0, r->len);
if (r->req.lun != 0) { if (r->req.lun != 0) {

View File

@ -524,11 +524,6 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
if (req->cmd.buf[1] & 0x1) { if (req->cmd.buf[1] & 0x1) {
/* Vital product data */ /* Vital product data */
uint8_t page_code = req->cmd.buf[2]; uint8_t page_code = req->cmd.buf[2];
if (req->cmd.xfer < 4) {
BADF("Error: Inquiry (EVPD[%02X]) buffer size %zd is "
"less than 4\n", page_code, req->cmd.xfer);
return -1;
}
outbuf[buflen++] = s->qdev.type & 0x1f; outbuf[buflen++] = s->qdev.type & 0x1f;
outbuf[buflen++] = page_code ; // this page outbuf[buflen++] = page_code ; // this page
@ -659,12 +654,6 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
} }
/* PAGE CODE == 0 */ /* PAGE CODE == 0 */
if (req->cmd.xfer < 5) {
BADF("Error: Inquiry (STANDARD) buffer size %zd "
"is less than 5\n", req->cmd.xfer);
return -1;
}
buflen = req->cmd.xfer; buflen = req->cmd.xfer;
if (buflen > SCSI_MAX_INQUIRY_LEN) { if (buflen > SCSI_MAX_INQUIRY_LEN) {
buflen = SCSI_MAX_INQUIRY_LEN; buflen = SCSI_MAX_INQUIRY_LEN;