From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:49351) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SQEA3-00088l-Ir for qemu-devel@nongnu.org; Fri, 04 May 2012 04:46:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SQE9w-0007PW-Sy for qemu-devel@nongnu.org; Fri, 04 May 2012 04:46:47 -0400 Received: from mail-pb0-f45.google.com ([209.85.160.45]:40984) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SQE9w-0007G0-Jv for qemu-devel@nongnu.org; Fri, 04 May 2012 04:46:40 -0400 Received: by mail-pb0-f45.google.com with SMTP id ro12so4505829pbb.4 for ; Fri, 04 May 2012 01:46:39 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 4 May 2012 10:45:50 +0200 Message-Id: <1336121154-26517-11-git-send-email-pbonzini@redhat.com> In-Reply-To: <1336121154-26517-1-git-send-email-pbonzini@redhat.com> References: <1336121154-26517-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 10/14] scsi: do not require a minimum allocation length for INQUIRY List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org 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 --- hw/scsi-bus.c | 8 -------- hw/scsi-disk.c | 11 ----------- 2 files changed, 19 deletions(-) diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index 46cd1f9..4090b9f 100644 --- a/hw/scsi-bus.c +++ b/hw/scsi-bus.c @@ -367,10 +367,6 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r) if (r->req.cmd.buf[1] & 0x1) { /* Vital product data */ 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++] = 0x00; @@ -398,10 +394,6 @@ static bool scsi_target_emulate_inquiry(SCSITargetReq *r) } /* PAGE CODE == 0 */ - if (r->req.cmd.xfer < 5) { - return false; - } - r->len = MIN(r->req.cmd.xfer, 36); memset(r->buf, 0, r->len); if (r->req.lun != 0) { diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index e0f1821..298b4ef 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -524,11 +524,6 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf) if (req->cmd.buf[1] & 0x1) { /* Vital product data */ 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++] = page_code ; // this page @@ -659,12 +654,6 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf) } /* 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; if (buflen > SCSI_MAX_INQUIRY_LEN) { buflen = SCSI_MAX_INQUIRY_LEN; -- 1.7.9.3