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
|