[PATCH 16/52] atp870u: Remove ugly gotos #4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Ondrej Zary <linux@xxxxxxxxxxxxxxxxxxxx>
---
 drivers/scsi/atp870u.c |   32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

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 @@ static void tscam(struct Scsi_Host *host)
 		} else {
 			outb(0x00, dev->ioport[0] + 0x1b);
 		}
-wait_rdyok:
-		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;
-		}
+		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 == 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 @@ wait_rdyok:
 	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++) {
-- 
Ondrej Zary

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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux