Re: missing flush_dcache_page call in 2.4 kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Atsushi Nemoto wrote:

On Sun, 28 Mar 2004 14:04:00 +0100, Peter Horton <pdh@colonel-panic.org> said:


pdh> I've ditched the original Cobalt hack in c-r4k.c, and am using
pdh> the patch below instead. Seems to work okay ...

+	for (; addr < (void *) end; addr += PAGE_SIZE)
+		flush_data_cache_page((unsigned long) addr);

dma_cache_wback() will be more efficient ?


Well technically it should be dma_cache_wback_inv(), though they equate to the same function currently.

It would be more efficient, but the dma_cache_*() functions are only available under CONFIG_DMA_NONCOHERENT, and our problem has nothing to do with DMA coherency at all.

All we really need to do is add a flush_dcache_range(from,to) function. I'm working on this at the moment.

Also, I personally think replacing all insb/insw/insl is a bit
overkill.  I'd prefer redefine insb/insw/insl in asm-mips/ide.h, but
I'm not sure it is enough. (really all ins[bwl] should take care of
the cache inconsistency?)



There maybe other block drivers (SCSI?) that use insb/insw/insl that would also cause us grief, but we could provide both versions of the functions and select them as necessary.

P.


[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux