I/OAT: cancel watchdog before dma remove

Channel watchdog should be canceled before the rest of dma remove stuff.

Signed-off-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Shannon Nelson <shannon.nelson@intel.com>
Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Maciej Sosnowski 2009-02-26 11:05:07 +01:00 committed by Dan Williams
parent 8b794b141c
commit 2b8a6bf896

View File

@ -1705,6 +1705,9 @@ void ioat_dma_remove(struct ioatdma_device *device)
struct dma_chan *chan, *_chan; struct dma_chan *chan, *_chan;
struct ioat_dma_chan *ioat_chan; struct ioat_dma_chan *ioat_chan;
if (device->version != IOAT_VER_3_0)
cancel_delayed_work(&device->work);
ioat_dma_remove_interrupts(device); ioat_dma_remove_interrupts(device);
dma_async_device_unregister(&device->common); dma_async_device_unregister(&device->common);
@ -1716,10 +1719,6 @@ void ioat_dma_remove(struct ioatdma_device *device)
pci_release_regions(device->pdev); pci_release_regions(device->pdev);
pci_disable_device(device->pdev); pci_disable_device(device->pdev);
if (device->version != IOAT_VER_3_0) {
cancel_delayed_work(&device->work);
}
list_for_each_entry_safe(chan, _chan, list_for_each_entry_safe(chan, _chan,
&device->common.channels, device_node) { &device->common.channels, device_node) {
ioat_chan = to_ioat_chan(chan); ioat_chan = to_ioat_chan(chan);