From: Douglas Gilbert <dougg@torque.net>
To: James Bottomley <James.Bottomley@SteelEye.com>
Cc: Andrew Burgess <aab@cichlid.com>,
cebbert@redhat.com, davem@davemloft.net,
linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
aradford@gmail.com
Subject: Re: Oops in scsi_send_eh_cmnd 2.6.21-rc5-git6,7,10,13
Date: Fri, 06 Apr 2007 12:32:31 -0400 [thread overview]
Message-ID: <4616761F.2050905@torque.net> (raw)
In-Reply-To: <1175876096.3677.24.camel@mulgrave.il.steeleye.com>
James Bottomley wrote:
> On Fri, 2007-04-06 at 08:51 -0700, Andrew Burgess wrote:
>> James Bottomley wrote:
>>
>>> It's actually a long standing bug in the 3w-xxxx driver. Apparently it
>>> assumes request sense is always the use_sg == 0 case. This is what it
>>> does on a request sense:
>>> static int tw_scsiop_request_sense(TW_Device_Extension *tw_dev, int request_id)
>>> {
>>> dprintk(KERN_NOTICE "3w-xxxx: tw_scsiop_request_sense()\n");
>>> /* For now we just zero the request buffer */
>>> memset(tw_dev->srb[request_id]->request_buffer, 0, tw_dev->srb[request_id]->request_bufflen);
>>> tw_dev->state[request_id] = TW_S_COMPLETED;
>>> tw_state_request_finish(tw_dev, request_id);
>>> ....
>>> Note that it's clearing the request buffer, which is actually zeroing the scatterlist, hence the problem.
>> OK. Is there a quick workaround or should I just wait for
>> Adam & Company to make a patch?
>
> Try this ... I think it's roughly the correct fix.
>
>> You said your earlier patch would hide it, and then said you
>> had a length wrong in it and I'm not sure what length you
>> mean.
>
> It's the length specifier in the error handler request sense command ...
> I'll fix it up and redo my patch through scsi-misc, since it's not going
> to fix the root cause of the problem.
>
> James
>
> diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c
> index bf5d63e..6b303ba 100644
> --- a/drivers/scsi/3w-xxxx.c
> +++ b/drivers/scsi/3w-xxxx.c
> @@ -1864,10 +1864,17 @@ static int tw_scsiop_read_write(TW_Device_Extension *tw_dev, int request_id)
> /* This function will handle the request sense scsi command */
> static int tw_scsiop_request_sense(TW_Device_Extension *tw_dev, int request_id)
> {
> + char request_buffer[18];
> +
> dprintk(KERN_NOTICE "3w-xxxx: tw_scsiop_request_sense()\n");
>
> - /* For now we just zero the request buffer */
> - memset(tw_dev->srb[request_id]->request_buffer, 0, tw_dev->srb[request_id]->request_bufflen);
> + memset(request_buffer, 0, sizeof(request_buffer));
> + request_buffer[0] = 0x70; /* Immediate fixed format */
> + request_buffer[7] = 11; /* minimum size per SPC: 18 bytes */
James,
That last line should be:
request_buffer[7] = 10; /* minimum size per SPC: 18 bytes */
Doug Gilbert
next prev parent reply other threads:[~2007-04-06 16:32 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-06 15:51 Oops in scsi_send_eh_cmnd 2.6.21-rc5-git6,7,10,13 Andrew Burgess
2007-04-06 16:14 ` James Bottomley
2007-04-06 16:32 ` Douglas Gilbert [this message]
2007-04-06 16:47 ` James Bottomley
-- strict thread matches above, loose matches on Subject: below --
2007-04-06 18:18 Andrew Burgess
2007-04-06 15:12 Andrew Burgess
2007-04-06 15:27 ` James Bottomley
2007-04-06 18:32 ` David Miller
2007-04-06 21:35 ` James Bottomley
2007-04-06 2:21 Andrew Burgess
2007-04-06 13:44 ` James Bottomley
2007-04-05 22:13 Andrew Burgess
2007-04-05 22:13 ` Andrew Burgess
2007-04-05 22:36 ` David Miller
2007-04-06 0:02 ` James Bottomley
2007-04-06 0:15 ` David Miller
2007-04-06 0:51 ` James Bottomley
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=4616761F.2050905@torque.net \
--to=dougg@torque.net \
--cc=James.Bottomley@SteelEye.com \
--cc=aab@cichlid.com \
--cc=aradford@gmail.com \
--cc=cebbert@redhat.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.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.