On 4/26/06, gautam borad <borad.gautam@xxxxxxxxx> wrote: > Hi, > Who passes the address to do_page_fault() in arch/ppc/mm/fault.c ? > I know that its in the DAR register for ppc ( cr2 in x86) but who puts > it there? I think its the CPU harware responsible for filling cr2 with fauting address, there is no software instruction executed for this. If I am not wrong, "address" ( got from cr2 register) in do_page_fault() will be same as regs->eip , as in Linux we do not use the segmentation concept and so the virtual address space is same a s linear address space. Correct me if I am wrong anywhere. Gaurav > My question will be sane if you read the problem im facing ... > > I'm using a test prog which just calls malloc(). > For debugging purpose i've put the foll in arch/ppc/mm/fault.c : > > printk("\nerror : vm_start = 0x%08x vm_end = 0x%08x > Address = 0x%08x\n ",vma->vm_start,vma->vm_end,address); > > Now when i run the test program i get the foll : > > vm_start = 0x10011000 vm_end = 0x10219000 Address = 0x101e9000 > vm_start = 0x10011000 vm_end = 0x10219000 Address = 0x101ea000 > vm_start = 0x10011000 vm_end = 0x10219000 Address = 0x101eb000 > vm_start = 0x10000000 vm_end = 0x10001000 Address = 0x00000024 > Oops: kernel access of bad area, sig: 11 > < ... more dump ....> > > Where does the address 0x00000024 comes from?? > Is this a cache/tlb problem? > > Thanks in advance. > > -- > Kernelnewbies: Help each other learn about the Linux kernel. > Archive: http://mail.nl.linux.org/kernelnewbies/ > FAQ: http://kernelnewbies.org/faq/ > > -- -- -Gaurav Email: gauravd.chd@xxxxxxxxx --------------------------------- Read my blog at: http://lkdp.blogspot.com/ --------------------------------- -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/