* [PATCH 1/2] memblock: add assertion for zero allocation size
[not found] <1361471962-25164-1-git-send-email-vgupta@synopsys.com>
@ 2013-02-21 18:39 ` Vineet Gupta
2013-02-21 18:39 ` [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe Vineet Gupta
1 sibling, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 18:39 UTC (permalink / raw)
To: Andrew Morton, Chris Zankel, Max Filippov, Marc Gauthier
Cc: Vineet Gupta, Tejun Heo, Yinghai Lu, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to BUG_ON() if effective size for allocation (as passed by caller
and/or computed after alignemtn rounding) is zero.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..32b36d0 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
+ BUG_ON(!size);
+
found = memblock_find_in_range_node(0, max_addr, size, align, nid);
if (found && !memblock_reserve(found, size))
return found;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 1/2] memblock: add assertion for zero allocation size
@ 2013-02-21 18:39 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 18:39 UTC (permalink / raw)
To: Andrew Morton, Chris Zankel, Max Filippov, Marc Gauthier
Cc: Vineet Gupta, Tejun Heo, Yinghai Lu, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to BUG_ON() if effective size for allocation (as passed by caller
and/or computed after alignemtn rounding) is zero.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..32b36d0 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
+ BUG_ON(!size);
+
found = memblock_find_in_range_node(0, max_addr, size, align, nid);
if (found && !memblock_reserve(found, size))
return found;
--
1.7.4.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
[not found] <1361471962-25164-1-git-send-email-vgupta@synopsys.com>
2013-02-21 18:39 ` Vineet Gupta
@ 2013-02-21 18:39 ` Vineet Gupta
2013-02-21 20:06 ` Max Filippov
2013-05-29 13:10 ` Fwd: " Vineet Gupta
1 sibling, 2 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 18:39 UTC (permalink / raw)
To: Andrew Morton, Chris Zankel, Max Filippov, Marc Gauthier
Cc: Vineet Gupta, linux-xtensa, linux-kernel
flat DT copy code calls bootmem allocator with @align = 0.
This is probably OK with legacy allocator which xtensa uses right now,
but this will panic right away with memblock allocator
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Marc Gauthier <marc@tensilica.com>
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-kernel@vger.kernel.org
---
arch/xtensa/kernel/setup.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 6dd25ec..c2a526e 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -256,7 +256,7 @@ void __init early_init_devtree(void *params)
static void __init copy_devtree(void)
{
void *alloc = early_init_dt_alloc_memory_arch(
- be32_to_cpu(initial_boot_params->totalsize), 0);
+ be32_to_cpu(initial_boot_params->totalsize), 8);
if (alloc) {
memcpy(alloc, initial_boot_params,
be32_to_cpu(initial_boot_params->totalsize));
--
1.7.4.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
2013-02-21 18:39 ` Vineet Gupta
@ 2013-02-21 19:27 ` Yinghai Lu
-1 siblings, 0 replies; 26+ messages in thread
From: Yinghai Lu @ 2013-02-21 19:27 UTC (permalink / raw)
To: Vineet Gupta, H. Peter Anvin
Cc: Andrew Morton, Chris Zankel, Max Filippov, Marc Gauthier,
Tejun Heo, Wanpeng Li, Ingo Molnar, linux-mm, linux-kernel
[+Cc: hpa]
On Thu, Feb 21, 2013 at 10:39 AM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to BUG_ON() if effective size for allocation (as passed by caller
> and/or computed after alignemtn rounding) is zero.
should we just make align to 1 instead of 0 ?
or BUG_ON(!align) instead?
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
> mm/memblock.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 1bcd9b9..32b36d0 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
> /* align @size to avoid excessive fragmentation on reserved array */
> size = round_up(size, align);
>
> + BUG_ON(!size);
> +
> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
> if (found && !memblock_reserve(found, size))
> return found;
> --
> 1.7.4.1
>
> --
> 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/
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
@ 2013-02-21 19:27 ` Yinghai Lu
0 siblings, 0 replies; 26+ messages in thread
From: Yinghai Lu @ 2013-02-21 19:27 UTC (permalink / raw)
To: Vineet Gupta, H. Peter Anvin
Cc: Andrew Morton, Chris Zankel, Max Filippov, Marc Gauthier,
Tejun Heo, Wanpeng Li, Ingo Molnar, linux-mm, linux-kernel
[+Cc: hpa]
On Thu, Feb 21, 2013 at 10:39 AM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to BUG_ON() if effective size for allocation (as passed by caller
> and/or computed after alignemtn rounding) is zero.
should we just make align to 1 instead of 0 ?
or BUG_ON(!align) instead?
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
> mm/memblock.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 1bcd9b9..32b36d0 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
> /* align @size to avoid excessive fragmentation on reserved array */
> size = round_up(size, align);
>
> + BUG_ON(!size);
> +
> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
> if (found && !memblock_reserve(found, size))
> return found;
> --
> 1.7.4.1
>
> --
> 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/
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
2013-02-21 19:27 ` Yinghai Lu
@ 2013-02-21 19:33 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 19:33 UTC (permalink / raw)
To: Yinghai Lu
Cc: H. Peter Anvin, Andrew Morton, Chris Zankel, Max Filippov,
Marc Gauthier, Tejun Heo, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 12:57 AM, Yinghai Lu wrote:
> [+Cc: hpa]
>
> On Thu, Feb 21, 2013 at 10:39 AM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to BUG_ON() if effective size for allocation (as passed by caller
>> and/or computed after alignemtn rounding) is zero.
> should we just make align to 1 instead of 0 ?
Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
and get the call site fixed !
> or BUG_ON(!align) instead?
That could be done too but you would also need BUG_ON(!size) - to catch another
API abuse.
BUG_ON(!size) however catches both the cases.
>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> mm/memblock.c | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 1bcd9b9..32b36d0 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
>> /* align @size to avoid excessive fragmentation on reserved array */
>> size = round_up(size, align);
>>
>> + BUG_ON(!size);
>> +
>> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
>> if (found && !memblock_reserve(found, size))
>> return found;
>> --
>> 1.7.4.1
>>
>> --
>> 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/
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
@ 2013-02-21 19:33 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 19:33 UTC (permalink / raw)
To: Yinghai Lu
Cc: H. Peter Anvin, Andrew Morton, Chris Zankel, Max Filippov,
Marc Gauthier, Tejun Heo, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 12:57 AM, Yinghai Lu wrote:
> [+Cc: hpa]
>
> On Thu, Feb 21, 2013 at 10:39 AM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to BUG_ON() if effective size for allocation (as passed by caller
>> and/or computed after alignemtn rounding) is zero.
> should we just make align to 1 instead of 0 ?
Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
and get the call site fixed !
> or BUG_ON(!align) instead?
That could be done too but you would also need BUG_ON(!size) - to catch another
API abuse.
BUG_ON(!size) however catches both the cases.
>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> mm/memblock.c | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 1bcd9b9..32b36d0 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -824,6 +824,8 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
>> /* align @size to avoid excessive fragmentation on reserved array */
>> size = round_up(size, align);
>>
>> + BUG_ON(!size);
>> +
>> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
>> if (found && !memblock_reserve(found, size))
>> return found;
>> --
>> 1.7.4.1
>>
>> --
>> 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/
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
2013-02-21 19:33 ` Vineet Gupta
@ 2013-02-21 19:36 ` Tejun Heo
-1 siblings, 0 replies; 26+ messages in thread
From: Tejun Heo @ 2013-02-21 19:36 UTC (permalink / raw)
To: Vineet Gupta
Cc: Yinghai Lu, H. Peter Anvin, Andrew Morton, Chris Zankel,
Max Filippov, Marc Gauthier, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Fri, Feb 22, 2013 at 01:03:41AM +0530, Vineet Gupta wrote:
> Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
> and get the call site fixed !
>
> > or BUG_ON(!align) instead?
>
> That could be done too but you would also need BUG_ON(!size) - to catch another
> API abuse.
> BUG_ON(!size) however catches both the cases.
How about "if (WARN_ON(!align)) align = __alignof__(long long);"?
Early BUG_ON()s can be painful to debug depending on setup.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
@ 2013-02-21 19:36 ` Tejun Heo
0 siblings, 0 replies; 26+ messages in thread
From: Tejun Heo @ 2013-02-21 19:36 UTC (permalink / raw)
To: Vineet Gupta
Cc: Yinghai Lu, H. Peter Anvin, Andrew Morton, Chris Zankel,
Max Filippov, Marc Gauthier, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Fri, Feb 22, 2013 at 01:03:41AM +0530, Vineet Gupta wrote:
> Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
> and get the call site fixed !
>
> > or BUG_ON(!align) instead?
>
> That could be done too but you would also need BUG_ON(!size) - to catch another
> API abuse.
> BUG_ON(!size) however catches both the cases.
How about "if (WARN_ON(!align)) align = __alignof__(long long);"?
Early BUG_ON()s can be painful to debug depending on setup.
Thanks.
--
tejun
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
2013-02-21 19:36 ` Tejun Heo
@ 2013-02-21 19:43 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 19:43 UTC (permalink / raw)
To: Tejun Heo
Cc: Yinghai Lu, H. Peter Anvin, Andrew Morton, Chris Zankel,
Max Filippov, Marc Gauthier, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 01:06 AM, Tejun Heo wrote:
> On Fri, Feb 22, 2013 at 01:03:41AM +0530, Vineet Gupta wrote:
>> Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
>> and get the call site fixed !
>>
>>> or BUG_ON(!align) instead?
>> That could be done too but you would also need BUG_ON(!size) - to catch another
>> API abuse.
>> BUG_ON(!size) however catches both the cases.
> How about "if (WARN_ON(!align)) align = __alignof__(long long);"?
> Early BUG_ON()s can be painful to debug depending on setup.
Totally agree - been there - seen that :-)
Also for caller passing zero, the panic will force the caller to fix it.
I'll respin the patch.
Thx,
-Vineet
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 1/2] memblock: add assertion for zero allocation size
@ 2013-02-21 19:43 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 19:43 UTC (permalink / raw)
To: Tejun Heo
Cc: Yinghai Lu, H. Peter Anvin, Andrew Morton, Chris Zankel,
Max Filippov, Marc Gauthier, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 01:06 AM, Tejun Heo wrote:
> On Fri, Feb 22, 2013 at 01:03:41AM +0530, Vineet Gupta wrote:
>> Where - you mean if user passes 0, just make it 1. Nah - it's better to complain
>> and get the call site fixed !
>>
>>> or BUG_ON(!align) instead?
>> That could be done too but you would also need BUG_ON(!size) - to catch another
>> API abuse.
>> BUG_ON(!size) however catches both the cases.
> How about "if (WARN_ON(!align)) align = __alignof__(long long);"?
> Early BUG_ON()s can be painful to debug depending on setup.
Totally agree - been there - seen that :-)
Also for caller passing zero, the panic will force the caller to fix it.
I'll respin the patch.
Thx,
-Vineet
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
2013-02-21 18:39 ` [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe Vineet Gupta
@ 2013-02-21 20:06 ` Max Filippov
2013-05-29 13:10 ` Fwd: " Vineet Gupta
1 sibling, 0 replies; 26+ messages in thread
From: Max Filippov @ 2013-02-21 20:06 UTC (permalink / raw)
To: Vineet Gupta
Cc: Andrew Morton, Chris Zankel, Marc Gauthier, linux-xtensa, linux-kernel
On Thu, Feb 21, 2013 at 10:39 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> flat DT copy code calls bootmem allocator with @align = 0.
> This is probably OK with legacy allocator which xtensa uses right now,
> but this will panic right away with memblock allocator
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Chris Zankel <chris@zankel.net>
> Cc: Max Filippov <jcmvbkbc@gmail.com>
> Cc: Marc Gauthier <marc@tensilica.com>
> Cc: linux-xtensa@linux-xtensa.org
> Cc: linux-kernel@vger.kernel.org
Acked-by: Max Filippov <jcmvbkbc@gmail.com>
--
Thanks.
-- Max
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 19:36 ` Tejun Heo
@ 2013-02-21 20:10 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:10 UTC (permalink / raw)
To: Tejun Heo
Cc: Vineet Gupta, Andrew Morton, Yinghai Lu, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to warn the caller to fix the code.
Tejun suggested that instead of BUG_ON(!align) - which might be
ineffective due to pending console init and such, it is better to
WARN_ON, and continue the boot with a reasonable default align.
Caller passing @size need not be handled similarly as the subsequent
panic will indicate that anyhow.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..f3804bd 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
+ if (WARN_ON(!align))
+ align = __alignof__(long long);
+
found = memblock_find_in_range_node(0, max_addr, size, align, nid);
if (found && !memblock_reserve(found, size))
return found;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
@ 2013-02-21 20:10 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:10 UTC (permalink / raw)
To: Tejun Heo
Cc: Vineet Gupta, Andrew Morton, Yinghai Lu, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to warn the caller to fix the code.
Tejun suggested that instead of BUG_ON(!align) - which might be
ineffective due to pending console init and such, it is better to
WARN_ON, and continue the boot with a reasonable default align.
Caller passing @size need not be handled similarly as the subsequent
panic will indicate that anyhow.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..f3804bd 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
+ if (WARN_ON(!align))
+ align = __alignof__(long long);
+
found = memblock_find_in_range_node(0, max_addr, size, align, nid);
if (found && !memblock_reserve(found, size))
return found;
--
1.7.4.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 20:10 ` Vineet Gupta
@ 2013-02-21 20:31 ` Yinghai Lu
-1 siblings, 0 replies; 26+ messages in thread
From: Yinghai Lu @ 2013-02-21 20:31 UTC (permalink / raw)
To: Vineet Gupta
Cc: Tejun Heo, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Thu, Feb 21, 2013 at 12:10 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to warn the caller to fix the code.
>
> Tejun suggested that instead of BUG_ON(!align) - which might be
> ineffective due to pending console init and such, it is better to
> WARN_ON, and continue the boot with a reasonable default align.
>
> Caller passing @size need not be handled similarly as the subsequent
> panic will indicate that anyhow.
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
> mm/memblock.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 1bcd9b9..f3804bd 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
> /* align @size to avoid excessive fragmentation on reserved array */
> size = round_up(size, align);
>
> + if (WARN_ON(!align))
> + align = __alignof__(long long);
> +
the checking should be put before round_up?
> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
> if (found && !memblock_reserve(found, size))
> return found;
> --
> 1.7.4.1
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
@ 2013-02-21 20:31 ` Yinghai Lu
0 siblings, 0 replies; 26+ messages in thread
From: Yinghai Lu @ 2013-02-21 20:31 UTC (permalink / raw)
To: Vineet Gupta
Cc: Tejun Heo, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Thu, Feb 21, 2013 at 12:10 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to warn the caller to fix the code.
>
> Tejun suggested that instead of BUG_ON(!align) - which might be
> ineffective due to pending console init and such, it is better to
> WARN_ON, and continue the boot with a reasonable default align.
>
> Caller passing @size need not be handled similarly as the subsequent
> panic will indicate that anyhow.
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
> ---
> mm/memblock.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index 1bcd9b9..f3804bd 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
> /* align @size to avoid excessive fragmentation on reserved array */
> size = round_up(size, align);
>
> + if (WARN_ON(!align))
> + align = __alignof__(long long);
> +
the checking should be put before round_up?
> found = memblock_find_in_range_node(0, max_addr, size, align, nid);
> if (found && !memblock_reserve(found, size))
> return found;
> --
> 1.7.4.1
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 20:31 ` Yinghai Lu
@ 2013-02-21 20:47 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:47 UTC (permalink / raw)
To: Yinghai Lu
Cc: Tejun Heo, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 02:01 AM, Yinghai Lu wrote:
> On Thu, Feb 21, 2013 at 12:10 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to warn the caller to fix the code.
>>
>> Tejun suggested that instead of BUG_ON(!align) - which might be
>> ineffective due to pending console init and such, it is better to
>> WARN_ON, and continue the boot with a reasonable default align.
>>
>> Caller passing @size need not be handled similarly as the subsequent
>> panic will indicate that anyhow.
>>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> mm/memblock.c | 3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 1bcd9b9..f3804bd 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
>> /* align @size to avoid excessive fragmentation on reserved array */
>> size = round_up(size, align);
>>
>> + if (WARN_ON(!align))
>> + align = __alignof__(long long);
>> +
> the checking should be put before round_up?
Oops my bad.
Interestingly however, I did test this exact patch on ARC before sending out -
passing @align = 0 to make it hit the WARN. It prints the warning, and uses
@size=0, @align=8 for memblock_find_in_range_node() and successfully allocates
memory as opposed to failure for @size=0, @align=0 scenario. This is kind of weird.
Anyhow I'll send the updated patch to fix the gotcha !
Thx,
-Vineet
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 1/2] memblock: add assertion for zero allocation alignment
@ 2013-02-21 20:47 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:47 UTC (permalink / raw)
To: Yinghai Lu
Cc: Tejun Heo, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Friday 22 February 2013 02:01 AM, Yinghai Lu wrote:
> On Thu, Feb 21, 2013 at 12:10 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to warn the caller to fix the code.
>>
>> Tejun suggested that instead of BUG_ON(!align) - which might be
>> ineffective due to pending console init and such, it is better to
>> WARN_ON, and continue the boot with a reasonable default align.
>>
>> Caller passing @size need not be handled similarly as the subsequent
>> panic will indicate that anyhow.
>>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>> ---
>> mm/memblock.c | 3 +++
>> 1 files changed, 3 insertions(+), 0 deletions(-)
>>
>> diff --git a/mm/memblock.c b/mm/memblock.c
>> index 1bcd9b9..f3804bd 100644
>> --- a/mm/memblock.c
>> +++ b/mm/memblock.c
>> @@ -824,6 +824,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
>> /* align @size to avoid excessive fragmentation on reserved array */
>> size = round_up(size, align);
>>
>> + if (WARN_ON(!align))
>> + align = __alignof__(long long);
>> +
> the checking should be put before round_up?
Oops my bad.
Interestingly however, I did test this exact patch on ARC before sending out -
passing @align = 0 to make it hit the WARN. It prints the warning, and uses
@size=0, @align=8 for memblock_find_in_range_node() and successfully allocates
memory as opposed to failure for @size=0, @align=0 scenario. This is kind of weird.
Anyhow I'll send the updated patch to fix the gotcha !
Thx,
-Vineet
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 20:31 ` Yinghai Lu
@ 2013-02-21 20:52 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:52 UTC (permalink / raw)
To: Yinghai Lu
Cc: Vineet Gupta, Andrew Morton, Tejun Heo, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to warn the caller to fix the code.
Tejun suggested that instead of BUG_ON(!align) - which might be
ineffective due to pending console init and such, it is better to
WARN_ON, and continue the boot with a reasonable default align.
Caller passing @size need not be handled similarly as the subsequent
panic will indicate that anyhow.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..8080cf8 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -821,6 +821,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
{
phys_addr_t found;
+ if (WARN_ON(!align))
+ align = __alignof__(long long);
+
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
@ 2013-02-21 20:52 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-02-21 20:52 UTC (permalink / raw)
To: Yinghai Lu
Cc: Vineet Gupta, Andrew Morton, Tejun Heo, Wanpeng Li, Ingo Molnar,
linux-mm, linux-kernel
This came to light when calling memblock allocator from arc port (for
copying flattended DT). If a "0" alignment is passed, the allocator
round_up() call incorrectly rounds up the size to 0.
round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
While the obvious allocation failure causes kernel to panic, it is
better to warn the caller to fix the code.
Tejun suggested that instead of BUG_ON(!align) - which might be
ineffective due to pending console init and such, it is better to
WARN_ON, and continue the boot with a reasonable default align.
Caller passing @size need not be handled similarly as the subsequent
panic will indicate that anyhow.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Yinghai Lu <yinghai@kernel.org>
Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
mm/memblock.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/mm/memblock.c b/mm/memblock.c
index 1bcd9b9..8080cf8 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -821,6 +821,9 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size,
{
phys_addr_t found;
+ if (WARN_ON(!align))
+ align = __alignof__(long long);
+
/* align @size to avoid excessive fragmentation on reserved array */
size = round_up(size, align);
--
1.7.4.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 20:52 ` Vineet Gupta
@ 2013-02-21 20:53 ` Tejun Heo
-1 siblings, 0 replies; 26+ messages in thread
From: Tejun Heo @ 2013-02-21 20:53 UTC (permalink / raw)
To: Vineet Gupta
Cc: Yinghai Lu, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Thu, Feb 21, 2013 at 12:52 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to warn the caller to fix the code.
>
> Tejun suggested that instead of BUG_ON(!align) - which might be
> ineffective due to pending console init and such, it is better to
> WARN_ON, and continue the boot with a reasonable default align.
>
> Caller passing @size need not be handled similarly as the subsequent
> panic will indicate that anyhow.
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
@ 2013-02-21 20:53 ` Tejun Heo
0 siblings, 0 replies; 26+ messages in thread
From: Tejun Heo @ 2013-02-21 20:53 UTC (permalink / raw)
To: Vineet Gupta
Cc: Yinghai Lu, Andrew Morton, Wanpeng Li, Ingo Molnar, linux-mm,
linux-kernel
On Thu, Feb 21, 2013 at 12:52 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> This came to light when calling memblock allocator from arc port (for
> copying flattended DT). If a "0" alignment is passed, the allocator
> round_up() call incorrectly rounds up the size to 0.
>
> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>
> While the obvious allocation failure causes kernel to panic, it is
> better to warn the caller to fix the code.
>
> Tejun suggested that instead of BUG_ON(!align) - which might be
> ineffective due to pending console init and such, it is better to
> WARN_ON, and continue the boot with a reasonable default align.
>
> Caller passing @size need not be handled similarly as the subsequent
> panic will indicate that anyhow.
>
> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Cc: Tejun Heo <tj@kernel.org>
> Cc: Yinghai Lu <yinghai@kernel.org>
> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: linux-mm@kvack.org
> Cc: linux-kernel@vger.kernel.org
Acked-by: Tejun Heo <tj@kernel.org>
Thanks.
--
tejun
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
2013-02-21 20:53 ` Tejun Heo
@ 2013-03-04 11:15 ` Vineet Gupta
-1 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-03-04 11:15 UTC (permalink / raw)
To: Andrew Morton
Cc: Tejun Heo, Yinghai Lu, Wanpeng Li, Ingo Molnar, linux-mm, linux-kernel
Hi Andrew,
On Friday 22 February 2013 02:23 AM, Tejun Heo wrote:
> On Thu, Feb 21, 2013 at 12:52 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to warn the caller to fix the code.
>>
>> Tejun suggested that instead of BUG_ON(!align) - which might be
>> ineffective due to pending console init and such, it is better to
>> WARN_ON, and continue the boot with a reasonable default align.
>>
>> Caller passing @size need not be handled similarly as the subsequent
>> panic will indicate that anyhow.
>>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>
> Acked-by: Tejun Heo <tj@kernel.org>
>
> Thanks.
>
I'm hoping this will be routed via the mm tree.
Thx,
-Vineet
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v3 1/2] memblock: add assertion for zero allocation alignment
@ 2013-03-04 11:15 ` Vineet Gupta
0 siblings, 0 replies; 26+ messages in thread
From: Vineet Gupta @ 2013-03-04 11:15 UTC (permalink / raw)
To: Andrew Morton
Cc: Tejun Heo, Yinghai Lu, Wanpeng Li, Ingo Molnar, linux-mm, linux-kernel
Hi Andrew,
On Friday 22 February 2013 02:23 AM, Tejun Heo wrote:
> On Thu, Feb 21, 2013 at 12:52 PM, Vineet Gupta
> <Vineet.Gupta1@synopsys.com> wrote:
>> This came to light when calling memblock allocator from arc port (for
>> copying flattended DT). If a "0" alignment is passed, the allocator
>> round_up() call incorrectly rounds up the size to 0.
>>
>> round_up(num, alignto) => ((num - 1) | (alignto -1)) + 1
>>
>> While the obvious allocation failure causes kernel to panic, it is
>> better to warn the caller to fix the code.
>>
>> Tejun suggested that instead of BUG_ON(!align) - which might be
>> ineffective due to pending console init and such, it is better to
>> WARN_ON, and continue the boot with a reasonable default align.
>>
>> Caller passing @size need not be handled similarly as the subsequent
>> panic will indicate that anyhow.
>>
>> Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
>> Cc: Andrew Morton <akpm@linux-foundation.org>
>> Cc: Tejun Heo <tj@kernel.org>
>> Cc: Yinghai Lu <yinghai@kernel.org>
>> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> Cc: Ingo Molnar <mingo@kernel.org>
>> Cc: linux-mm@kvack.org
>> Cc: linux-kernel@vger.kernel.org
>
> Acked-by: Tejun Heo <tj@kernel.org>
>
> Thanks.
>
I'm hoping this will be routed via the mm tree.
Thx,
-Vineet
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Fwd: [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
2013-02-21 18:39 ` [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe Vineet Gupta
2013-02-21 20:06 ` Max Filippov
@ 2013-05-29 13:10 ` Vineet Gupta
2013-05-31 1:01 ` Max Filippov
1 sibling, 1 reply; 26+ messages in thread
From: Vineet Gupta @ 2013-05-29 13:10 UTC (permalink / raw)
To: Max Filippov; +Cc: lkml
Hi Max,
This patch - acked by you then, got lost in the mist of time. Care to take it in
via xtensa tree for 3.11
Thx,
-Vineet
-------- Original Message --------
Subject: [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
Date: Fri, 22 Feb 2013 00:09:22 +0530
From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
To: Andrew Morton <akpm@linux-foundation.org>, Chris Zankel <chris@zankel.net>,
Max Filippov <jcmvbkbc@gmail.com>, Marc Gauthier <marc@tensilica.com>
CC: Vineet Gupta <Vineet.Gupta1@synopsys.com>, <linux-xtensa@linux-xtensa.org>,
<linux-kernel@vger.kernel.org>
Newsgroups: gmane.linux.kernel
References: <1361471962-25164-1-git-send-email-vgupta@synopsys.com>
flat DT copy code calls bootmem allocator with @align = 0.
This is probably OK with legacy allocator which xtensa uses right now,
but this will panic right away with memblock allocator
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Cc: Chris Zankel <chris@zankel.net>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Cc: Marc Gauthier <marc@tensilica.com>
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-kernel@vger.kernel.org
---
arch/xtensa/kernel/setup.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/xtensa/kernel/setup.c b/arch/xtensa/kernel/setup.c
index 6dd25ec..c2a526e 100644
--- a/arch/xtensa/kernel/setup.c
+++ b/arch/xtensa/kernel/setup.c
@@ -256,7 +256,7 @@ void __init early_init_devtree(void *params)
static void __init copy_devtree(void)
{
void *alloc = early_init_dt_alloc_memory_arch(
- be32_to_cpu(initial_boot_params->totalsize), 0);
+ be32_to_cpu(initial_boot_params->totalsize), 8);
if (alloc) {
memcpy(alloc, initial_boot_params,
be32_to_cpu(initial_boot_params->totalsize));
--
1.7.4.1
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
2013-05-29 13:10 ` Fwd: " Vineet Gupta
@ 2013-05-31 1:01 ` Max Filippov
0 siblings, 0 replies; 26+ messages in thread
From: Max Filippov @ 2013-05-31 1:01 UTC (permalink / raw)
To: Vineet Gupta; +Cc: lkml
Hi Vineet,
On Wed, May 29, 2013 at 5:10 PM, Vineet Gupta
<Vineet.Gupta1@synopsys.com> wrote:
> Hi Max,
>
> This patch - acked by you then, got lost in the mist of time. Care to take it in
> via xtensa tree for 3.11
Oops. Thanks for the reminder. Took it to the xtensa-fixes branch.
> -------- Original Message --------
> Subject: [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe
> Date: Fri, 22 Feb 2013 00:09:22 +0530
> From: Vineet Gupta <Vineet.Gupta1@synopsys.com>
> To: Andrew Morton <akpm@linux-foundation.org>, Chris Zankel <chris@zankel.net>,
> Max Filippov <jcmvbkbc@gmail.com>, Marc Gauthier <marc@tensilica.com>
> CC: Vineet Gupta <Vineet.Gupta1@synopsys.com>, <linux-xtensa@linux-xtensa.org>,
> <linux-kernel@vger.kernel.org>
> Newsgroups: gmane.linux.kernel
> References: <1361471962-25164-1-git-send-email-vgupta@synopsys.com>
--
Thanks.
-- Max
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2013-05-31 1:01 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <1361471962-25164-1-git-send-email-vgupta@synopsys.com>
2013-02-21 18:39 ` [PATCH 1/2] memblock: add assertion for zero allocation size Vineet Gupta
2013-02-21 18:39 ` Vineet Gupta
2013-02-21 19:27 ` Yinghai Lu
2013-02-21 19:27 ` Yinghai Lu
2013-02-21 19:33 ` Vineet Gupta
2013-02-21 19:33 ` Vineet Gupta
2013-02-21 19:36 ` Tejun Heo
2013-02-21 19:36 ` Tejun Heo
2013-02-21 19:43 ` Vineet Gupta
2013-02-21 19:43 ` Vineet Gupta
2013-02-21 20:10 ` [PATCH v2 1/2] memblock: add assertion for zero allocation alignment Vineet Gupta
2013-02-21 20:10 ` Vineet Gupta
2013-02-21 20:31 ` Yinghai Lu
2013-02-21 20:31 ` Yinghai Lu
2013-02-21 20:47 ` Vineet Gupta
2013-02-21 20:47 ` Vineet Gupta
2013-02-21 20:52 ` [PATCH v3 " Vineet Gupta
2013-02-21 20:52 ` Vineet Gupta
2013-02-21 20:53 ` Tejun Heo
2013-02-21 20:53 ` Tejun Heo
2013-03-04 11:15 ` Vineet Gupta
2013-03-04 11:15 ` Vineet Gupta
2013-02-21 18:39 ` [PATCH 2/2] xtensa: Flat DeviceTree copy not future-safe Vineet Gupta
2013-02-21 20:06 ` Max Filippov
2013-05-29 13:10 ` Fwd: " Vineet Gupta
2013-05-31 1:01 ` Max Filippov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.