r4k_dma_cache_xxx should not flush icache ?
diff -u linux-mips/arch/mips/mm/c-r4k.c linux.new/arch/mips/mm
--- linux-mips/arch/mips/mm/c-r4k.c Mon Apr 14 23:08:02 2003
+++ linux.new/arch/mips/mm/c-r4k.c Tue Apr 15 00:12:27 2003
@@ -514,7 +514,7 @@
unsigned long end, a;
if (size >= dcache_size) {
- r4k_flush_pcache_all();
+ r4k_blast_dcache();
} else {
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
R4600_HIT_CACHEOP_WAR_DECL;
@@ -539,7 +539,8 @@
unsigned long end, a;
if (size >= scache_size) {
- r4k_flush_scache_all();
+ r4k_blast_dcache();
+ r4k_blast_scache();
return;
}
@@ -558,7 +559,7 @@
unsigned long end, a;
if (size >= dcache_size) {
- r4k_flush_pcache_all();
+ r4k_blast_dcache();
} else {
unsigned long dc_lsize = current_cpu_data.dcache.linesz;
R4600_HIT_CACHEOP_WAR_DECL;
@@ -583,7 +584,8 @@
unsigned long end, a;
if (size >= scache_size) {
- r4k_flush_scache_all();
+ r4k_blast_dcache();
+ r4k_blast_scache();
return;
}
---
And I wonder why r4k_flush_pcache_mm (and r4k_flush_pcache_all) does
nothing if cpu_has_dc_aliases was not true. I'm still
investigating...
---
Atsushi Nemoto
|