11 #include <linux/module.h>
13 #include <asm/cacheflush.h>
30 flags = smp_lock_cache();
36 smp_unlock_cache(flags);
50 static void flush_icache_page_range(
unsigned long start,
unsigned long end)
110 unsigned long start_page, end_page;
113 flags = smp_lock_cache();
115 if (end > 0x80000000UL) {
117 if (end > 0xa0000000UL) {
126 start_page = (start >= 0x80000000
UL) ? start : 0x80000000UL;
130 if (start_page == start)
136 end_page = (end - 1) & PAGE_MASK;
138 if (start_page == end_page) {
140 flush_icache_page_range(start, end);
141 }
else if (start_page + 1 == end_page) {
143 flush_icache_page_range(start, end_page);
144 flush_icache_page_range(end_page, end);
153 smp_unlock_cache(flags);