linux-mips
[Top] [All Lists]

Re: missing data cache flush in trap_init?

To: Jun Sun <jsun@mvista.com>
Subject: Re: missing data cache flush in trap_init?
From: Ralf Baechle <ralf@oss.sgi.com>
Date: Wed, 3 Jan 2001 15:05:35 -0200
Cc: linux-mips@oss.sgi.com
In-reply-to: <3A5277C6.89170BAD@mvista.com>; from jsun@mvista.com on Tue, Jan 02, 2001 at 04:52:22PM -0800
References: <3A5277C6.89170BAD@mvista.com>
Sender: owner-linux-mips@oss.sgi.com
On Tue, Jan 02, 2001 at 04:52:22PM -0800, Jun Sun wrote:

> 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.

Flush_icache_range is correct;  the function is expected to do any dcache
writebacks etc. to make dcache / icache / memory coherent.

Is it possible that you're using a CPU with additional vectors that aren't
flushed by this flush_icache_call or?

  Ralf

<Prev in Thread] Current Thread [Next in Thread>