私はLinuxカーネルの初心者です。私はいくつかのLinux kerenl 2.6.11メモリ管理do_anonymous_pages(内のコード(plzは私の質問のための私のコードのコメントを確認してください))とコードスライスは以下の通りです:新しいpteエントリを設定した直後にdo_anonymous_page()を呼び出すと、なぜpte_unmap()が呼び出されるのですか?(linux kerenl 2.6.11メモリ管理)
if (write_access) {
pte_unmap(page_table);
spin_unlock(&mm->page_table_lock);
page = alloc_page(GFP_HIGHUSER | _ _GFP_ZERO);
spin_lock(&mm->page_table_lock);
page_table = pte_offset_map(pmd, addr);
mm->rss++;
entry = maybe_mkwrite(pte_mkdirty(mk_pte(page,
vma->vm_page_prot)), vma);
lru_cache_add_active(page);
SetPageReferenced(page);
set_pte(page_table, entry);**//here just set new pte entry**
pte_unmap(page_table);**// why unmap just we set new maped PTE??**
spin_unlock(&mm->page_table_lock);
return VM_FAULT_MINOR;
}