lkml.org 
[lkml]   [2008]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    SubjectRe: 2.6.25-rc1/2 CD/DVD burning broken
    From
    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()).

    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


    \
     
     \ /
      Last update: 2008-02-18 20:19    [W:4.153 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site