> During exec there is a page fault of 4000b0 but immediately after
> that i get another page fault 0f 0x0fc01788 and following register
> dump after it
> fails to get a fixup address.
>
> Unable to handle kernel paging request at virtual address
> 0fc01788, epc == 00000Oops in fault.c:do_page_fault, line 230:
> $0 : 00000000 00000000 00000000 00000000
> $4 : 00007340 800f0474 00000000 801fa000
> $8 : 00000000 00000000 00000000 4c696e75
> $12: 78000000 00000000 00000000 00000000
> $16: 00000000 00000000 00000000 00000000
> $20: 00000000 00000000 00000000 00000000
> $24: 00000000 00000000
> $28: 6e652900 00000000 00000000 00000000
> epc : 00000000
> Status: 00000000
> Cause : 00000000
> Process sh (pid: 1, stackpage=801fa000)
>
>
> i am confused how come the epc status and cause register all are
> reported zero.
> whether my regs ( pointer to struct pt_regs) is pointing somewhere
> else..?
When you see a register dump like that, it's a safe
bet that your regs pointer is trashed.
> secondly Is this a problem with shell or kernel..? may be
> somewhere the kernel is not checking the
> validity of user space address and hence this problem.
By definition, it would be a kernel problem even if
the shell *had* made a bogus reference. Worst
case, an error in user mode should cause a core
dump (of course, if it's init that dumps core, you
aren't likely to get to a system login).
You seem to be pretty new to this, so let me recommend
that you first read the FAQ and related information at
http://www.linux-mips.org/, and if you want further
help from the mailing list, please specify what CPU and
board/system you are targeting, which kernel sources you used,
and what tools you used to build it, all of which are pretty
important.
Kevin K.
|