public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Willem Riede <wrlk@riede.org>
To: Luben Tuikov <luben@splentec.com>
Cc: linux-scsi@vger.kernel.org
Subject: Re: ide-scsi oops
Date: Mon, 23 Dec 2002 16:39:13 -0500	[thread overview]
Message-ID: <20021223213913.GQ7990@linnie.riede.org> (raw)
In-Reply-To: <3E07710C.4010300@splentec.com>; from luben@splentec.com on Mon, Dec 23, 2002 at 15:24:44 -0500

[-- Attachment #1: Type: text/plain, Size: 1454 bytes --]

On 2002.12.23 15:24 Luben Tuikov wrote:
> kernel 2.5.52 + Willem's patch, at boot:
> ----------------------------------------
> 
> scsi2 : SCSI host adapter emulation for IDE ATAPI devices
>    Vendor: SONY      Model: CDU5211           Rev: YYS2
>    Type:   CD-ROM                             ANSI SCSI revision: 02
> ide-scsi: abort called for 40
> Unable to handle kernel NULL pointer dereference at virtual address 00000030

The only place I can think of that might do that is:

--- ide-scsi.c-rev.1	Sat Dec 21 17:32:48 2002
+++ ide-scsi.c	Mon Dec 23 16:31:19 2002
@@ -289,6 +289,7 @@
 	pc->timeout = jiffies + WAIT_READY;
 	/* NOTE! Save the failed packet command in "rq->buffer" */
 	rq->buffer = (void *) failed_command->special;
+	pc->scsi_cmd = ((idescsi_pc_t *) failed_command->special)->scsi_cmd;
 	if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
 		printk ("ide-scsi: %s: queue cmd = ", drive->name);
 		hexdump(pc->c, 6);
@@ -876,7 +877,8 @@
 			/* is cmd active?
 			 *  need to lock so this stuff doesn't change under us */
 			spin_lock_irqsave(&ide_lock, flags);
-			if (scsi->pc && scsi->pc->scsi_cmd->serial_number == cmd->serial_number) {
+			if (scsi->pc && scsi->pc->scsi_cmd && 
+					scsi->pc->scsi_cmd->serial_number == cmd->serial_number) {
 				/* yep - let's give it some more time - 
 				 * we can do that, we're in _our_ error kernel thread */
 				spin_unlock_irqrestore(&ide_lock, flags);

Thanks for testing. Willem Riede.

[-- Attachment #2: rev1.patch --]
[-- Type: text/plain, Size: 936 bytes --]

--- ide-scsi.c-rev.1	Sat Dec 21 17:32:48 2002
+++ ide-scsi.c	Mon Dec 23 16:31:19 2002
@@ -289,6 +289,7 @@
 	pc->timeout = jiffies + WAIT_READY;
 	/* NOTE! Save the failed packet command in "rq->buffer" */
 	rq->buffer = (void *) failed_command->special;
+	pc->scsi_cmd = ((idescsi_pc_t *) failed_command->special)->scsi_cmd;
 	if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
 		printk ("ide-scsi: %s: queue cmd = ", drive->name);
 		hexdump(pc->c, 6);
@@ -876,7 +877,8 @@
 			/* is cmd active?
 			 *  need to lock so this stuff doesn't change under us */
 			spin_lock_irqsave(&ide_lock, flags);
-			if (scsi->pc && scsi->pc->scsi_cmd->serial_number == cmd->serial_number) {
+			if (scsi->pc && scsi->pc->scsi_cmd && 
+					scsi->pc->scsi_cmd->serial_number == cmd->serial_number) {
 				/* yep - let's give it some more time - 
 				 * we can do that, we're in _our_ error kernel thread */
 				spin_unlock_irqrestore(&ide_lock, flags);

  reply	other threads:[~2002-12-23 21:39 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-23 20:24 ide-scsi oops Luben Tuikov
2002-12-23 21:39 ` Willem Riede [this message]
2002-12-23 23:47   ` Douglas Gilbert

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=20021223213913.GQ7990@linnie.riede.org \
    --to=wrlk@riede.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=luben@splentec.com \
    /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