diff options
| author | Andreas Herrmann <andreas.herrmann3@amd.com> | 2009-02-25 11:28:07 +0100 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-02-25 12:19:45 +0100 | 
| commit | 7dad169e57eda1f0aa6dc5ac43a898b4b0ced2c7 (patch) | |
| tree | 45bec24e059434bed3c0a6e19d7cb6682bc33048 | |
| parent | 6d74171bf7315257d276aa35400c5a8d6a993f19 (diff) | |
| download | olio-linux-3.10-7dad169e57eda1f0aa6dc5ac43a898b4b0ced2c7.tar.xz olio-linux-3.10-7dad169e57eda1f0aa6dc5ac43a898b4b0ced2c7.zip  | |
x86: memtest: cleanup memtest function
Impact: code cleanup
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/mm/memtest.c | 37 | 
1 files changed, 19 insertions, 18 deletions
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c index 827f94044cf..01a72d6825b 100644 --- a/arch/x86/mm/memtest.c +++ b/arch/x86/mm/memtest.c @@ -16,6 +16,15 @@ static u64 patterns[] __initdata = {  	0xaaaaaaaaaaaaaaaaULL,  }; +static void __init reserve_bad_mem(u64 pattern, unsigned long start_bad, +			    unsigned long end_bad) +{ +	printk(KERN_CONT "\n  %016llx bad mem addr " +	       "%010lx - %010lx reserved", +	       (unsigned long long) pattern, start_bad, end_bad); +	reserve_early(start_bad, end_bad, "BAD RAM"); +} +  static void __init memtest(unsigned long start_phys, unsigned long size,  			   u64 pattern)  { @@ -37,26 +46,18 @@ static void __init memtest(unsigned long start_phys, unsigned long size,  	for (i = 0; i < count; i++)  		start[i] = pattern;  	for (i = 0; i < count; i++, start++, start_phys_aligned += incr) { -		if (*start != pattern) { -			if (start_phys_aligned == last_bad + incr) { -				last_bad += incr; -			} else { -				if (start_bad) { -					printk(KERN_CONT "\n  %016llx bad mem addr %010lx - %010lx reserved", -					       (unsigned long long) pattern, -					       start_bad, last_bad + incr); -					reserve_early(start_bad, last_bad + incr, "BAD RAM"); -				} -				start_bad = last_bad = start_phys_aligned; -			} +		if (*start == pattern) +			continue; +		if (start_phys_aligned == last_bad + incr) { +			last_bad += incr; +			continue;  		} +		if (start_bad) +			reserve_bad_mem(pattern, start_bad, last_bad + incr); +		start_bad = last_bad = start_phys_aligned;  	} -	if (start_bad) { -		printk(KERN_CONT "\n  %016llx bad mem addr %010lx - %010lx reserved", -		       (unsigned long long) pattern, start_bad, -		       last_bad + incr); -		reserve_early(start_bad, last_bad + incr, "BAD RAM"); -	} +	if (start_bad) +		reserve_bad_mem(pattern, start_bad, last_bad + incr);  }  /* default is disabled */  |