|
@@ -71,7 +71,7 @@ static int ioat_setup_functionality(struct pci_dev *pdev, void __iomem *iobase)
|
|
|
switch (version) {
|
|
|
case IOAT_VER_1_2:
|
|
|
device->dma = ioat_dma_probe(pdev, iobase);
|
|
|
- if (ioat_dca_enabled)
|
|
|
+ if (device->dma && ioat_dca_enabled)
|
|
|
device->dca = ioat_dca_init(pdev, iobase);
|
|
|
break;
|
|
|
default:
|
|
@@ -85,17 +85,16 @@ static void ioat_shutdown_functionality(struct pci_dev *pdev)
|
|
|
{
|
|
|
struct ioat_device *device = pci_get_drvdata(pdev);
|
|
|
|
|
|
- if (device->dma) {
|
|
|
- ioat_dma_remove(device->dma);
|
|
|
- device->dma = NULL;
|
|
|
- }
|
|
|
-
|
|
|
if (device->dca) {
|
|
|
unregister_dca_provider(device->dca);
|
|
|
free_dca_provider(device->dca);
|
|
|
device->dca = NULL;
|
|
|
}
|
|
|
|
|
|
+ if (device->dma) {
|
|
|
+ ioat_dma_remove(device->dma);
|
|
|
+ device->dma = NULL;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
static struct pci_driver ioat_pci_driver = {
|