aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/ioat_dma.c
diff options
context:
space:
mode:
authorShannon Nelson <shannon.nelson@intel.com>2007-10-18 06:07:12 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-18 17:37:32 -0400
commit7df7cf0676060d778486359676734447347e1caf (patch)
tree1a452993706602ea26b2ec4040fae4818c8e22bb /drivers/dma/ioat_dma.c
parentd8c98618f4bb8161cc0c14e110b07ba37249332b (diff)
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 <randy.dunlap@oracle.com> Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/dma/ioat_dma.c')
-rw-r--r--drivers/dma/ioat_dma.c5
1 files changed, 4 insertions, 1 deletions
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:
931err_dma_pool: 931err_dma_pool:
932 kfree(device); 932 kfree(device);
933err_kzalloc: 933err_kzalloc:
934 iounmap(iobase);
935 dev_err(&device->pdev->dev, 934 dev_err(&device->pdev->dev,
936 "ioatdma: Intel(R) I/OAT DMA Engine initialization failed\n"); 935 "ioatdma: Intel(R) I/OAT DMA Engine initialization failed\n");
937 return NULL; 936 return NULL;
@@ -949,6 +948,10 @@ void ioat_dma_remove(struct ioatdma_device *device)
949 pci_pool_destroy(device->dma_pool); 948 pci_pool_destroy(device->dma_pool);
950 pci_pool_destroy(device->completion_pool); 949 pci_pool_destroy(device->completion_pool);
951 950
951 iounmap(device->reg_base);
952 pci_release_regions(device->pdev);
953 pci_disable_device(device->pdev);
954
952 list_for_each_entry_safe(chan, _chan, 955 list_for_each_entry_safe(chan, _chan,
953 &device->common.channels, device_node) { 956 &device->common.channels, device_node) {
954 ioat_chan = to_ioat_chan(chan); 957 ioat_chan = to_ioat_chan(chan);