int __isolate_free_page(struct page *page, unsigned int order)
 {
-       unsigned long watermark;
-       struct zone *zone;
-       int mt;
-
-       BUG_ON(!PageBuddy(page));
-
-       zone = page_zone(page);
-       mt = get_pageblock_migratetype(page);
+       struct zone *zone = page_zone(page);
+       int mt = get_pageblock_migratetype(page);
 
        if (!is_migrate_isolate(mt)) {
+               unsigned long watermark;
                /*
                 * Obey watermarks as if the page was being allocated. We can
                 * emulate a high-order watermark check with a raised order-0
                __mod_zone_freepage_state(zone, -(1UL << order), mt);
        }
 
-       /* Remove page from free list */
-
        del_page_from_free_list(page, zone, order);
 
        /*
                }
        }
 
-
        return 1UL << order;
 }