On Tue, 2009-10-06 at 00:31 +0200, Joakim Tjernlund wrote:
regs or regs->nip is NULL? Either one does not make sense
In any case it might be a secondary problem as DAR is NULL already
when you
enter the page fault.
quoted
insn = *((unsigned long *)regs->nip);
c000e110: 80 a9 00 00 lwz r5,0(r9)
fails.
hmm, I wonder if you managed to invalidate the a kernel TLB?
Are you using pinned kernel TLBs?
You should not dereference a user address like that. Use get_user !
Obviously you got 0 in SRR0 for some reason (somebody tried to jump
to 0, either intentionally or as a result of some other problem) and
the above will crash the kernel when it happens.
Cheers,
Ben.