From: bugzilla-daemon@bugzilla.kernel.org
To: linux-ide@vger.kernel.org
Subject: [Bug 13399] kernel crash SONY DVD-ROM with cd
Date: Sat, 13 Jun 2009 16:29:07 GMT [thread overview]
Message-ID: <200906131629.n5DGT7LL020589@demeter.kernel.org> (raw)
In-Reply-To: <bug-13399-11633@http.bugzilla.kernel.org/>
http://bugzilla.kernel.org/show_bug.cgi?id=13399
--- Comment #20 from Borislav Petkov <bbpetkov@yahoo.de> 2009-06-13 16:29:05 ---
Hi Bart,
thanks for analyzing this.
I'm staring at the ATA_DRQ == 0 part in cdrom_newpc_intr:
} else if (!blk_pc_request(rq)) {
ide_cd_request_sense_fixup(drive, cmd);
/* complain if we still have data left to transfer */
uptodate = cmd->nleft ? 0 : 1;
if (uptodate == 0)
rq->cmd_flags |= REQ_FAILED;
}
goto out_end;
}
so, in our case ide_cd_error_cmd() kills the rq prematurely and that's
why ide_complete_rq() oopses later. And this is caused by uptodate ==
0. Now, here's how the ATA spec (d1532v1r4b-ATA-ATAPI-7) describes the
semantics of clearing of the DRQ bit by the drive:
"
5.14.5.5 DRQ (Data request)
...
The DRQ bit shall be cleared to zero by the device:
1) when the last word of the data transfer occurs;
2) when the last word of the command packet transfer occurs for a
PACKET command.
"
now there's a subtlety here wrt to what am I to do as an IRQ handler
when my drive clears the DRQ bit: do I _drain_ the last bytes remaining
(in our case 2) or do I fail the rq straightaway. I'm pretty sure
cmd->nleft is 2 in our case so I think that it might be only right to
drain the device first, i.e. do
uptodate = (cmd->nleft - thislen) ? 0 : 1;
and then later ide_pio_bytes() before completing the rq properly. Hmm?
And yes, this is against spec since the following sentence states that
the data can be drained only "... via DMA mode if DMARQ and DMACK- are
asserted and BSY is set to one." but we should give it a try...
Ideas? Opinions?
--
Configure bugmail: http://bugzilla.kernel.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.
next prev parent reply other threads:[~2009-06-13 16:29 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-28 16:54 [Bug 13399] New: kernel crash SONY DVD-ROM with cd bugzilla-daemon
2009-05-28 17:07 ` [Bug 13399] " bugzilla-daemon
2009-05-29 7:25 ` bugzilla-daemon
2009-06-04 17:23 ` bugzilla-daemon
2009-06-05 7:05 ` bugzilla-daemon
2009-06-05 13:51 ` bugzilla-daemon
2009-06-05 13:52 ` bugzilla-daemon
2009-06-05 13:52 ` bugzilla-daemon
2009-06-05 13:54 ` bugzilla-daemon
2009-06-05 13:55 ` bugzilla-daemon
2009-06-05 13:57 ` bugzilla-daemon
2009-06-06 19:35 ` bugzilla-daemon
2009-06-06 19:37 ` bugzilla-daemon
2009-06-08 16:05 ` bugzilla-daemon
2009-06-08 16:05 ` bugzilla-daemon
2009-06-08 16:06 ` bugzilla-daemon
2009-06-08 16:06 ` bugzilla-daemon
2009-06-08 16:07 ` bugzilla-daemon
2009-06-08 16:07 ` bugzilla-daemon
2009-06-09 5:31 ` bugzilla-daemon
2009-06-09 14:22 ` bugzilla-daemon
2009-06-09 15:57 ` bugzilla-daemon
2009-06-09 17:11 ` bugzilla-daemon
2009-06-09 17:12 ` bugzilla-daemon
2009-06-10 11:18 ` Bartlomiej Zolnierkiewicz
2009-06-10 11:14 ` bugzilla-daemon
2009-06-13 16:29 ` bugzilla-daemon [this message]
2009-06-13 16:59 ` Bartlomiej Zolnierkiewicz
2009-06-14 10:06 ` Borislav Petkov
2009-06-14 12:32 ` Bartlomiej Zolnierkiewicz
2009-06-14 13:02 ` Borislav Petkov
2009-06-15 6:27 ` Borislav Petkov
2009-06-13 16:54 ` bugzilla-daemon
2009-06-14 10:06 ` bugzilla-daemon
2009-06-14 12:27 ` bugzilla-daemon
2009-06-14 13:02 ` bugzilla-daemon
2009-06-15 6:28 ` bugzilla-daemon
2009-06-15 16:20 ` bugzilla-daemon
2009-06-15 16:23 ` bugzilla-daemon
2009-06-15 17:47 ` bugzilla-daemon
2009-06-16 6:28 ` bugzilla-daemon
2009-06-16 6:29 ` bugzilla-daemon
2009-06-16 15:45 ` bugzilla-daemon
2009-06-18 8:19 ` bugzilla-daemon
2009-06-18 12:12 ` bugzilla-daemon
2009-06-18 13:36 ` bugzilla-daemon
2009-06-18 16:22 ` bugzilla-daemon
2009-06-19 4:31 ` bugzilla-daemon
2009-06-19 4:35 ` bugzilla-daemon
2009-06-19 4:37 ` bugzilla-daemon
2009-06-22 6:37 ` bugzilla-daemon
2009-06-22 8:03 ` bugzilla-daemon
2009-06-22 8:04 ` bugzilla-daemon
2009-06-22 15:23 ` bugzilla-daemon
2009-06-22 15:25 ` bugzilla-daemon
2009-06-22 15:49 ` bugzilla-daemon
2009-06-23 4:07 ` bugzilla-daemon
2009-06-23 5:37 ` bugzilla-daemon
2009-06-23 5:37 ` bugzilla-daemon
2009-06-24 20:47 ` bugzilla-daemon
2009-06-25 10:02 ` bugzilla-daemon
2009-07-03 12:09 ` bugzilla-daemon
2009-09-10 12:03 ` bugzilla-daemon
2009-09-10 12:24 ` bugzilla-daemon
2009-09-10 13:20 ` bugzilla-daemon
2009-09-10 13:23 ` bugzilla-daemon
2009-09-11 5:45 ` bugzilla-daemon
2009-09-11 5:49 ` bugzilla-daemon
2009-09-11 15:04 ` bugzilla-daemon
2009-09-17 6:39 ` bugzilla-daemon
2009-09-17 6:47 ` bugzilla-daemon
2009-09-17 6:57 ` bugzilla-daemon
2009-09-26 6:10 ` bugzilla-daemon
2009-09-27 16:19 ` bugzilla-daemon
2009-09-27 16:52 ` bugzilla-daemon
2010-01-19 21:50 ` bugzilla-daemon
2010-01-19 22:52 ` bugzilla-daemon
[not found] <bug-13399-11633@https.bugzilla.kernel.org/>
2010-11-30 8:54 ` bugzilla-daemon
2011-02-06 15:45 ` bugzilla-daemon
2011-02-06 15:46 ` bugzilla-daemon
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=200906131629.n5DGT7LL020589@demeter.kernel.org \
--to=bugzilla-daemon@bugzilla.kernel.org \
--cc=linux-ide@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 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).