From: "Juergen E. Fischer" <fischer@linux-buechse.de>
To: "Randy.Dunlap" <rddunlap@osdl.org>
Cc: linux-scsi@vger.kernel.org, James.Bottomley@SteelEye.com,
fischer@norbit.de
Subject: Re: [PATCH] [v2] aha152x cmnd->device oops
Date: Wed, 29 Oct 2003 13:20:09 +0100 [thread overview]
Message-ID: <20031029122008.GA5903@linux-buechse.de> (raw)
In-Reply-To: <20031028162610.6dcfd06e.rddunlap@osdl.org>
Hi Randy,
On Tue, Oct 28, 2003 at 16:26:10 -0800, Randy.Dunlap wrote:
> On Tue, 28 Oct 2003 14:50:28 -0800 Mike Christie <mikenc@us.ibm.com> wrote:
>
> | Hi Randy,
> |
> | > if(!(DONE_SC->SCp.Status & not_issued)) {
> | > - Scsi_Cmnd *cmnd = kmalloc(sizeof(Scsi_Cmnd), GFP_ATOMIC);
> | > + Scsi_Cmnd *cmnd = scsi_get_command(DONE_SC->device, GFP_ATOMIC);
> |
> | Do you need to add a scsi_put_command to balance this get when the
> | command completes?
> |
> | > + cmnd->device = ptr->device;
> |
> | Don't even need this now. scsi_get_command will set the device for you.
> |
> | Mike
>
> Hers's v3 of the aha152x patch. However, I'm not satisfied with it,
> so I'm not asking James to apply it. I don't know the state machine
> or the hardware well enough to understand and patch it.
> Things that I don't like about it:
>
> a. calling aha152x_internal_queue() with cmnd pointer in 2 places.
> Probably the second one should be NULL.
> b. Easy to confuse the state machine by changing just one variable,
> like DONE_SC (i.e., it's risky and I can't test it, although we
> do have a bug report and can ask that reporter to test it).
> c. int result = SCpnt->SCp.Status; /*FIXME*/
> SCp.Status is not valid here AFAIK, and I don't know how to get
> the current command status at this point.
There are 2 specially "commands" which are used internally in the driver
only (so I don't see a problem in using kmalloc instead of
scsi_get_command; but nevertheless ->device needs to be intialized
correctly, which is what scsi_get_command() does and the current code
fails to do).
The first is when a command returns with status CHECK CONDITION and the
driver needs to do a REQUEST SENSE to fetch sense data and add that to
the Ssci_Cmnd which resulted in the CHECK CONDITION. The internally
queued command fills the sense_buffer of the offending command and then
calls its ->scsi_done().
The second it when the controller needs to be resetted. Both are purely
internal to the driver.
I'll test this in the evening.
Jürgen
--
Phase 1: Where do you want to go today?
Phase 2: This is where you want to go today.
Phase 3: You're not going anywhere today.
-- seen on /.
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2003-10-29 12:24 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-27 15:57 [PATCH] scsi_device refcounting and list lockdown Christoph Hellwig
2003-10-28 0:01 ` Randy.Dunlap
2003-10-28 9:06 ` Christoph Hellwig
2003-10-28 20:45 ` [PATCH] [v2] aha152x cmnd->device oops Randy.Dunlap
2003-10-28 22:50 ` Mike Christie
2003-10-28 22:50 ` Randy.Dunlap
2003-10-29 0:26 ` Randy.Dunlap
2003-10-29 12:20 ` Juergen E. Fischer [this message]
2003-10-29 14:58 ` James Bottomley
2003-10-29 17:56 ` Juergen E. Fischer
2003-10-29 18:10 ` James Bottomley
2003-10-30 21:19 ` Juergen E. Fischer
2003-10-29 13:42 ` Christoph Hellwig
2003-10-28 2:32 ` [PATCH] scsi_device refcounting and list lockdown Mike Anderson
2003-10-28 9:07 ` Christoph Hellwig
2003-10-28 15:52 ` James Bottomley
2003-10-28 17:37 ` Christoph Hellwig
2003-10-30 22:41 ` James Bottomley
2003-10-31 9:11 ` Christoph Hellwig
2003-11-14 11:50 ` Christoph Hellwig
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=20031029122008.GA5903@linux-buechse.de \
--to=fischer@linux-buechse.de \
--cc=James.Bottomley@SteelEye.com \
--cc=fischer@norbit.de \
--cc=linux-scsi@vger.kernel.org \
--cc=rddunlap@osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).