diff options
Diffstat (limited to 'arch/arm/mm/cache-xsc3l2.c')
| -rw-r--r-- | arch/arm/mm/cache-xsc3l2.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c index 10b1bae1a25..464de893a98 100644 --- a/arch/arm/mm/cache-xsc3l2.c +++ b/arch/arm/mm/cache-xsc3l2.c @@ -98,7 +98,7 @@ static void xsc3_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))) {  		xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));  		xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));  		end &= ~(CACHE_LINE_SIZE - 1); @@ -107,7 +107,7 @@ static void xsc3_l2_inv_range(unsigned long start, unsigned long end)  	/*  	 * Invalidate all full cache lines between 'start' and 'end'.  	 */ -	while (start != end) { +	while (start < end) {  		xsc3_l2_inv_pa(start);  		start += CACHE_LINE_SIZE;  	}  |