/* permit the bootmem allocator to evade page validation on high-order frees  */
void __meminit __free_pages_bootmem(struct page *page, unsigned int order)
/* permit the bootmem allocator to evade page validation on high-order frees  */
void __meminit __free_pages_bootmem(struct page *page, unsigned int order)
{
	if (order == 0) {
		__ClearPageReserved(page);
		set_page_count(page, 0);
		set_page_refcounted(page);
		__free_page(page);
	} else {
		int loop;
		prefetchw(page);
		for (loop = 0; loop < BITS_PER_LONG; loop++) {
			struct page *p = &page[loop];
			if (loop + 1 < BITS_PER_LONG)
				prefetchw(p + 1);
			__ClearPageReserved(p);
			set_page_count(p, 0);
		}
		set_page_refcounted(page);
		__free_pages(page, order);
	}
}