pci_free_consistent(dev->pdev, PAGE_SIZE, cq->queue.page_list[i].buf, pci_unmap_addr(&cq->queue.page_list[i], mapping)); 
dma_free_coherent(&dev->pdev->dev, PAGE_SIZE, cq->queue.page_list[i].buf, pci_unmap_addr(&cq->queue.page_list[i], mapping)); 
static void mthca_free_cq_buf(struct mthca_dev *dev, struct mthca_cq *cq){	int i;	int size;	if (cq->is_direct)		pci_free_consistent(dev->pdev,				    (cq->ibcq.cqe + 1) * MTHCA_CQ_ENTRY_SIZE,				    cq->queue.direct.buf,				    pci_unmap_addr(&cq->queue.direct,						   mapping));	else {		size = (cq->ibcq.cqe + 1) * MTHCA_CQ_ENTRY_SIZE;		for (i = 0; i < (size + PAGE_SIZE - 1) / PAGE_SIZE; ++i)			if (cq->queue.page_list[i].buf)				pci_free_consistent(dev->pdev, PAGE_SIZE,						    cq->queue.page_list[i].buf,						    pci_unmap_addr(&cq->queue.page_list[i],								   mapping));		kfree(cq->queue.page_list);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/64dc81fca7f6d5c51e50ffa850640ad8358acd1f/mthca_cq.c/clean/drivers/infiniband/hw/mthca/mthca_cq.c