Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SCSI] SCSI/aha1740: handle SCSI API errors

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>

authored by

Jeff Garzik and committed by
James Bottomley
08157cd0 42252854

+8 -2
+8 -2
drivers/scsi/aha1740.c
··· 586 586 587 587 static int aha1740_probe (struct device *dev) 588 588 { 589 - int slotbase; 589 + int slotbase, rc; 590 590 unsigned int irq_level, irq_type, translation; 591 591 struct Scsi_Host *shpnt; 592 592 struct aha1740_hostdata *host; ··· 641 641 } 642 642 643 643 eisa_set_drvdata (edev, shpnt); 644 - scsi_add_host (shpnt, dev); /* XXX handle failure */ 644 + 645 + rc = scsi_add_host (shpnt, dev); 646 + if (rc) 647 + goto err_irq; 648 + 645 649 scsi_scan_host (shpnt); 646 650 return 0; 647 651 652 + err_irq: 653 + free_irq(irq_level, shpnt); 648 654 err_unmap: 649 655 dma_unmap_single (&edev->dev, host->ecb_dma_addr, 650 656 sizeof (host->ecb), DMA_BIDIRECTIONAL);