X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=mm%2Fpage_alloc.c;fp=mm%2Fpage_alloc.c;h=5581dd1a489b501a6168e7a934e19ad081df0b23;hb=4e76c8a9fa413ccc09d3f7f664183dcce3555d57;hp=b747cbf8ba1b94003ee96fc9301190af66e6582c;hpb=1db395853d4f30d6120458bd279ede1f882a8525;p=linux-2.6.git diff --git a/mm/page_alloc.c b/mm/page_alloc.c index b747cbf8b..5581dd1a4 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -439,7 +439,8 @@ static void __free_pages_ok(struct page *page, unsigned int order) int i; int reserved = 0; - arch_free_page(page, order); + if (arch_free_page(page, order)) + return; if (!PageHighMem(page)) mutex_debug_check_no_locks_freed(page_address(page), PAGE_SIZE<mapping = NULL; @@ -751,11 +753,6 @@ static void fastcall free_hot_cold_page(struct page *page, int cold) if (pcp->count >= pcp->high) { free_pages_bulk(zone, pcp->batch, &pcp->list, 0); pcp->count -= pcp->batch; - } else if (zone->all_unreclaimable) { - spin_lock(&zone->lock); - zone->all_unreclaimable = 0; - zone->pages_scanned = 0; - spin_unlock(&zone->lock); } local_irq_restore(flags); put_cpu();