diff mbox

SCSI: Standard INQUIRY data should report HiSup flag as set.

Message ID 1347671609-26498-2-git-send-email-ronniesahlberg@gmail.com
State New
Headers show

Commit Message

ronnie sahlberg Sept. 15, 2012, 1:13 a.m. UTC
QEMU as far as I know only reports LUN numbers using the modes that
are described in SAM4.
As such, since all LUN numbers generated by the SCSI emulation in QEMU
follow SAM4, we should set the HiSup bit in the standard INQUIRY data
to indicate such.

From SAM4:
  4.6.3 LUNs overview
  All LUN formats described in this standard are hierarchical in
  structure even when only a single level in that hierarchy is used.
  The HISUP bit shall be set to one in the standard INQUIRY data
  (see SPC-4) when any LUN format described in this standard is used.
  Non-hierarchical formats are outside the scope of this standard.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
---
 hw/scsi-disk.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Comments

Paolo Bonzini Sept. 17, 2012, 9:17 a.m. UTC | #1
Il 15/09/2012 03:13, Ronnie Sahlberg ha scritto:
> QEMU as far as I know only reports LUN numbers using the modes that
> are described in SAM4.
> As such, since all LUN numbers generated by the SCSI emulation in QEMU
> follow SAM4, we should set the HiSup bit in the standard INQUIRY data
> to indicate such.
> 
> From SAM4:
>   4.6.3 LUNs overview
>   All LUN formats described in this standard are hierarchical in
>   structure even when only a single level in that hierarchy is used.
>   The HISUP bit shall be set to one in the standard INQUIRY data
>   (see SPC-4) when any LUN format described in this standard is used.
>   Non-hierarchical formats are outside the scope of this standard.
> 
> Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
> ---
>  hw/scsi-disk.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
> index 1585683..52bc062 100644
> --- a/hw/scsi-disk.c
> +++ b/hw/scsi-disk.c
> @@ -678,7 +678,7 @@ static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
>       * is actually implemented, but we're good enough.
>       */
>      outbuf[2] = 5;
> -    outbuf[3] = 2; /* Format 2 */
> +    outbuf[3] = 2 | 0x10; /* Format 2, HiSup */
>  
>      if (buflen > 36) {
>          outbuf[4] = buflen - 5; /* Additional Length = (Len - 1) - 4 */
> 

Applied to scsi-next branch, thanks.

Paolo
diff mbox

Patch

diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
index 1585683..52bc062 100644
--- a/hw/scsi-disk.c
+++ b/hw/scsi-disk.c
@@ -678,7 +678,7 @@  static int scsi_disk_emulate_inquiry(SCSIRequest *req, uint8_t *outbuf)
      * is actually implemented, but we're good enough.
      */
     outbuf[2] = 5;
-    outbuf[3] = 2; /* Format 2 */
+    outbuf[3] = 2 | 0x10; /* Format 2, HiSup */
 
     if (buflen > 36) {
         outbuf[4] = buflen - 5; /* Additional Length = (Len - 1) - 4 */