lkml.org 
[lkml]   [2007]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.34-rc1 eat my photo SD card :-(
    On Wed, Nov 07 2007, Roland Dreier wrote:
    > > Well, I spent the last 36 hours (more or less) trying to bisect the SD
    > > problem. The method I used was to insert the card, umount it, and make 8 dd
    > > in a row; the kernel is "bad" if they differs, "good" if they are the same.
    > >
    > > I could not finish the bisect. The last pair good/bad were:
    > >
    > > bad: [7aeacf982203fb4dea2f3434eefdc268cfd5d6d9]
    > > [BLOCK] blk_rq_map_sg: force clear termination bit
    > > good: [e38f981758118d829cd40cfe9c09e3fa81e422aa]
    > > exportfs: update documentation
    >
    > Thanks, that helps. I read over the mmc changes in between those two
    > commits, and I think I found the problem... could you please try the
    > patch below (on top of the latest kernel) and report back how it
    > works? Unfortunately I am traveling and I don't have an SD card with
    > me to test on my laptop...
    >
    > Pierre, assuming Romano tests this patch successfully, please apply!
    >
    > Thanks,
    > Roland
    >
    > <-- patch below -->
    >
    > mmc: Fix sg helper copy-and-paste error
    >
    > Commit 45711f1a ("[SG] Update drivers to use sg helpers") had the
    > following bogus change in drivers/mmc/card/queue.c:
    >
    > > - src_buf = page_address(src->page) + src->offset;
    > > + src_buf = sg_virt(dst);
    >
    > (Notice that "src" is converted to "dst"). Turn this "dst" back into
    > the intended "src".
    >
    > Cc: Jens Axboe <jens.axboe@oracle.com>
    > Signed-off-by: Roland Dreier <roland@digitalvampire.org>
    > ---
    > diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
    > index 9203a0b..1b9c9b6 100644
    > --- a/drivers/mmc/card/queue.c
    > +++ b/drivers/mmc/card/queue.c
    > @@ -310,7 +310,7 @@ static void copy_sg(struct scatterlist *dst, unsigned int dst_len,
    > }
    >
    > if (src_size == 0) {
    > - src_buf = sg_virt(dst);
    > + src_buf = sg_virt(src);
    > src_size = src->length;
    > }
    >

    How embarassing, sorry about that! Pierre, shall I shove this upstream
    or will you?

    --
    Jens Axboe

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-11-08 08:05    [W:0.022 / U:96.412 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site