From: bugzilla-daemon@bugzilla.kernel.org
To: linux-ide@vger.kernel.org
Subject: [Bug 13399] kernel crash SONY DVD-ROM with cd
Date: Sun, 14 Jun 2009 13:02:46 GMT [thread overview]
Message-ID: <200906141302.n5ED2kru002006@demeter.kernel.org> (raw)
In-Reply-To: <bug-13399-11633@http.bugzilla.kernel.org/>
http://bugzilla.kernel.org/show_bug.cgi?id=13399
--- Comment #24 from Anonymous Emailer <anonymous@kernel-bugs.osdl.org> 2009-06-14 13:02:45 ---
Reply-To: petkovbb@googlemail.com
Hi,
On Sun, Jun 14, 2009 at 02:32:10PM +0200, Bartlomiej Zolnierkiewicz wrote:
> On Sunday 14 June 2009 12:06:06 Borislav Petkov wrote:
> > Hi,
> >
> > On Sat, Jun 13, 2009 at 06:59:53PM +0200, Bartlomiej Zolnierkiewicz wrote:
> > > > --- 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 ==
> > >
> > > Nope, it is block layer that kills it prematurely.
> >
> > ok, I still need to understand the whole code flow properly so please
> > bare with me.
> >
> > I got misled by the __blk_end_request() thing: am I right to assume that
> > you were using it to give a better example where it is more clear that
> > the block layer really kills rq->bio-less requests?
> >
> > Because we don't hit __blk_end_request from ide_cd_error_cmd() (or
> > ide_complete_rq() too, for that matter) - we do rather:
> >
> > ide_cd_error_cmd() does ide_complete_rq(), which ends up doing
> > blk_end_request(), then blk_end_io() and the rq->bio thing is checked
> > in end_that_request_data(). Which is actually the same thing but done
> > slightly differently.
>
> Yes, you're seeing block layer updates from 2 days ago.
Nope, I'm staring at .30-rc7 sources. I guess those updates are a bit
older.
> > > There are two issues here:
> > >
> > > * OOPS (*the*regression* which should be taken care of first (cause:
> > > unexpected interaction between ide/block)
> >
> > I'm thinking something like
> >
> > if (uptodate == 0 && !(OK_STAT(stat, 0, BAD_STAT)))
> > ide_cd_error_cmd(drive, cmd);
>
> Those are two separate issues, please stop mixing them.
>
> AFAICS ide-cd has been always failing !uptodate requests so the latter
> issue is nothing new. Which means that it is really not the right time
> to be scratching our heads about it while the former problem has been
> seriously affecting people for weeks now and also managed to slip into
> the final 2.6.30 release..
Ok, let's do that:
@Hans: can you apply the following ontop of the debugging patch and test and
send us the whole dmesg, thanks.
--
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index 6f728da..219c303 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -764,7 +764,7 @@ out_end:
rq->errors = -EIO;
}
- if (uptodate == 0)
+ if (uptodate == 0 && rq->bio)
ide_cd_error_cmd(drive, cmd);
/* make sure it's fully ended */
--
> > > * handling of non-fully completed requests with "good" status (cause:
> > > stupid hardware)
> >
> > The non-intrusive solution, IMHO, would be to add another quirk flag for
> > such a device (SONY DVD-ROM DDU1615) and do not complete the rq in that
> > case, aka no partial completion for packet commands to that device. I'm
> > wondering what else is broken with it especially if you're requiring
> > bigger buffers like the capacities page.
> >
> > So, how about an ide_cd_complete_rq() helper which hides such special
> > cases and is called as an indirection at the end of the irq handler?
>
> I can't tell much without seeing the concept with more details.
>
> IOW please send patches, that is the best way to discuss things.
Ok.
--
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-14 13:02 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
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 [this message]
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=200906141302.n5ED2kru002006@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).