diff options
Diffstat (limited to 'arch/arm/mm/cache-feroceon-l2.c')
| -rw-r--r-- | arch/arm/mm/cache-feroceon-l2.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mm/cache-feroceon-l2.c b/arch/arm/mm/cache-feroceon-l2.c index 13cdae8b0d4..80cd207cbae 100644 --- a/arch/arm/mm/cache-feroceon-l2.c +++ b/arch/arm/mm/cache-feroceon-l2.c @@ -150,7 +150,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)  	/*  	 * Clean and invalidate partial last cache line.  	 */ -	if (end & (CACHE_LINE_SIZE - 1)) { +	if (start < end && end & (CACHE_LINE_SIZE - 1)) {  		l2_clean_inv_pa(end & ~(CACHE_LINE_SIZE - 1));  		end &= ~(CACHE_LINE_SIZE - 1);  	} @@ -158,7 +158,7 @@ static void feroceon_l2_inv_range(unsigned long start, unsigned long end)  	/*  	 * Invalidate all full cache lines between 'start' and 'end'.  	 */ -	while (start != end) { +	while (start < end) {  		unsigned long range_end = calc_range_end(start, end);  		l2_inv_pa_range(start, range_end - CACHE_LINE_SIZE);  		start = range_end;  |