diff options
Diffstat (limited to 'drivers/scsi/mca_53c9x.c')
-rw-r--r-- | drivers/scsi/mca_53c9x.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/mca_53c9x.c b/drivers/scsi/mca_53c9x.c index 9755f8ee7..6639a3a0a 100644 --- a/drivers/scsi/mca_53c9x.c +++ b/drivers/scsi/mca_53c9x.c @@ -156,6 +156,8 @@ int mca_esp_detect(Scsi_Host_Template *tpnt) "NCR 53c9x SCSI", esp_intr)) { printk("Unable to request IRQ %d.\n", esp->irq); + esp_deallocate(esp); + scsi_unregister(esp->ehost); return 0; } @@ -163,6 +165,8 @@ int mca_esp_detect(Scsi_Host_Template *tpnt) printk("Unable to request DMA channel %d.\n", esp->dma); free_irq(esp->irq, esp_intr); + esp_deallocate(esp); + scsi_unregister(esp->ehost); return 0; } @@ -259,7 +263,7 @@ int mca_esp_release(struct Scsi_Host *host) struct NCR_ESP *esp = (struct NCR_ESP *)host->hostdata; unsigned char tmp_byte; - + esp_deallocate(esp); /* * Tell the 86C01 to stop sending interrupts */ @@ -271,7 +275,7 @@ int mca_esp_release(struct Scsi_Host *host) free_irq(esp->irq, esp_intr); free_dma(esp->dma); - mca_mark_as_unused(esp->eregs->slot); + mca_mark_as_unused(esp->slot); return 0; } |