]> git.neil.brown.name Git - history.git/commitdiff
Make the pte unmapping atomic wrt other threads.
authorLinus Torvalds <torvalds@home.transmeta.com>
Tue, 21 May 2002 14:11:30 +0000 (07:11 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Tue, 21 May 2002 14:11:30 +0000 (07:11 -0700)
mm/memory.c

index 2009dfc44cc628ce078029fff83462fdc1223e36..280c4964bbc98ad93b2478d2265458aa21f61cef 100644 (file)
@@ -343,8 +343,7 @@ static void zap_pte_range(mmu_gather_t *tlb, pmd_t * pmd, unsigned long address,
                if (pte_present(pte)) {
                        unsigned long pfn = pte_pfn(pte);
 
-                       pte_clear(ptep);
-                       pfn = pte_pfn(pte);
+                       pte = ptep_get_and_clear(ptep);
                        tlb_remove_tlb_entry(tlb, pte, address+offset);
                        if (pfn_valid(pfn)) {
                                struct page *page = pfn_to_page(pfn);