lkml.org 
[lkml]   [2013]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Boot failure on Arndale with next-20131105
On 11/05/2013 09:42 AM, Tomasz Figa wrote:
> Hi,
>
> On Tuesday 05 of November 2013 17:19:00 Tushar Behera wrote:
>> Hi,
>>
>> We are having a boot-time kernel panic on Samsung's Exynos5250-based
>> Arndale board with next-20131105. Bisect points to following commit.
>>
>> <<<
>> commit febca1baea1cfe2d7a0271385d89b03d5fb34f94
>> Author: Chris Mason <chris.mason@fusionio.com>
>> Date: Thu Oct 31 13:32:42 2013 -0600
>>
>> block: setup bi_vcnt on clones
>>
>> commit 9fc6286f347d changed the cloning code to make clones cheaper for
>> the case where we don't need to clone the iovec array. But,
>> the new clone needs the bi_vnct from the original.
>>
>> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
>> Signed-off-by: Jens Axboe <axboe@kernel.dk>
>>>>>
>>
>> Reverting above commit, Arndale is able to boot again.
>
> I can confirm exactly the same behavior on Exynos 4210-based Trats board,
> with exactly the same bisection results.

Can either (or both) of you try this?

--
Jens Axboe

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 8e6174c..a1177e1 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -1123,8 +1123,13 @@ struct clone_info {

static void bio_setup_sector(struct bio *bio, sector_t sector, sector_t len)
{
- bio->bi_iter.bi_sector = sector;
- bio->bi_iter.bi_size = to_bytes(len);
+ if (len) {
+ bio->bi_iter.bi_sector = sector;
+ bio->bi_iter.bi_size = to_bytes(len);
+ } else {
+ bio->bi_iter.bi_size = 0;
+ bio->bi_vcnt = 0;
+ }
}

/*
@@ -1178,8 +1183,7 @@ static void __clone_and_map_simple_bio(struct clone_info *ci,
* and discard, so no need for concern about wasted bvec allocations.
*/
__bio_clone(clone, ci->bio);
- if (len)
- bio_setup_sector(clone, ci->sector, len);
+ bio_setup_sector(clone, ci->sector, len);

__map_bio(tio);
}
\
 
 \ /
  Last update: 2013-11-05 21:21    [W:0.074 / U:0.808 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site