aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaciej Sosnowski <maciej.sosnowski@intel.com>2009-02-26 05:04:54 -0500
committerDan Williams <dan.j.williams@intel.com>2009-03-04 18:04:39 -0500
commit8b794b141c633083408d0bfb2229b3406d0ebf99 (patch)
tree767cad4cafccce7c606003088ead281b70477fe3
parentea9c717d0148d4194f9bd04ecfa6b59b20fc0a08 (diff)
I/OAT: fail initialization on zero channels detection
On some systems with I/OAT ver.2 when DCA is disabled in BIOS situations have been observed that zero DMA channels are detected instead of four. To avoid kernel panic driver should fail gracefully with appropriate message. 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>
-rw-r--r--drivers/dma/ioat_dma.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/dma/ioat_dma.c b/drivers/dma/ioat_dma.c
index 879f4a06e3ca..9012da7908f5 100644
--- a/drivers/dma/ioat_dma.c
+++ b/drivers/dma/ioat_dma.c
@@ -1659,6 +1659,13 @@ struct ioatdma_device *ioat_dma_probe(struct pci_dev *pdev,
1659 " %d channels, device version 0x%02x, driver version %s\n", 1659 " %d channels, device version 0x%02x, driver version %s\n",
1660 device->common.chancnt, device->version, IOAT_DMA_VERSION); 1660 device->common.chancnt, device->version, IOAT_DMA_VERSION);
1661 1661
1662 if (!device->common.chancnt) {
1663 dev_err(&device->pdev->dev,
1664 "Intel(R) I/OAT DMA Engine problem found: "
1665 "zero channels detected\n");
1666 goto err_setup_interrupts;
1667 }
1668
1662 err = ioat_dma_setup_interrupts(device); 1669 err = ioat_dma_setup_interrupts(device);
1663 if (err) 1670 if (err)
1664 goto err_setup_interrupts; 1671 goto err_setup_interrupts;