X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fi386%2Fmm%2Fpageattr.c;h=cb3da6baa704208d4faf2977d411190d9a2aa88f;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=862326f5dc38e65e358f2230d1d36737d0f5602d;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/arch/i386/mm/pageattr.c b/arch/i386/mm/pageattr.c index 862326f5d..cb3da6baa 100644 --- a/arch/i386/mm/pageattr.c +++ b/arch/i386/mm/pageattr.c @@ -189,7 +189,7 @@ int change_page_attr(struct page *page, int numpages, pgprot_t prot) void global_flush_tlb(void) { LIST_HEAD(l); - struct list_head* n; + struct page *pg, *next; BUG_ON(irqs_disabled()); @@ -197,12 +197,8 @@ void global_flush_tlb(void) list_splice_init(&df_list, &l); spin_unlock_irq(&cpa_lock); flush_map(); - n = l.next; - while (n != &l) { - struct page *pg = list_entry(n, struct page, lru); - n = n->next; + list_for_each_entry_safe(pg, next, &l, lru) __free_page(pg); - } } #ifdef CONFIG_DEBUG_PAGEALLOC