diff options
Diffstat (limited to 'arch/x86/mm/memtest.c')
| -rw-r--r-- | arch/x86/mm/memtest.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c index 605c8be0621..c0bedcd10f9 100644 --- a/arch/x86/mm/memtest.c +++ b/arch/x86/mm/memtest.c @@ -40,23 +40,23 @@ static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)  static void __init memtest(u64 pattern, u64 start_phys, u64 size)  { -	u64 i, count; -	u64 *start; +	u64 *p; +	void *start, *end;  	u64 start_bad, last_bad;  	u64 start_phys_aligned;  	size_t incr;  	incr = sizeof(pattern);  	start_phys_aligned = ALIGN(start_phys, incr); -	count = (size - (start_phys_aligned - start_phys))/incr;  	start = __va(start_phys_aligned); +	end = start + size - (start_phys_aligned - start_phys);  	start_bad = 0;  	last_bad = 0; -	for (i = 0; i < count; i++) -		start[i] = pattern; -	for (i = 0; i < count; i++, start++, start_phys_aligned += incr) { -		if (*start == pattern) +	for (p = start; p < end; p++) +		*p = pattern; +	for (p = start; p < end; p++, start_phys_aligned += incr) { +		if (*p == pattern)  			continue;  		if (start_phys_aligned == last_bad + incr) {  			last_bad += incr;  |