From: Kevin Wolf <kwolf@redhat.com>
To: Bernhard Kohl <bernhard.kohl@nsn.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/4] scsi-disk: fix the mode data header returned by the MODE SENSE(10) command
Date: Mon, 16 Aug 2010 19:02:29 +0200 [thread overview]
Message-ID: <4C696F25.707@redhat.com> (raw)
In-Reply-To: <1280763089-11829-3-git-send-email-bernhard.kohl@nsn.com>
Am 02.08.2010 17:31, schrieb Bernhard Kohl:
> The header for the MODE SENSE(10) command is 8 bytes long.
>
> Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
> ---
> hw/scsi-disk.c | 35 ++++++++++++++++++++++++++++-------
> 1 files changed, 28 insertions(+), 7 deletions(-)
>
> diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c
> index 57439f4..927df54 100644
> --- a/hw/scsi-disk.c
> +++ b/hw/scsi-disk.c
> @@ -606,6 +606,7 @@ static int scsi_disk_emulate_mode_sense(SCSIRequest *req, uint8_t *outbuf)
> uint64_t nb_sectors;
> int page, dbd, buflen;
> uint8_t *p;
> + uint8_t dev_specific_param;
>
> dbd = req->cmd.buf[1] & 0x8;
> page = req->cmd.buf[2] & 0x3f;
> @@ -613,16 +614,31 @@ static int scsi_disk_emulate_mode_sense(SCSIRequest *req, uint8_t *outbuf)
> memset(outbuf, 0, req->cmd.xfer);
> p = outbuf;
>
> - p[1] = 0; /* Default media type. */
> - p[3] = 0; /* Block descriptor length. */
> - if (bdrv_is_read_only(s->bs)) {
> - p[2] = 0x80; /* Readonly. */
> + if (bdrv_get_type_hint(s->bs) == BDRV_TYPE_CDROM ||
> + bdrv_is_read_only(s->bs)) {
This looks like a mismerge. The check for CDROMs was removed when they
became read-only by definition. Please don't reintroduce it.
> + dev_specific_param = 0x80; /* Readonly. */
> + } else {
> + dev_specific_param = 0x00;
> + }
> +
> + if (req->cmd.buf[0] == MODE_SENSE) {
> + p[1] = 0; /* Default media type. */
> + p[2] = dev_specific_param;
> + p[3] = 0; /* Block descriptor length. */
> + p += 4;
> + } else { /* MODE_SENSE_10 */
> + p[2] = 0; /* Default media type. */
> + p[3] = dev_specific_param;
> + p[6] = p[7] = 0; /* Block descriptor length. */
> + p += 8;
> }
> - p += 4;
>
> bdrv_get_geometry(s->bs, &nb_sectors);
> if ((~dbd) & nb_sectors) {
> - outbuf[3] = 8; /* Block descriptor length */
> + if (req->cmd.buf[0] == MODE_SENSE)
> + outbuf[3] = 8; /* Block descriptor length */
> + else /* MODE_SENSE_10 */
> + outbuf[7] = 8; /* Block descriptor length */
Please add curly braces here (see CODING_STYLE).
Kevin
next prev parent reply other threads:[~2010-08-16 17:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-02 15:31 [Qemu-devel] [PATCH 0/4] scsi-disk: improve the emulation of the MODE SENSE command Bernhard Kohl
2010-08-02 15:31 ` [Qemu-devel] [PATCH 1/4] scsi-disk: fix the mode data length field returned by " Bernhard Kohl
2010-08-02 15:31 ` [Qemu-devel] [PATCH 2/4] scsi-disk: fix the mode data header returned by the MODE SENSE(10) command Bernhard Kohl
2010-08-16 17:02 ` Kevin Wolf [this message]
2010-08-27 15:24 ` Bernhard Kohl
2010-08-02 15:31 ` [Qemu-devel] [PATCH 3/4] scsi-disk: fix changeable values returned by the MODE SENSE command Bernhard Kohl
2010-08-16 17:12 ` Kevin Wolf
2010-08-27 15:25 ` Bernhard Kohl
2010-08-02 15:31 ` [Qemu-devel] [PATCH 4/4] scsi-disk: fix the block descriptor " Bernhard Kohl
2010-08-16 17:34 ` Kevin Wolf
2010-08-27 15:26 ` Bernhard Kohl
2010-08-16 17:39 ` [Qemu-devel] [PATCH 0/4] scsi-disk: improve the emulation of " Kevin Wolf
2010-08-17 13:03 ` Bernhard Kohl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C696F25.707@redhat.com \
--to=kwolf@redhat.com \
--cc=bernhard.kohl@nsn.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.