void *consistent_alloc(int gfp, size_t size, dma_addr_t *handle) 
void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *handle) 
void *consistent_alloc(int gfp, size_t size, dma_addr_t *handle){	struct page *page, *end, *free;	void *ret;	int order;	size = PAGE_ALIGN(size);	order = get_order(size);	page = alloc_pages(gfp, order);	if (!page)		return NULL;	ret = page_address(page);	*handle = virt_to_phys(ret);	/*	 * We must flush the cache before we pass it on to the device	 */	dma_cache_wback_inv(ret, size);	page = virt_to_page(ret);	free = page + (size >> PAGE_SHIFT);	end  = page + (1 << order);	while (++page < end) {		set_page_count(page, 1);		/* Free any unused pages */		if (page >= free) {			__free_page(page);		}	}	return P2SEGADDR(ret);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/6dae2c2306684d9e76a04c22dc090380a9009f12/consistent.c/buggy/arch/sh/mm/consistent.c