Linux MIPS Architecture development
 help / color / mirror / Atom feed
* missing data cache flush in trap_init?
@ 2001-01-03  0:52 Jun Sun
  2001-01-03 11:29 ` Maciej W. Rozycki
  2001-01-03 17:05 ` Ralf Baechle
  0 siblings, 2 replies; 5+ messages in thread
From: Jun Sun @ 2001-01-03  0:52 UTC (permalink / raw)
  To: linux-mips, ralf


Ralf,

Someone reported this bug to me.  I think it is a valid one.  Basically
trap_init() installs the vectors through kseg0 address and then flushes
icache.  It is possible that the vectors are still in the data cache and not
written back to memory yet.  If an exception happens it may get the corrupted
the vector value.

The following patch should fix it.  I am not sure if I can use
flush_cache_range() to have potentially better performance.

Jun


--- linux/arch/mips/kernel/traps.c.orig Tue Jan  2 16:24:16 2001
+++ linux/arch/mips/kernel/traps.c      Tue Jan  2 16:50:59 2001
@@ -767,7 +767,7 @@
        default:
                panic("Unknown CPU type");
        }
-       flush_icache_range(KSEG0, KSEG0 + 0x200);
+       flush_cache_all();
 
        atomic_inc(&init_mm.mm_count);  /* XXX  UP?  */
        current->active_mm = &init_mm;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2001-01-04 17:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-01-03  0:52 missing data cache flush in trap_init? Jun Sun
2001-01-03 11:29 ` Maciej W. Rozycki
2001-01-03 17:05 ` Ralf Baechle
2001-01-04  3:26   ` Jun Sun
2001-01-04 17:25     ` Ralf Baechle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox