From 0d13c7ef18cc2b92f49e6d0b1bac964f54c2adde Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Thu, 1 Dec 2011 12:51:05 -0500 Subject: [PATCH] --- yaml --- r: 276579 b: refs/heads/master c: c2851a9b1caa420c2cdbd517617166990e3723c0 h: refs/heads/master i: 276577: 62f97afd7bde8a8b37982d5f34cb6f8fbe7f3f8e 276575: e5984170277677d606ca48fe04043ac26e707002 v: v3 --- [refs] | 2 +- trunk/arch/tile/mm/homecache.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 1de070c54030..f518f676dfaa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3989efb77046ad334518b6cddcf817184affe7c9 +refs/heads/master: c2851a9b1caa420c2cdbd517617166990e3723c0 diff --git a/trunk/arch/tile/mm/homecache.c b/trunk/arch/tile/mm/homecache.c index cbe6f4f9eca3..1cc6ae477c98 100644 --- a/trunk/arch/tile/mm/homecache.c +++ b/trunk/arch/tile/mm/homecache.c @@ -449,9 +449,12 @@ void homecache_free_pages(unsigned long addr, unsigned int order) VM_BUG_ON(!virt_addr_valid((void *)addr)); page = virt_to_page((void *)addr); if (put_page_testzero(page)) { - int pages = (1 << order); homecache_change_page_home(page, order, initial_page_home()); - while (pages--) - __free_page(page++); + if (order == 0) { + free_hot_cold_page(page, 0); + } else { + init_page_count(page); + __free_pages(page, order); + } } }