In boot stage , my kernel get into loop restart due to page_fault.
   I have catched the source . here is the backtrace :

   #3  0xc01c686e in new_inode (sb=0xc8df5800) at fs/inode.c:551
   #4  0xc01d076d in get_sb_pseudo (fs_type=0xc02e1d00, name=0xc02c3747 
"futex", ops=0x0, magic=195894762) at fs/libfs.c:201
   #5  0xc015cbbf in futexfs_get_sb (fs_type=0xc02e1d00, flags=0, 
dev_name=0xc02c374d "futexfs", data=0x0) at kernel/futex.c:679
   #6  0xc01a62c5 in do_kern_mount (fstype=0xc02c374d "futexfs", flags=0, 
name=0xc02c374d "futexfs", data=0x0) at fs/super.c:718

   code  at  the frame 3  is :
   struct inode *root = new_inode(s);
   after return from  the new_inode , the root->i_dentry=(0x1,0x3).
   
   then calling  the function  d_instantiate(entry, root),here entry is of type 
struct entry*,

   this calls do list_add(&entry->d_alias, root->i_dentry), 
   Obviously,this need to address the inode->i_dentry->next,which is ox3,
   but 0x3 is low address ,addressing to it causes a page_fault ,then make 
system  restart .
 

  I doubt that the returned root inode need to be initialized using a 
applicable i_dentry . 
  If so ,what value can be used ? If not , where am I wrong?

  thanks!


                      

    
 
   
  

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@kernelnewbies.org
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to