x86: memtest fix use of reserve_early()
PATCH 1/1 x86: memtest fix use of reserve_early()
Hi all,
Wrong usage of 2nd parameter in reserve_early call.
66/75: reserve_early(start_bad, last_bad - start_bad, "BAD RAM");
^^^^^^^^^^^^^^^^^^^^The correct way is to use 'end' address and not 'size'. As a bonus a fix to the printk format.
---
arch/x86/mm/memtest.c +3 -4
@@ -61,9 +61,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size, last_bad += incr; }else {if (start_bad) { -printk (KERN_CONT "\n %010lx bad mem addr %010lx - %010lx reserved" , +printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } start_bad = last_bad = start_phys_aligned; }
@@ -72,9 +72,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size,if (start_bad) {printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } - }/* default is disabled */
Hi Ingo and all,
Is there any news about this patch ?
AFAIK without this fix memtest is unusefull.
But if I'm wrong, apologise for the noise.
Bye,
Daniele
--
Quoted 43 lines · On Mon, 13 Oct 2008 10:34:12 +0200 Daniele Calore <[email protected]> wrote:
Hi all,
Wrong usage of 2nd parameter in
reserve_earlycall.66/75: reserve_early(start_bad, last_bad - start_bad, "BAD RAM"); ^^^^^^^^^^^^^^^^^^^^The correct way is to use 'end' address and not 'size'. As a bonus a fix to the printk format.
Signed-off-by Daniele Calore <[email protected]>---
arch/x86/mm/memtest.c +1
-1@@ -61,9 +61,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size, last_bad += incr; } else { if (start_bad) { - printk(KERN_CONT "\n %010lx bad mem addr %010lx - %010lx reserved", + printk(KERN_CONT "\n %016lxbad mem addr %010lx - %010lx reserved", val,
start_bad,last_bad+ incr);arch/x86/mm/memtest.c +0
-1- reserve_early(start_bad,
last_bad-start_bad, "BAD RAM");arch/x86/mm/memtest.c +1
-0+ reserve_early(start_bad,
last_bad+ incr, "BAD RAM"); }
start_bad=last_bad=start_phys_aligned; }arch/x86/mm/memtest.c +1
-2@@ -72,9 +72,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size, if (start_bad) { printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved", val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM"); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } - }/* default is disabled */
Quoted 29 lines · Daniele Calore
Hi all,
Wrong usage of 2nd parameter in
reserve_earlycall.66/75: reserve_early(start_bad, last_bad - start_bad, "BAD RAM"); ^^^^^^^^^^^^^^^^^^^^The correct way is to use 'end' address and not 'size'. As a bonus a fix to the printk format.
Signed-off-by Daniele Calore <[email protected]>---
arch/x86/mm/memtest.c +2
-2@@ -61,9 +61,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size, last_bad += incr; }else {if (start_bad) { -printk (KERN_CONT "\n %010lx bad mem addr %010lx - %010lx reserved" , +printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } start_bad = last_bad = start_phys_aligned; }
arch/x86/mm/memtest.c static void __init memtest(unsigned long start_phys, unsigned long size, · line 79
Quoted 10 lines
arch/x86/mm/memtest.c +1
-2@@ -72,9 +72,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size,if (start_bad) {printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } - }/* default is disabled */
Thanks
YH
unsubscribe linux-kernel
Ingo Molnar
AppliedQuoted 39 lines · Yinghai Lu
Quoted 38 lines · Daniele Calore
Hi all,
Wrong usage of 2nd parameter in
reserve_earlycall.66/75: reserve_early(start_bad, last_bad - start_bad, "BAD RAM"); ^^^^^^^^^^^^^^^^^^^^The correct way is to use 'end' address and not 'size'. As a bonus a fix to the printk format.
Signed-off-by Daniele Calore <[email protected]>---
arch/x86/mm/memtest.c +3
-4@@ -61,9 +61,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size, last_bad += incr; }else {if (start_bad) { -printk (KERN_CONT "\n %010lx bad mem addr %010lx - %010lx reserved" , +printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } start_bad = last_bad = start_phys_aligned; }@@ -72,9 +72,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size,if (start_bad) {printk (KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved" , val, start_bad, last_bad + incr); -reserve_early (start_bad, last_bad - start_bad,"BAD RAM" ); +reserve_early (start_bad, last_bad + incr,"BAD RAM" ); } - }
Quoted 3 lines
arch/x86/mm/memtest.c static void __init memtest(unsigned long start_phys, unsigned long size, · line 79
Quoted 1 line
arch/x86/mm/memtest.c +0
-0/* default is disabled */ Acked-by Yinghai Lu <[email protected]>
applied to tip/x86/urgent, thanks!
Ingo