|
From: Ken T. <ke...@we...> - 2001-10-04 14:01:49
|
Hello, I described yesterday how 53c7xx.c driver is hanging up during booting after I turned on DEBUG in virgefb.c. As best I can determine a cache_push call in 53c7xx.c is where the booting stops. The 53c7xx.c does __get_free_pages(GFP_ATOMIC,1); and gets 8192 bytes, later calls cache_push() with the returned address and 8192 bytes. During/after the the cache_push "Oops: kernel access of bad area, sig: 11" appears in dmesgs. I can 'fix' this two ways, either by getting more mem with __get_free_pages(GFP_ATOMIC,3) which boots OK, or by commenting out the code following /* Also flush trailing block */ in cache_push (arch/ppc/kernel/apus_setup.c), this moves the problem down to the susequent call of cache_clear. When the "trailing" code there is commented out boot is again OK. Is it OK to "flush trailing block" when the called with MAX_CACHE_SIZE ? Or does it mean there is an address in the cache in the trailing block that is invalid in that it's not mapped in ? Ken. |