atp870u: Remove ugly gotos #4
Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Reviewed-by: Hannes Reinicke <hare@suse.de>
Acked-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c
index b3d4e9d..68afe11 100644
--- a/drivers/scsi/atp870u.c
+++ b/drivers/scsi/atp870u.c
@@ -970,19 +970,19 @@
} else {
outb(0x00, dev->ioport[0] + 0x1b);
}
-wait_rdyok:
- outb(0x09, dev->ioport[0] + 0x18);
+ do {
+ outb(0x09, dev->ioport[0] + 0x18);
- while ((inb(dev->ioport[0] + 0x1f) & 0x80) == 0x00)
- cpu_relax();
- k = inb(dev->ioport[0] + 0x17);
- if (k != 0x16) {
- if ((k == 0x85) || (k == 0x42)) {
- continue;
- }
- outb(0x41, dev->ioport[0] + 0x10);
- goto wait_rdyok;
- }
+ while ((inb(dev->ioport[0] + 0x1f) & 0x80) == 0x00)
+ cpu_relax();
+ k = inb(dev->ioport[0] + 0x17);
+ if ((k == 0x85) || (k == 0x42))
+ break;
+ if (k != 0x16)
+ outb(0x41, dev->ioport[0] + 0x10);
+ } while (k != 0x16);
+ if ((k == 0x85) || (k == 0x42))
+ continue;
assignid_map |= m;
}
@@ -1003,10 +1003,8 @@
mdelay(128);
val &= 0x00fb; /* after 1ms no msg */
outw(val, dev->ioport[0] + 0x1c);
-wait_nomsg:
- if ((inb(dev->ioport[0] + 0x1c) & 0x04) != 0) {
- goto wait_nomsg;
- }
+ while ((inb(dev->ioport[0] + 0x1c) & 0x04) != 0)
+ ;
outb(1, 0x80);
udelay(100);
for (n = 0; n < 0x30000; n++) {