spin_lock_irqsave(&aha1542_lock, flags);
while (len--) {
- if (!wait_mask(STATUS(base), DF, DF, 0, timeout))
- goto fail;
+ if (!wait_mask(STATUS(base), DF, DF, 0, timeout)) {
+ spin_unlock_irqrestore(&aha1542_lock, flags);
+ if (timeout == 0)
+ printk(KERN_ERR "aha1542_in failed(%d): ", len + 1);
+ return 1;
+ }
*cmdp++ = inb(DATA(base));
}
spin_unlock_irqrestore(&aha1542_lock, flags);
return 0;
-fail:
- spin_unlock_irqrestore(&aha1542_lock, flags);
- if (timeout == 0)
- printk(KERN_ERR "aha1542_in failed(%d): ", len + 1);
- return 1;
}
static int makecode(unsigned hosterr, unsigned scsierr)
debug = 1;
/* Expect INIT and IDLE, any of the others are bad */
if (!wait_mask(STATUS(bse), STATMASK, INIT | IDLE, STST | DIAGF | INVDCMD | DF | CDF, 0))
- goto fail;
+ return 0;
debug = 2;
/* Shouldn't have generated any interrupts during reset */
if (inb(INTRFLAGS(bse)) & INTRMASK)
- goto fail;
+ return 0;
/* Perform a host adapter inquiry instead so we do not need to set
while (len--) {
if (!wait_mask(STATUS(bse), DF, DF, 0, 0))
- goto fail;
+ return 0;
*cmdp++ = inb(DATA(bse));
}
debug = 8;
/* Reading port should reset DF */
if (inb(STATUS(bse)) & DF)
- goto fail;
+ return 0;
debug = 9;
/* When HACC, command is completed, and we're though testing */
if (!wait_mask(INTRFLAGS(bse), HACC, HACC, 0, 0))
- goto fail;
+ return 0;
/* now initialize adapter */
debug = 10;
debug = 11;
return debug; /* 1 = ok */
-fail:
- return 0; /* 0 = not ok */
}
static int aha1542_restart(struct Scsi_Host *shost)
any2scsi((cmd + 2), isa_virt_to_bus(mb));
aha1542_out(bse, cmd, 5);
if (!wait_mask(INTRFLAGS(bse), INTRMASK, HACC, 0, 0))
- goto fail;
- while (0) {
-fail:
printk(KERN_ERR "aha1542_detect: failed setting up mailboxes\n");
- }
aha1542_intr_reset(bse);
}
aha1542_outb(base_io, CMD_RETCONF);
aha1542_in(base_io, inquiry_result, 3, 0);
if (!wait_mask(INTRFLAGS(base_io), INTRMASK, HACC, 0, 0))
- goto fail;
- while (0) {
-fail:
printk(KERN_ERR "aha1542_detect: query board settings\n");
- }
aha1542_intr_reset(base_io);
switch (inquiry_result[0]) {
case 0x80:
aha1542_outb(base_io, CMD_INQUIRY);
aha1542_in(base_io, inquiry_result, 4, 0);
if (!wait_mask(INTRFLAGS(base_io), INTRMASK, HACC, 0, 0))
- goto fail;
- while (0) {
-fail:
printk(KERN_ERR "aha1542_detect: query card type\n");
- }
aha1542_intr_reset(base_io);
*transl = BIOS_TRANSLATION_6432; /* Default case */
spin_lock_irq(SCpnt->device->host->host_lock);
if (!wait_mask(STATUS(SCpnt->device->host->io_port),
- STATMASK, INIT | IDLE, STST | DIAGF | INVDCMD | DF | CDF, 0))
- goto fail;
+ STATMASK, INIT | IDLE, STST | DIAGF | INVDCMD | DF | CDF, 0)) {
+ spin_unlock_irq(SCpnt->device->host->host_lock);
+ return FAILED;
+ }
/*
* Now try to pick up the pieces. For all pending commands,
spin_unlock_irq(SCpnt->device->host->host_lock);
return SUCCESS;
-
-fail:
- spin_unlock_irq(SCpnt->device->host->host_lock);
- return FAILED;
}
static int aha1542_host_reset(Scsi_Cmnd * SCpnt)
spin_lock_irq(SCpnt->device->host->host_lock);
if (!wait_mask(STATUS(SCpnt->device->host->io_port),
- STATMASK, INIT | IDLE, STST | DIAGF | INVDCMD | DF | CDF, 0))
- goto fail;
-
+ STATMASK, INIT | IDLE, STST | DIAGF | INVDCMD | DF | CDF, 0)) {
+ spin_unlock_irq(SCpnt->device->host->host_lock);
+ return FAILED;
+ }
/*
* We need to do this too before the 1542 can interact with
* us again.
spin_unlock_irq(SCpnt->device->host->host_lock);
return SUCCESS;
-
-fail:
- spin_unlock_irq(SCpnt->device->host->host_lock);
- return FAILED;
}
static int aha1542_biosparam(struct scsi_device *sdev,