From 7df7cf0676060d778486359676734447347e1caf Mon Sep 17 00:00:00 2001 From: Shannon Nelson Date: Thu, 18 Oct 2007 03:07:12 -0700 Subject: I/OAT: cleanup pci issues Reorder the pci release actions Letting go of the resources in the right order helps get rid of occasional kernel complaints. Fix the pci_driver object name [Randy Dunlap] Rename the struct pci_driver data so that false section mismatch warnings won't be produced. Cc: Randy Dunlap Signed-off-by: Shannon Nelson Cc: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/dma/ioat_dma.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'drivers/dma/ioat_dma.c') diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c index 66c5bb53211..59d4344db00 100644 --- a/drivers/dma/ioat_dma.c +++ b/drivers/dma/ioat_dma.c @@ -931,7 +931,6 @@ err_completion_pool: err_dma_pool: kfree(device); err_kzalloc: - iounmap(iobase); dev_err(&device->pdev->dev, "ioatdma: Intel(R) I/OAT DMA Engine initialization failed\n"); return NULL; @@ -949,6 +948,10 @@ void ioat_dma_remove(struct ioatdma_device *device) pci_pool_destroy(device->dma_pool); pci_pool_destroy(device->completion_pool); + iounmap(device->reg_base); + pci_release_regions(device->pdev); + pci_disable_device(device->pdev); + list_for_each_entry_safe(chan, _chan, &device->common.channels, device_node) { ioat_chan = to_ioat_chan(chan); -- cgit v1.2.3