question about nopage sample code
Feb. 22, 2017
1:31 p.m.
in ldd3 no page is implemented as the code posted below (page 428). can someone explain why should we subtract vma->vm_start? struct page *simple_vma_nopage(struct vm_area_struct *vma, unsigned long address, int *type) { struct page *pageptr; unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; unsigned long physaddr = address - vma->vm_start + offset; // why should we subtract vma->vm_start ? unsigned long pageframe = physaddr >> PAGE_SHIFT; if (!pfn_valid(pageframe)) return NOPAGE_SIGBUS; pageptr = pfn_to_page(pageframe); get_page(pageptr); if (type) *type = VM_FAULT_MINOR; return pageptr; } thank you Ali Aminian.
3460
Age (days ago)
3460
Last active (days ago)
0 comments
1 participants
participants (1)
-
Ali Aminian