if (USED_MAP(page) & ~order->all_used) PAGE_BUG(page); 
BUG_ON(USED_MAP(page) & ~order->all_used); 
static void __free_small_page(unsigned long spage, struct order *order){	unsigned long flags;	struct page *page;	if (virt_addr_valid(spage)) {		page = virt_to_page(spage);		/*		 * The container-page must be marked Reserved		 */		if (!PageReserved(page) || spage & order->mask)			goto non_small;#ifdef PEDANTIC		if (USED_MAP(page) & ~order->all_used)			PAGE_BUG(page);#endif		spage = spage >> order->shift;		spage &= order->block_mask;		/*		 * the following must be atomic wrt get_page		 */		spin_lock_irqsave(&small_page_lock, flags);		if (USED_MAP(page) == order->all_used)			list_add(&page->lru, &order->queue);		if (!TEST_AND_CLEAR_USED(page, spage))			goto already_free;		if (USED_MAP(page) == 0)			goto free_page;		spin_unlock_irqrestore(&small_page_lock, flags);	}	return;free_page:	/*	 * unlink the page from the small page queue and free it	 */	list_del_init(&page->lru);	spin_unlock_irqrestore(&small_page_lock, flags);	ClearPageReserved(page);	__free_page(page);	return;non_small:	printk("Trying to free non-small page from %p\n", __builtin_return_address(0));	return;already_free:	printk("Trying to free free small page from %p\n", __builtin_return_address(0));}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/cd7619d6bf36564cf54ff7218ef54e558a741913/small_page.c/buggy/arch/arm26/mm/small_page.c