From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
To: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
Cc: petkovbb@gmail.com, schwab@suse.de, linux-kernel@vger.kernel.org,
jens.axboe@oracle.com, j-nomura@ce.jp.nec.com
Subject: Re: [PATCH] ide-cd: fix missing residual count setting in DMA mode (Was 2.6.25-rc1/2 CD/DVD burning broken)
Date: Tue, 19 Feb 2008 01:17:24 +0100 [thread overview]
Message-ID: <200802190117.25089.bzolnier@gmail.com> (raw)
In-Reply-To: <20080218.181438.78703739.k-ueda@ct.jp.nec.com>
On Tuesday 19 February 2008, Kiyoshi Ueda wrote:
> Hi,
>
> On Mon, 18 Feb 2008 23:37:48 +0100, Borislav Petkov wrote:
> > On Mon, Feb 18, 2008 at 09:20:41PM +0100, Borislav Petkov wrote:
> > > On Mon, Feb 18, 2008 at 01:58:27PM -0500, Kiyoshi Ueda wrote:
> > > > Hi Andreas,
> > > >
> > > > On Sat, 16 Feb 2008 21:52:21 +0100, Andreas Schwab wrote:
> > > > > Since commit aaa04c28cb9a1efd42541fdb7ab648231c2a2263 [blk_end_request:
> > > > > changing ide-cd (take 4)] I cannot burn any CD/DVD any more, getting the
> > > > > following error from wodim:
> > > > >
> > > > > Errno: 0 (Success), write_g1 scsi sendcmd: no error
> > > > > CDB: 2A 00 00 00 00 00 00 00 1F 00
> > > > > status: 0x2 (CHECK CONDITION)
> > > > > Sense Bytes: 70 00 05 00 00 00 00 0E 00 00 00 00 21 02 00 00
> > > > > Sense Key: 0x5 Illegal Request, Segment 0
> > > > > Sense Code: 0x21 Qual 0x02 (invalid address for write) Fru 0x0
> > > > > Sense flags: Blk 0 (not valid)
> > > > > resid: 63488
> > > >
> > > > Could you try this patch?
> > > > I've only done a compile test, so this patch may not work.
> > > >
> > > > During the conversion to blk_end_request, the code was changed
> > > > *not* to set rq->data_len = 0.
> > > > I removed that part because I thought it was just a trigger to
> > > > call post_transform_command(). However, since data_len can be
> > > > used as a residual length of the transfer, it might have to remain
> > > > there.
> > > > Actually, wodim seems checking the residual count how far it wrote
> > > > (e.g. wodim/wodim.c:write_track_data()).
> > >
> > > and there seems to be some discrepancy between the different burning tools for i
> > > just did test burning a cdimage with cdrdao unter 2.6.25-rc2 and it _works_
> > > flawlessly:
> > >
> > > # cdrdao write --device /dev/hdc test.toc
> > >
> > > Cdrdao version 1.2.2 - (C) Andreas Mueller <andreas@daneb.de>
> > > SCSI interface library - (C) Joerg Schilling
> > > Paranoia DAE library - (C) Monty
> > >
> > > Check http://cdrdao.sourceforge.net/drives.html#dt for current driver tables.
> > >
> > > Using libscg version 'ubuntu-0.8ubuntu1'
> > >
> > > /dev/hdc: TOSHIBA ODD-DVD SD-R6372 Rev: 1730
> > > Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0000)
> > >
> > > Starting write at speed 4...
> > > Pausing 10 seconds - hit CTRL-C to abort.
> > > Process can be aborted with QUIT signal (usually CTRL-\).
> > > Turning BURN-Proof on
> > > Executing power calibration...
> > > Power calibration successful.
> > > Writing track 01 (mode MODE1_RAW/MODE1_RAW )...
> > > Wrote 1 of 18 MB (Buffers 100% 94%).
> > > Wrote 2 of 18 MB (Buffers 100% 94%).
> > > Wrote 3 of 18 MB (Buffers 100% 94%).
> > > Wrote 4 of 18 MB (Buffers 100% 94%).
> > > Wrote 5 of 18 MB (Buffers 100% 94%).
> > > Wrote 6 of 18 MB (Buffers 100% 94%).
> > > Wrote 7 of 18 MB (Buffers 100% 94%).
> > > Wrote 8 of 18 MB (Buffers 100% 94%).
> > > Wrote 9 of 18 MB (Buffers 100% 94%).
> > > Wrote 10 of 18 MB (Buffers 100% 94%).
> > > Wrote 11 of 18 MB (Buffers 100% 94%).
> > > Wrote 12 of 18 MB (Buffers 100% 94%).
> > > Wrote 13 of 18 MB (Buffers 100% 94%).
> > > Wrote 14 of 18 MB (Buffers 100% 94%).
> > > Wrote 15 of 18 MB (Buffers 100% 94%).
> > > Wrote 16 of 18 MB (Buffers 100% 94%).
> > > Wrote 17 of 18 MB (Buffers 100% 94%).
> > > Wrote 18 of 18 MB (Buffers 100% 94%).
> > >
> > > Wrote 8056 blocks. Buffer fill min 100%/max 100%.
> > > Flushing cache...
> > > Writing finished successfully.
> > >
> > > > This patch brings back the rq->data_len = 0.
> > > >
> > > > --- 2.6.25-rc2/drivers/ide/ide-cd.c 2008-02-15 15:57:20.000000000 -0500
> > > > +++ ide-fix/drivers/ide/ide-cd.c 2008-02-18 01:23:40.000000000 -0500
> > > > @@ -1207,9 +1207,13 @@ static ide_startstop_t cdrom_newpc_intr(
> > > > end_request:
> > > > if (blk_pc_request(rq)) {
> > > > unsigned long flags;
> > > > + unsigned int dlen = rq->data_len;
> > > > +
> > > > + if (dma)
> > > > + rq->data_len = 0;
> > > >
> > > > spin_lock_irqsave(&ide_lock, flags);
> > > > - if (__blk_end_request(rq, 0, rq->data_len))
> > > > + if (__blk_end_request(rq, 0, dlen))
> > > > BUG();
> > > > HWGROUP(drive)->rq = NULL;
> > > > spin_unlock_irqrestore(&ide_lock, flags);
> > > >
> > > > Thanks,
> > > > Kiyoshi Ueda
> > >
> > > next will test the one above...
> >
> >
> > confirmed here too - burning succeeds both with wodim and cdrdao.
>
> Thank you for testing, Laura, Andreas, Boris.
> And I'm really sorry about the bug, all.
>
>
> Bart,
> Please review and apply the patch below to fix the bug.
>
>
> [PATCH] ide-cd: fix missing residual count setting in DMA mode
>
> This patch fixes the missing residual count setting in DMA mode,
> which was introduced during the conversion to blk-end-request.
> The residual count could be used by the request submitter.
> So if it isn't set correctly, some upper layers does not work.
> (e.g. wodim for CD burning.)
>
> The bug is in only DMA mode.
> In PIO mode, we are setting the residual count correctly,
> so no need to fix.
>
> Signed-off-by: Kiyoshi Ueda <k-ueda@ct.jp.nec.com>
> Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>
Looks fine, thanks for fixing it so quickly.
Applied.
next prev parent reply other threads:[~2008-02-19 0:52 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-16 20:52 2.6.25-rc1/2 CD/DVD burning broken Andreas Schwab
2008-02-17 0:09 ` Jeff Garzik
2008-02-17 0:48 ` Andreas Schwab
2008-02-17 3:57 ` Mark Lord
2008-02-17 9:33 ` Andreas Schwab
2008-02-18 15:59 ` Bartlomiej Zolnierkiewicz
2008-02-18 18:58 ` Kiyoshi Ueda
2008-02-18 19:55 ` Laura Garcia
2008-02-18 20:19 ` Andreas Schwab
2008-02-18 20:20 ` Borislav Petkov
2008-02-18 22:37 ` Borislav Petkov
2008-02-18 23:14 ` [PATCH] ide-cd: fix missing residual count setting in DMA mode (Was 2.6.25-rc1/2 CD/DVD burning broken) Kiyoshi Ueda
2008-02-19 0:17 ` Bartlomiej Zolnierkiewicz [this message]
2008-02-23 15:47 ` 2.6.25-rc1/2 CD/DVD burning broken Andreas Schwab
2008-02-24 16:32 ` Borislav Petkov
2008-02-24 16:59 ` Andreas Schwab
2008-02-25 2:49 ` Kiyoshi Ueda
2008-02-25 9:23 ` Andreas Schwab
2008-02-25 19:38 ` Andreas Schwab
2008-02-25 20:45 ` Borislav Petkov
2008-02-25 22:08 ` Andreas Schwab
2008-02-26 4:24 ` Borislav Petkov
2008-02-26 14:52 ` Andreas Schwab
2008-02-26 17:38 ` Borislav Petkov
2008-02-26 20:01 ` Bartlomiej Zolnierkiewicz
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=200802190117.25089.bzolnier@gmail.com \
--to=bzolnier@gmail.com \
--cc=j-nomura@ce.jp.nec.com \
--cc=jens.axboe@oracle.com \
--cc=k-ueda@ct.jp.nec.com \
--cc=linux-kernel@vger.kernel.org \
--cc=petkovbb@gmail.com \
--cc=schwab@suse.de \
/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.