Re: forget_pte()

From: William Lee Irwin III (wli@holomorphy.com)
Date: Mon Jun 03 2002 - 00:38:32 EST


On Sat, Jun 01, 2002 at 09:40:02AM -0700, William Lee Irwin III wrote:
...

patch updated to incorporate rusty's suggestion:

===== mm/memory.c 1.70 vs edited =====
--- 1.70/mm/memory.c Fri May 31 18:18:07 2002
+++ edited/mm/memory.c Sun Jun 2 22:37:17 2002
@@ -310,17 +310,6 @@
         return -ENOMEM;
 }
 
-/*
- * Return indicates whether a page was freed so caller can adjust rss
- */
-static inline void forget_pte(pte_t page)
-{
- if (!pte_none(page)) {
- printk("forget_pte: old mapping existed!\n");
- BUG();
- }
-}
-
 static void zap_pte_range(mmu_gather_t *tlb, pmd_t * pmd, unsigned long address, unsigned long size)
 {
         unsigned long offset;
@@ -779,7 +768,8 @@
                 pte_t zero_pte = pte_wrprotect(mk_pte(ZERO_PAGE(address), prot));
                 pte_t oldpage = ptep_get_and_clear(pte);
                 set_pte(pte, zero_pte);
- forget_pte(oldpage);
+ /* PTE's must be unmapped */
+ BUG_ON(!pte_none(oldpage));
                 address += PAGE_SIZE;
                 pte++;
         } while (address && (address < end));
@@ -857,7 +847,8 @@
 
                 if (!pfn_valid(pfn) || PageReserved(pfn_to_page(pfn)))
                          set_pte(pte, pfn_pte(pfn, prot));
- forget_pte(oldpage);
+ /* PTE's must be unmapped */
+ BUG_ON(!pte_none(oldpage));
                 address += PAGE_SIZE;
                 pfn++;
                 pte++;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Jun 07 2002 - 22:00:13 EST