Subject: More on Viking cache lossage
To: None <port-sparc@NetBSD.ORG>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-sparc
Date: 04/08/1997 17:21:04
Ok, so I hadn't had a chance until to day to try a kernel w/ paul's latest
cache changes on my SS10. I'm now dying in viking_pcache_flush_line()..
The SS10 is in the lab on the other end of the building, so I scribbled
down the following:
pc = f80b45dc, addr = 14440, sfsr = 126 <FAV>
panic: kernel fault
gdb tells me:
(kgdb) list *0xf80b45dc
0xf80b45dc is in viking_pcache_flush_line
(../../../../arch/sparc/sparc/cache.c:671).
666 cmask = (4096 << cshift) - 1;
667 v = (char *)roundup((int)etext, NBPG) +
668 (((va & cmask) >> cshift) << cshift);
669 i = 5;
670 while (i--) {
671 (*(volatile int *)v);
672 v += NBPG;
673 }
674 }
675
(kgdb) print etext
$1 = {int ()} 0xf80cdbb8 <etext>
I don't really understand how that is supposed to work, but it seems
as if we're getting some sort of overflow and deref'ing the resulting
bogus pointer?
Jason R. Thorpe thorpej@nas.nasa.gov
NASA Ames Research Center Home: 408.866.1912
NAS: M/S 258-6 Work: 415.604.0935
Moffett Field, CA 94035 Pager: 415.428.6939