提交 08157cd0 编写于 作者: J Jeff Garzik 提交者: James Bottomley

[SCSI] SCSI/aha1740: handle SCSI API errors

Signed-off-by: NJeff Garzik <jeff@garzik.org>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NJames Bottomley <James.Bottomley@SteelEye.com>
上级 42252854
...@@ -586,7 +586,7 @@ static struct scsi_host_template aha1740_template = { ...@@ -586,7 +586,7 @@ static struct scsi_host_template aha1740_template = {
static int aha1740_probe (struct device *dev) static int aha1740_probe (struct device *dev)
{ {
int slotbase; int slotbase, rc;
unsigned int irq_level, irq_type, translation; unsigned int irq_level, irq_type, translation;
struct Scsi_Host *shpnt; struct Scsi_Host *shpnt;
struct aha1740_hostdata *host; struct aha1740_hostdata *host;
...@@ -641,10 +641,16 @@ static int aha1740_probe (struct device *dev) ...@@ -641,10 +641,16 @@ static int aha1740_probe (struct device *dev)
} }
eisa_set_drvdata (edev, shpnt); eisa_set_drvdata (edev, shpnt);
scsi_add_host (shpnt, dev); /* XXX handle failure */
rc = scsi_add_host (shpnt, dev);
if (rc)
goto err_irq;
scsi_scan_host (shpnt); scsi_scan_host (shpnt);
return 0; return 0;
err_irq:
free_irq(irq_level, shpnt);
err_unmap: err_unmap:
dma_unmap_single (&edev->dev, host->ecb_dma_addr, dma_unmap_single (&edev->dev, host->ecb_dma_addr,
sizeof (host->ecb), DMA_BIDIRECTIONAL); sizeof (host->ecb), DMA_BIDIRECTIONAL);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册