dma_addr_t *dma_handle, unsigned int __nocast flag) 
dma_addr_t *dma_handle, gfp_t flag) 
void *iommu_alloc_coherent(struct iommu_table *tbl, size_t size,		dma_addr_t *dma_handle, unsigned int __nocast flag){	void *ret = NULL;	dma_addr_t mapping;	unsigned int npages, order;	size = PAGE_ALIGN(size);	npages = size >> PAGE_SHIFT;	order = get_order(size); 	/*	 * Client asked for way too much space.  This is checked later	 * anyway.  It is easier to debug here for the drivers than in	 * the tce tables.	 */	if (order >= IOMAP_MAX_ORDER) {		printk("iommu_alloc_consistent size too large: 0x%lx\n", size);		return NULL;	}	if (!tbl)		return NULL;	/* Alloc enough pages (and possibly more) */	ret = (void *)__get_free_pages(flag, order);	if (!ret)		return NULL;	memset(ret, 0, size);	/* Set up tces to cover the allocated range */	mapping = iommu_alloc(tbl, ret, npages, DMA_BIDIRECTIONAL, order);	if (mapping == DMA_ERROR_CODE) {		free_pages((unsigned long)ret, order);		ret = NULL;	} else		*dma_handle = mapping;	return ret;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7/iommu.c/clean/arch/ppc64/kernel/iommu.c