From: Mike Christie <mikenc@us.ibm.com>
To: Jens Axboe <axboe@suse.de>
Cc: Mike Christie <michaelc@cs.wisc.edu>,
SCSI Mailing List <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH] return all status bytes for sg io.
Date: Wed, 02 Jun 2004 16:42:01 -0700 [thread overview]
Message-ID: <40BE65C9.7020301@us.ibm.com> (raw)
In-Reply-To: <20040602193158.GB2401@suse.de>
Jens Axboe wrote:
> On Wed, Jun 02 2004, Mike Christie wrote:
>
>>Hi Jens,
>>
>>For block/scsi_ioctl.c only the status_byte is returned. However, when sg
>>io is performed through a sg device the host, msg and driver bytes are
>>passed back. I was not sure if this is a bug on the block layers part
>>(becuase as you see in the patch, after the msg, host and driver bytes are
>>zerod out they are tested), or is the bug in the app and it should be
>>modifed to access sg devices instead of block devs. The attached patch was
>>built against 2.6.7-rc2.
>>
>>Thanks,
>>
>>Mike
>
>
>>diff -arup linux-2.6.7-rc2/drivers/block/scsi_ioctl.c linux-2.6.7-rc2-work/drivers/block/scsi_ioctl.c
>>--- linux-2.6.7-rc2/drivers/block/scsi_ioctl.c 2004-05-29 23:26:48.000000000 -0700
>>+++ linux-2.6.7-rc2-work/drivers/block/scsi_ioctl.c 2004-06-02 04:32:27.000000000 -0700
>>@@ -185,11 +185,11 @@ static int sg_io(request_queue_t *q, str
>> blk_execute_rq(q, bd_disk, rq);
>>
>> /* write to all output members */
>>- hdr->status = rq->errors;
>>- hdr->masked_status = (hdr->status >> 1) & 0x1f;
>>- hdr->msg_status = 0;
>>- hdr->host_status = 0;
>>- hdr->driver_status = 0;
>>+ hdr->status = 0xff & rq->errors;
>>+ hdr->masked_status = status_byte(rq->errors);
>>+ hdr->msg_status = msg_byte(rq->errors);
>>+ hdr->host_status = host_byte(rq->errors);
>>+ hdr->driver_status = driver_byte(rq->errors);
>
>
> For SCSI, this looks good. I need to look at ide-cd to be sure it's ok,
> did you verify this?
>
For ide-cd I mostly executed sg commands while doing things like pulling
cables and or running on bad CD's to get SCSI stats like Busy and Check
Condidtion to verify that it worked like before my patch. As far as verifing the
code it looked like ide-cd was just using the scsi status bits like ERROR_MAX
mapped to SAMS_STAT_BUSY and for sense SAM_STAT_CHECK_CONDITION was set. I would
occasionaly get Unknown status (0xb) with and without my patch when unplugging
and replugging in the drive mulitple times. I was thinking this was due to the
sense value ABORTED_COMMAND getting set to rq->errors similar to how ide-cd.c's
ide_cdrom_prep_pc() sets rq->errors to ILLEGAL_REQUEST. Are those type of things
bugs, or a result of not having a request_sense structure available and now
other apps rely on this behavior?
--
Mike Christie
mikenc@us.ibm.com
prev parent reply other threads:[~2004-06-02 23:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-02 12:25 [PATCH] return all status bytes for sg io Mike Christie
2004-06-02 19:31 ` Jens Axboe
2004-06-02 23:42 ` Mike Christie [this message]
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=40BE65C9.7020301@us.ibm.com \
--to=mikenc@us.ibm.com \
--cc=axboe@suse.de \
--cc=linux-scsi@vger.kernel.org \
--cc=michaelc@cs.wisc.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox