sbus_strbuf_flush(iommu, dvma_base, size >> IO_PAGE_SHIFT); 
sbus_strbuf_flush(iommu, dvma_base, size >> IO_PAGE_SHIFT, direction); 
void sbus_unmap_sg(struct sbus_dev *sdev, struct scatterlist *sg, int nents, int direction){	unsigned long size, flags;	struct sbus_iommu *iommu;	u32 dvma_base;	int i;	/* Fast path single entry scatterlists. */	if (nents == 1) {		sbus_unmap_single(sdev, sg->dma_address, sg->dma_length, direction);		return;	}	dvma_base = sg[0].dma_address & IO_PAGE_MASK;	for (i = 0; i < nents; i++) {		if (sg[i].dma_length == 0)			break;	}	i--;	size = IO_PAGE_ALIGN(sg[i].dma_address + sg[i].dma_length) - dvma_base;	iommu = sdev->bus->iommu;	spin_lock_irqsave(&iommu->lock, flags);	free_streaming_cluster(iommu, dvma_base, size >> IO_PAGE_SHIFT);	sbus_strbuf_flush(iommu, dvma_base, size >> IO_PAGE_SHIFT);	spin_unlock_irqrestore(&iommu->lock, flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/7c963ad1d113790a8c723a178988b675868f3abe/sbus.c/buggy/arch/sparc64/kernel/sbus.c