linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/mm: fix a hardcode on memory boundary checking
@ 2017-01-12  9:09 Rui Teng
  2017-01-31  9:11 ` Michael Ellerman
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Rui Teng @ 2017-01-12  9:09 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	linuxppc-dev, linux-kernel
  Cc: Aneesh Kumar K.V, Boqun Feng, jia he, Rui Teng

The offset of hugepage block will not be 16G, if the expected
page is more than one. Calculate the totol size instead of the
hardcode value.

Signed-off-by: Rui Teng <rui.teng@linux.vnet.ibm.com>
---
 arch/powerpc/mm/hash_utils_64.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 8033493..b829f8e 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -506,7 +506,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
 	printk(KERN_INFO "Huge page(16GB) memory: "
 			"addr = 0x%lX size = 0x%lX pages = %d\n",
 			phys_addr, block_size, expected_pages);
-	if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) {
+	if (phys_addr + block_size * expected_pages <= memblock_end_of_DRAM()) {
 		memblock_reserve(phys_addr, block_size * expected_pages);
 		add_gpage(phys_addr, block_size, expected_pages);
 	}
-- 
2.9.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc/mm: fix a hardcode on memory boundary checking
  2017-01-12  9:09 [PATCH] powerpc/mm: fix a hardcode on memory boundary checking Rui Teng
@ 2017-01-31  9:11 ` Michael Ellerman
  2017-02-06  2:50   ` Rui Teng
  2017-07-05  4:45 ` Anshuman Khandual
  2017-08-07 10:41 ` Michael Ellerman
  2 siblings, 1 reply; 5+ messages in thread
From: Michael Ellerman @ 2017-01-31  9:11 UTC (permalink / raw)
  To: Rui Teng, Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev,
	linux-kernel
  Cc: Aneesh Kumar K.V, Boqun Feng, jia he, Rui Teng

Rui Teng <rui.teng@linux.vnet.ibm.com> writes:

> The offset of hugepage block will not be 16G, if the expected
> page is more than one. Calculate the totol size instead of the
> hardcode value.

I assume you found this by code inspection and not by triggering an
actual bug?

cheers

> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
> index 8033493..b829f8e 100644
> --- a/arch/powerpc/mm/hash_utils_64.c
> +++ b/arch/powerpc/mm/hash_utils_64.c
> @@ -506,7 +506,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
>  	printk(KERN_INFO "Huge page(16GB) memory: "
>  			"addr = 0x%lX size = 0x%lX pages = %d\n",
>  			phys_addr, block_size, expected_pages);
> -	if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) {
> +	if (phys_addr + block_size * expected_pages <= memblock_end_of_DRAM()) {
>  		memblock_reserve(phys_addr, block_size * expected_pages);
>  		add_gpage(phys_addr, block_size, expected_pages);
>  	}
> -- 
> 2.9.0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc/mm: fix a hardcode on memory boundary checking
  2017-01-31  9:11 ` Michael Ellerman
@ 2017-02-06  2:50   ` Rui Teng
  0 siblings, 0 replies; 5+ messages in thread
From: Rui Teng @ 2017-02-06  2:50 UTC (permalink / raw)
  To: Michael Ellerman, Benjamin Herrenschmidt, Paul Mackerras,
	linuxppc-dev, linux-kernel
  Cc: Aneesh Kumar K.V, Boqun Feng, jia he

On 31/01/2017 5:11 PM, Michael Ellerman wrote:
> Rui Teng <rui.teng@linux.vnet.ibm.com> writes:
>
>> The offset of hugepage block will not be 16G, if the expected
>> page is more than one. Calculate the totol size instead of the
>> hardcode value.
>
> I assume you found this by code inspection and not by triggering an
> actual bug?

Yes, I found this problem only by code inspection. We were finding the
ways to enable 16G huge page besides changing the device tree. For 
example, provide a new interface to set these size and pages parameters.
So that I think it may cause problem here.

>
> cheers
>
>> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
>> index 8033493..b829f8e 100644
>> --- a/arch/powerpc/mm/hash_utils_64.c
>> +++ b/arch/powerpc/mm/hash_utils_64.c
>> @@ -506,7 +506,7 @@ static int __init htab_dt_scan_hugepage_blocks(unsigned long node,
>>  	printk(KERN_INFO "Huge page(16GB) memory: "
>>  			"addr = 0x%lX size = 0x%lX pages = %d\n",
>>  			phys_addr, block_size, expected_pages);
>> -	if (phys_addr + (16 * GB) <= memblock_end_of_DRAM()) {
>> +	if (phys_addr + block_size * expected_pages <= memblock_end_of_DRAM()) {
>>  		memblock_reserve(phys_addr, block_size * expected_pages);
>>  		add_gpage(phys_addr, block_size, expected_pages);
>>  	}
>> --
>> 2.9.0
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] powerpc/mm: fix a hardcode on memory boundary checking
  2017-01-12  9:09 [PATCH] powerpc/mm: fix a hardcode on memory boundary checking Rui Teng
  2017-01-31  9:11 ` Michael Ellerman
@ 2017-07-05  4:45 ` Anshuman Khandual
  2017-08-07 10:41 ` Michael Ellerman
  2 siblings, 0 replies; 5+ messages in thread
From: Anshuman Khandual @ 2017-07-05  4:45 UTC (permalink / raw)
  To: Rui Teng, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, linuxppc-dev, linux-kernel
  Cc: Boqun Feng, Aneesh Kumar K.V, jia he

On 01/12/2017 02:39 PM, Rui Teng wrote:
> The offset of hugepage block will not be 16G, if the expected
> page is more than one. Calculate the totol size instead of the
> hardcode value.
> 
> Signed-off-by: Rui Teng <rui.teng@linux.vnet.ibm.com>

I have a redundant patch, this one is the original.

Tested-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: powerpc/mm: fix a hardcode on memory boundary checking
  2017-01-12  9:09 [PATCH] powerpc/mm: fix a hardcode on memory boundary checking Rui Teng
  2017-01-31  9:11 ` Michael Ellerman
  2017-07-05  4:45 ` Anshuman Khandual
@ 2017-08-07 10:41 ` Michael Ellerman
  2 siblings, 0 replies; 5+ messages in thread
From: Michael Ellerman @ 2017-08-07 10:41 UTC (permalink / raw)
  To: Rui Teng, Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev,
	linux-kernel
  Cc: Boqun Feng, Rui Teng, Aneesh Kumar K.V, jia he

On Thu, 2017-01-12 at 09:09:06 UTC, Rui Teng wrote:
> The offset of hugepage block will not be 16G, if the expected
> page is more than one. Calculate the totol size instead of the
> hardcode value.
> 
> Signed-off-by: Rui Teng <rui.teng@linux.vnet.ibm.com>
> Tested-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/23493c121912a39f0262e0dbeb236e

cheers

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-08-07 10:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-12  9:09 [PATCH] powerpc/mm: fix a hardcode on memory boundary checking Rui Teng
2017-01-31  9:11 ` Michael Ellerman
2017-02-06  2:50   ` Rui Teng
2017-07-05  4:45 ` Anshuman Khandual
2017-08-07 10:41 ` Michael Ellerman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).