Re: LMB bits

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/10/2010 01:14 PM, David Miller wrote:
> From: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Date: Sat, 10 Jul 2010 21:01:59 +1000
> 
>> On Fri, 2010-07-09 at 20:55 -0700, David Miller wrote:
>>> A quick update, I'm still chipping away to find the culprit,
>>> I know so far that things are ok at least 14 patches into the
>>> series.
>>>
>>> I'll work more to try and track down the exact problem tomorrow. 
>>
>> Thanks Dave !
> 
> The first guilty commit seems to be:
> 
> --------------------
>>From 869146ec57f449a5dd4bb5d939361841f4f7f3c6 Mon Sep 17 00:00:00 2001
> From: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> Date: Tue, 6 Jul 2010 15:39:08 -0700
> Subject: [PATCH 01/12] memblock: Make memblock_find_region() out of memblock_alloc_region()
> 
> This function will be used to locate a free area to put the new memblock
> arrays when attempting to resize them. memblock_alloc_region() is gone,
> the two callsites now call memblock_add_region().
> 
> Signed-off-by: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>
> --------------------
> 
> I wonder if there is some subtle way you've changed behavior here?
> Previously if alloc block fails to do the add, it continues and
> keeps trying.
> 
> Whereas now this add call happens a level higher and it's immediately
> signalled as a hard failure.
> 
> Oh I see, your conversion of membase_alloc_nid_region() is buggy.
> Instead of passing in "ret" as the base address to memblock_add_region(),
> you're passing in the original value, "start".
> 
> The other conversion was done correctly, which is why you didn't see
> this problem obviously :)
> 
> I'll make this fix and see how much further I can get.

Ben/David, 

can you fold in following patch in your patchset too?

also please use -v2 [PATCH] lmb: rename to memblock
that is removing one wrong change with microblaze dts

Thanks

Yinghai


Subject: [PATCH] memblock: memblock_find_base() should return MEMBLOCK_ERROR on failing path

all callees assume it return MEMBLOCK_ERROR when it fail to find a range

Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx>

---
 mm/memblock.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/mm/memblock.c
===================================================================
--- linux-2.6.orig/mm/memblock.c
+++ linux-2.6/mm/memblock.c
@@ -154,7 +154,7 @@ static phys_addr_t __init memblock_find_
 		if (found != MEMBLOCK_ERROR)
 			return found;
 	}
-	return 0;
+	return MEMBLOCK_ERROR;
 }
 
 static void memblock_remove_region(struct memblock_type *type, unsigned long r)
--
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux