From: Jens Axboe <axboe@suse.de>
To: Alan Chandler <alan@chandlerfamily.org.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: ide-cd problem
Date: Sat, 20 Nov 2004 20:47:57 +0100 [thread overview]
Message-ID: <20041120194756.GU26240@suse.de> (raw)
In-Reply-To: <200411201842.15091.alan@chandlerfamily.org.uk>
On Sat, Nov 20 2004, Alan Chandler wrote:
> I have been trying to track down why all attempts to burn a cd on my
> ide cdrw fails (see bug #3741 on bugzilla ), with a subprocess of
> cdrecord ending up hanging in uninterruptable sleep state.
>
> I think I understand what is happening, I just don't know what to do
> about it.
>
> Inside drivers/ide/ide-cd.c
>
> the ide_do_rw_cdrom routine has been called via a request with the
> request flags having the REQ_BLOCK_PC flag set. The request->data_len
> of this request is set to 0.
>
> This request is sent to the device and it generates interrupts to
> eventually land it up inside the routine cdrom_newpc_intr.
>
> At this point the status register on the hardware is set to 0x58 -
> implying, I think that the DRQ_STAT bit is set and that something
> should be sent to the device.
>
> Normally, because the requested data_len is not zero, the data is
> sent. In this case however, because the original request had nothing
> to send, the while/if clauses to initiate a new transfer are skipped
> and the routine ends up setting a new interrupt handler address and
> returning to await an interrupt that will never come.
The big question is - what does the original command look like? Just
dumping rq->cmd[0] would be a big help, but really just put code in
sg_io() in block/scsi_ioctl.c to dump the completed sg_io_hdr_t and send
that.
> Question: should something validate that the request length is not
> zero earlier, or should there be a check in ide-cd.c, or is it my
> hardware (its a generic cd read/rewriter which announces itself as
> 'CW078D CD-R/RW')
It's hard to know, you would have to parse every command type to verify
if the dxfer_len made sense or not. It's perfectly possible to generate
a command that would hang the drive as you describe above, only to be
aborted after it times out.
--
Jens Axboe
next prev parent reply other threads:[~2004-11-20 19:48 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-20 18:42 ide-cd problem Alan Chandler
2004-11-20 19:47 ` Jens Axboe [this message]
2004-11-21 0:53 ` Alan Chandler
2004-11-21 8:56 ` Jens Axboe
2004-11-21 10:25 ` Alan Chandler
2004-11-21 16:13 ` Alan Chandler
2004-11-22 7:52 ` Alan Chandler
2004-11-22 8:01 ` Jens Axboe
2004-11-22 10:30 ` Alan Chandler
2004-11-22 10:51 ` Jens Axboe
2004-11-22 11:29 ` Alan Chandler
2004-11-22 11:31 ` Jens Axboe
2004-11-22 12:53 ` Alan Chandler
2004-11-22 13:02 ` Jens Axboe
2004-11-22 19:19 ` Alan Chandler
2004-11-22 23:48 ` Alan Chandler
2004-11-23 7:13 ` Alan Chandler
2004-11-23 14:51 ` Jens Axboe
2004-11-23 21:49 ` Alan Chandler
2004-11-26 23:39 ` Alan Chandler
2004-11-29 17:29 ` Bill Davidsen
2004-11-30 8:59 ` Alan Chandler
2004-12-10 21:32 ` ide-cd problem revisited - more brainpower needed Alan Chandler
2004-12-10 23:14 ` Alan Cox
2004-12-12 0:17 ` Alan Chandler
2004-12-12 11:39 ` Alan Cox
2004-12-12 13:34 ` Alan Chandler
2004-12-14 0:20 ` Alan Chandler
2004-12-16 15:56 ` Bill Davidsen
2004-12-17 23:59 ` Alan Chandler
2004-11-24 23:19 ` ide-cd problem Alan Cox
2004-11-25 15:29 ` Jens Axboe
2004-11-25 16:25 ` Alan Cox
2004-11-25 18:12 ` Jens Axboe
2004-11-25 18:45 ` Alan Chandler
2004-11-23 18:34 ` Jeff Garzik
2004-11-23 19:13 ` Jens Axboe
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=20041120194756.GU26240@suse.de \
--to=axboe@suse.de \
--cc=alan@chandlerfamily.org.uk \
--cc=linux-kernel@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.