]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/a2091.c
SATA Sil: Blacklist system that spins off disks during ACPI power off
[linux-2.6-omap-h63xx.git] / drivers / scsi / a2091.c
index 07d572feceed47d0ab56ae92dec83c3ae71564c3..37dd47136fb1104c55e05478cfe1dcd99bc7c507 100644 (file)
@@ -169,10 +169,8 @@ int __init a2091_detect(struct scsi_host_template *tpnt)
            continue;
 
        instance = scsi_register (tpnt, sizeof (struct WD33C93_hostdata));
-       if (instance == NULL) {
-           release_mem_region(address, 256);
-           continue;
-       }
+       if (instance == NULL)
+           goto release;
        instance->base = ZTWO_VADDR(address);
        instance->irq = IRQ_AMIGA_PORTS;
        instance->unique_id = z->slotaddr;
@@ -183,10 +181,18 @@ int __init a2091_detect(struct scsi_host_template *tpnt)
        HDATA(instance)->fast = 0;
        HDATA(instance)->dma_mode = CTRL_DMA;
        wd33c93_init(instance, regs, dma_setup, dma_stop, WD33C93_FS_8_10);
-       request_irq(IRQ_AMIGA_PORTS, a2091_intr, IRQF_SHARED, "A2091 SCSI",
-                   instance);
+       if (request_irq(IRQ_AMIGA_PORTS, a2091_intr, IRQF_SHARED, "A2091 SCSI",
+                       instance))
+           goto unregister;
        DMA(instance)->CNTR = CNTR_PDMD | CNTR_INTEN;
        num_a2091++;
+       continue;
+
+unregister:
+       scsi_unregister(instance);
+       wd33c93_release();
+release:
+       release_mem_region(address, 256);
     }
 
     return num_a2091;