/* Flush the range  of kernel virtual adddress space from the I-cache. The corresponding range must be purged from the D-cache also because the SH-5 doesn't have cache snooping between the caches. The addresses will be visible through the superpage mapping, therefore it's guaranteed that there no cache entries for the range in cache sets of the wrong colour.  */
static void sh5_flush_icache_range(void *args)
/* Flush the range  of kernel virtual adddress space from the I-cache. The corresponding range must be purged from the D-cache also because the SH-5 doesn't have cache snooping between the caches. The addresses will be visible through the superpage mapping, therefore it's guaranteed that there no cache entries for the range in cache sets of the wrong colour.  */
static void sh5_flush_icache_range(void *args)
{
	struct flusher_data *data = args;
	unsigned long start, end;
	start = data->addr1;
	end = data->addr2;
	__flush_purge_region((void *)start, end);
	wmb();
	sh64_icache_inv_kernel_range(start, end);
}