[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071108070149.GC5011@kernel.dk>
Date: Thu, 8 Nov 2007 08:01:49 +0100
From: Jens Axboe <jens.axboe@...cle.com>
To: Roland Dreier <roland@...italvampire.org>
Cc: Romano Giannetti <romanol@...omillas.es>, Willy Tarreau <w@....eu>,
Pierre Ossman <drzeus-mmc@...eus.cx>,
linux-kernel@...r.kernel.org
Subject: Re: 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@...cle.com>
> Signed-off-by: Roland Dreier <roland@...italvampire.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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists