Thanks Peter,

I messed up slightly  in handling the pointers.
Its working fine now.

-Tarani

On Sun, Nov 2, 2008 at 9:40 PM, Peter Teoh <[EMAIL PROTECTED]> wrote:

> linux kernel classify all kernel address that is "NOT PRESENT" as
> general protection fault:
>
> In arch/x86/mm/fault.c:do_page_fault():
>
>                tsk->thread.cr2 = address;
>                /* Kernel addresses are always protection faults */
>                tsk->thread.error_code = error_code | (address >=
> TASK_SIZE);
>                tsk->thread.trap_no = 14;
>                force_sig_info_fault(SIGSEGV, si_code, address, tsk);
>
> Ie, so long as the ptr (which is pointing into the kernel range: ">=
> TASK_SIZE") is not a valid memory address (__PAGE_PRESENT flag set to
> 0 for the page's PTE) - it is illegitimate and will fault.
>
> On Mon, Nov 3, 2008 at 6:31 AM, taraniteja vishwanatha
> <[EMAIL PROTECTED]> wrote:
> > Hey,
> >
> > when do we get a general fault protection  in the kernel?  I am trying to
> > lookup in for some data pointer and when its not present , I return 0.
> > I am getting this error.
> >
> > Can anybody help??
> >
> > -Tarani
> >
>
>
>
> --
> Regards,
> Peter Teoh
>

Reply via email to