if (USED_MAP(page) & ~order->all_used) PAGE_BUG(page); 
BUG_ON(USED_MAP(page) & ~order->all_used); 
static unsigned long __get_small_page(int priority, struct order *order){	unsigned long flags;	struct page *page;	int offset;	do {		spin_lock_irqsave(&small_page_lock, flags);		if (list_empty(&order->queue))			goto need_new_page;		page = list_entry(order->queue.next, struct page, lru);again:#ifdef PEDANTIC		if (USED_MAP(page) & ~order->all_used)			PAGE_BUG(page);#endif		offset = ffz(USED_MAP(page));		SET_USED(page, offset);		if (USED_MAP(page) == order->all_used)			list_del_init(&page->lru);		spin_unlock_irqrestore(&small_page_lock, flags);		return (unsigned long) page_address(page) + (offset << order->shift);need_new_page:		spin_unlock_irqrestore(&small_page_lock, flags);		page = alloc_page(priority);		spin_lock_irqsave(&small_page_lock, flags);		if (list_empty(&order->queue)) {			if (!page)				goto no_page;			SetPageReserved(page);			USED_MAP(page) = 0;			list_add(&page->lru, &order->queue);			goto again;		}		spin_unlock_irqrestore(&small_page_lock, flags);		__free_page(page);	} while (1);no_page:	spin_unlock_irqrestore(&small_page_lock, flags);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/cd7619d6bf36564cf54ff7218ef54e558a741913/small_page.c/buggy/arch/arm26/mm/small_page.c