qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] SCSI: rd/wr/vr-protect !=0 is an error


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] SCSI: rd/wr/vr-protect !=0 is an error
Date: Thu, 12 Jul 2012 08:25:14 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1

Il 12/07/2012 02:19, Ronnie Sahlberg ha scritto:
> The QEMU SCSI emulation does not support protection information,
> so any READ/WRITE/VERIFY commands that has the protect bits set to
> non-zero should fail with ILLEGAL_REQUEST/INVALID_FIELD_IN_CDB
> 
> From SCSI SBC :
> If the logical unit does not support protection information,
> then the device server should terminate the command with CHECK CONDITION
> status with the sense key set to ILLEGAL REQUEST and the additional sense
> code set to INVALID FIELD IN CDB.
> 
> Signed-off-by: Ronnie Sahlberg <address@hidden>
> ---
>  hw/scsi-disk.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
> index 34336b1..b2f3c0c 100644
> --- a/hw/scsi-disk.c
> +++ b/hw/scsi-disk.c
> @@ -1555,6 +1555,9 @@ static int32_t scsi_send_command(SCSIRequest *req, 
> uint8_t *buf)
>      case READ_16:
>          len = r->req.cmd.xfer / s->qdev.blocksize;
>          DPRINTF("Read (sector %" PRId64 ", count %d)\n", r->req.cmd.lba, 
> len);
> +        if (r->req.cmd.buf[1] & 0xe0) {
> +            goto fail;
> +        }
>          if (r->req.cmd.lba > s->qdev.max_lba) {
>              goto illegal_lba;
>          }
> @@ -1575,6 +1578,9 @@ static int32_t scsi_send_command(SCSIRequest *req, 
> uint8_t *buf)
>          DPRINTF("Write %s(sector %" PRId64 ", count %d)\n",
>                  (command & 0xe) == 0xe ? "And Verify " : "",
>                  r->req.cmd.lba, len);
> +        if (r->req.cmd.buf[1] & 0xe0) {
> +            goto fail;
> +        }
>          if (r->req.cmd.lba > s->qdev.max_lba) {
>              goto illegal_lba;
>          }
> 

Applied, thanks!

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]