linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ondrej Zary <linux@rainbow-software.org>
To: linux-scsi@vger.kernel.org
Subject: [PATCH 14/34] atp870u: Remove ugly gotos #2
Date: Sun,  3 May 2015 19:31:30 +0200	[thread overview]
Message-ID: <1430674310-11576-15-git-send-email-linux@rainbow-software.org> (raw)
In-Reply-To: <1430674310-11576-1-git-send-email-linux@rainbow-software.org>

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
---
 drivers/scsi/atp870u.c |   68 +++++++++++++++++++++---------------------------
 1 file changed, 30 insertions(+), 38 deletions(-)

diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c
index 88339e4..83dff58 100644
--- a/drivers/scsi/atp870u.c
+++ b/drivers/scsi/atp870u.c
@@ -617,7 +617,7 @@ static DEF_SCSI_QCMD(atp870u_queuecommand)
  */
 static void send_s870(struct atp_unit *dev,unsigned char c)
 {
-	struct scsi_cmnd *workreq;
+	struct scsi_cmnd *workreq = NULL;
 	unsigned int i;//,k;
 	unsigned char  j, target_id;
 	unsigned char *prd;
@@ -638,50 +638,42 @@ static void send_s870(struct atp_unit *dev,unsigned char c)
 	if ((dev->last_cmd[c] != 0xff) && ((dev->last_cmd[c] & 0x40) != 0)) {
 		dev->last_cmd[c] &= 0x0f;
 		workreq = dev->id[c][dev->last_cmd[c]].curr_req;
-		if (workreq != NULL) {	/* check NULL pointer */
-		   goto cmd_subp;
-		}
-		dev->last_cmd[c] = 0xff;	
-		if (dev->quhd[c] == dev->quend[c]) {
-		   	dev->in_snd[c] = 0;
-		   	return ;
+		if (!workreq) {
+			dev->last_cmd[c] = 0xff;
+			if (dev->quhd[c] == dev->quend[c]) {
+				dev->in_snd[c] = 0;
+				return;
+			}
 		}
 	}
-	if ((dev->last_cmd[c] != 0xff) && (dev->working[c] != 0)) {
-	     	dev->in_snd[c] = 0;
-	     	return ;
-	}
-	dev->working[c]++;
-	j = dev->quhd[c];
-	dev->quhd[c]++;
-	if (dev->quhd[c] >= qcnt) {
-		dev->quhd[c] = 0;
-	}
-	workreq = dev->quereq[c][dev->quhd[c]];
-	if (dev->id[c][scmd_id(workreq)].curr_req == NULL) {
+	if (!workreq) {
+		if ((dev->last_cmd[c] != 0xff) && (dev->working[c] != 0)) {
+			dev->in_snd[c] = 0;
+			return;
+		}
+		dev->working[c]++;
+		j = dev->quhd[c];
+		dev->quhd[c]++;
+		if (dev->quhd[c] >= qcnt)
+			dev->quhd[c] = 0;
+		workreq = dev->quereq[c][dev->quhd[c]];
+		if (dev->id[c][scmd_id(workreq)].curr_req != NULL) {
+			dev->quhd[c] = j;
+			dev->working[c]--;
+			dev->in_snd[c] = 0;
+			return;
+		}
 		dev->id[c][scmd_id(workreq)].curr_req = workreq;
 		dev->last_cmd[c] = scmd_id(workreq);
-		goto cmd_subp;
-	}	
-	dev->quhd[c] = j;
-	dev->working[c]--;
-	dev->in_snd[c] = 0;
-	return;
-cmd_subp:
-	if ((inb(dev->ioport[c] + 0x1f) & 0xb0) != 0) {
-		goto abortsnd;
-	}
-	if (inb(dev->ioport[c] + 0x1c) == 0) {
-		goto oktosend;
 	}
-abortsnd:
+	if ((inb(dev->ioport[c] + 0x1f) & 0xb0) != 0 || inb(dev->ioport[c] + 0x1c) != 0) {
 #ifdef ED_DBGP
-	printk("Abort to Send\n");
+		printk("Abort to Send\n");
 #endif
-	dev->last_cmd[c] |= 0x40;
-	dev->in_snd[c] = 0;
-	return;
-oktosend:
+		dev->last_cmd[c] |= 0x40;
+		dev->in_snd[c] = 0;
+		return;
+	}
 #ifdef ED_DBGP
 	printk("OK to Send\n");
 	scmd_printk(KERN_DEBUG, workreq, "CDB");
-- 
Ondrej Zary


  parent reply	other threads:[~2015-05-03 17:53 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-03 17:31 [RFC PATCH 00/34] atp870u: Remove the first level of crap Ondrej Zary
2015-05-03 17:31 ` [PATCH 01/34] atp870u: Remove workport Ondrej Zary
2015-05-03 17:31 ` [PATCH 02/34] atp870u: Remove tmport1 Ondrej Zary
2015-05-03 17:31 ` [PATCH 03/34] atp870u: Untangle tmport Ondrej Zary
2015-05-03 17:31 ` [PATCH 04/34] atp870u: Untangle tmport #2 Ondrej Zary
2015-05-03 17:31 ` [PATCH 05/34] atp870u: Untangle tmport #3 Ondrej Zary
2015-05-03 17:31 ` [PATCH 06/34] atp870u: Untangle tmport #4 Ondrej Zary
2015-05-03 17:31 ` [PATCH 07/34] atp870u: Untangle tmport #5 Ondrej Zary
2015-05-03 17:31 ` [PATCH 08/34] atp870u: Untangle tmport #6 Ondrej Zary
2015-05-03 17:31 ` [PATCH 09/34] atp870u: Untangle tmport #7 Ondrej Zary
2015-05-03 17:31 ` [PATCH 10/34] atp870u: Untangle tmport #8 Ondrej Zary
2015-05-03 17:31 ` [PATCH 11/34] atp870u: Untangle tmpcip Ondrej Zary
2015-05-03 17:31 ` [PATCH 12/34] atp870u: Untangle tmpcip #2 Ondrej Zary
2015-05-03 17:31 ` [PATCH 13/34] atp870u: Remove ugly gotos Ondrej Zary
2015-05-03 17:31 ` Ondrej Zary [this message]
2015-05-03 17:31 ` [PATCH 15/34] atp870u: Remove ugly gotos #3 Ondrej Zary
2015-05-03 17:31 ` [PATCH 16/34] atp870u: Remove ugly gotos #4 Ondrej Zary
2015-05-03 17:31 ` [PATCH 17/34] atp870u: Remove ugly gotos #5 Ondrej Zary
2015-05-03 17:31 ` [PATCH 18/34] atp870u: Introduce HW access wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 19/34] atp870u: Convert is870() to use wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 20/34] atp870u: Convert is880() " Ondrej Zary
2015-05-03 17:31 ` [PATCH 21/34] atp870u: Convert is885() " Ondrej Zary
2015-05-03 17:31 ` [PATCH 22/34] atp870u: Unify code format in is870(), is880() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 23/34] atp870u: Add channel parameter to is870() and is880() Ondrej Zary
2015-05-03 17:31 ` [PATCH 24/34] atp870u: Move chip-specific lines out of is880() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 25/34] atp870u: Remove is880() Ondrej Zary
2015-05-03 17:31 ` [PATCH 26/34] atp870u: Add wide_chip parameter to is870() and is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 27/34] atp870u: Add remaining 870 support to is885() Ondrej Zary
2015-05-03 17:31 ` [PATCH 28/34] atp870u: Move 870-specific code out of is870() Ondrej Zary
2015-05-03 17:31 ` [PATCH 29/34] atp870u: Remove is870() Ondrej Zary
2015-05-03 17:31 ` [PATCH 30/34] atp870u: Rename is885() to atp_is() Ondrej Zary
2015-05-03 17:31 ` [PATCH 31/34] atp870u: Convert remaining in[bwl] and out[bwl] to wrappers Ondrej Zary
2015-05-03 17:31 ` [PATCH 32/34] atp870u: Replace port 0x80 delay by udelay Ondrej Zary
2015-05-03 17:31 ` [PATCH 33/34] atp870u: Fix incorrect writeb_io access to register 0x3a Ondrej Zary
2015-05-03 17:31 ` [PATCH 34/34] atp870u: Introduce atp_set_host_id Ondrej Zary
2015-05-11  9:06 ` [RFC PATCH 00/34] atp870u: Remove the first level of crap Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1430674310-11576-15-git-send-email-linux@rainbow-software.org \
    --to=linux@rainbow-software.org \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).