Re: [PATCH] scsi/aha1740.c Handle scsi_add_host failure

From: Christoph Hellwig
Date: Fri Jan 13 2006 - 13:04:24 EST


On Tue, Jan 10, 2006 at 05:51:15PM +0530, Ashutosh Naik wrote:
> Add scsi_add_host() failure handling for Adaptec aha1740 driver.
>
> Signed-off-by: Ashutosh Naik <ashutosh.naik@xxxxxxxxx>

> diff -Naurp linux-2.6.15-git5-vanilla/drivers/scsi/aha1740.c linux-2.6.15-git5/drivers/scsi/aha1740.c
> --- linux-2.6.15-git5-vanilla/drivers/scsi/aha1740.c 2006-01-03 08:51:10.000000000 +0530
> +++ linux-2.6.15-git5/drivers/scsi/aha1740.c 2006-01-10 16:22:13.000000000 +0530
> @@ -587,7 +587,7 @@ static struct scsi_host_template aha1740
>
> static int aha1740_probe (struct device *dev)
> {
> - int slotbase;
> + int slotbase, retval;
> unsigned int irq_level, irq_type, translation;
> struct Scsi_Host *shpnt;
> struct aha1740_hostdata *host;
> @@ -642,7 +642,13 @@ static int aha1740_probe (struct device
> }
>
> eisa_set_drvdata (edev, shpnt);
> - scsi_add_host (shpnt, dev); /* XXX handle failure */
> + retval = scsi_add_host (shpnt, dev);
> + if (retval) {
> + printk(KERN_WARNING "aha1740: scsi_add_host failed\n");
> + scsi_host_put (shpnt);
> + return retval;
> + }
> +

this is wrong. you need to add a new err_free_irq label that frees
the allocated irq and then falls through to the existing error handling
code, starting at the err_unmap label.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/