All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: James.Bottomley@steeleye.com
Cc: linux-scsi@vger.kernel.org
Subject: [PATCH] coding style updates for scsi_lib.c
Date: Thu, 6 Feb 2003 15:31:54 +0100	[thread overview]
Message-ID: <20030206153154.A16630@lst.de> (raw)

I just couldn't see the mess anymore..  Nuke the ifdefs and use sane
variable names.  Some more small nitpicks but no behaviour changes at
all.


--- 1.67/drivers/scsi/scsi_lib.c	Wed Feb  5 18:44:10 2003
+++ edited/drivers/scsi/scsi_lib.c	Thu Feb  6 14:58:07 2003
@@ -41,8 +41,8 @@
  *
  * Purpose:     Insert pre-formed command into request queue.
  *
- * Arguments:   SCpnt   - command that is ready to be queued.
- *              at_head - boolean.  True if we should insert at head
+ * Arguments:   cmd	- command that is ready to be queued.
+ *              at_head	- boolean.  True if we should insert at head
  *                        of queue, false if we should insert at tail.
  *
  * Lock status: Assumed that lock is not held upon entry.
@@ -56,10 +56,10 @@
  *              for now), and then call the queue request function to actually
  *              process it.
  */
-int scsi_insert_special_cmd(Scsi_Cmnd * SCpnt, int at_head)
+int scsi_insert_special_cmd(struct scsi_cmnd *cmd, int at_head)
 {
-	blk_insert_request(SCpnt->device->request_queue, SCpnt->request,
-		       	   at_head, SCpnt);
+	blk_insert_request(cmd->device->request_queue, cmd->request,
+		       	   at_head, cmd);
 	return 0;
 }
 
@@ -68,8 +68,8 @@
  *
  * Purpose:     Insert pre-formed request into request queue.
  *
- * Arguments:   SRpnt   - request that is ready to be queued.
- *              at_head - boolean.  True if we should insert at head
+ * Arguments:   sreq	- request that is ready to be queued.
+ *              at_head	- boolean.  True if we should insert at head
  *                        of queue, false if we should insert at tail.
  *
  * Lock status: Assumed that lock is not held upon entry.
@@ -83,24 +83,24 @@
  *              for now), and then call the queue request function to actually
  *              process it.
  */
-int scsi_insert_special_req(Scsi_Request * SRpnt, int at_head)
+int scsi_insert_special_req(struct scsi_request *sreq, int at_head)
 {
-	/* This is used to insert SRpnt specials.  Because users of
-	 * this function are apt to reuse requests with no modification,
-	 * we have to sanitise the request flags here
-	 */
-	SRpnt->sr_request->flags &= ~REQ_DONTPREP;
-	blk_insert_request(SRpnt->sr_device->request_queue, SRpnt->sr_request,
-		       	   at_head, SRpnt);
+	/*
+	 * Because users of this function are apt to reuse requests with no
+	 * modification, we have to sanitise the request flags here
+	 */
+	sreq->sr_request->flags &= ~REQ_DONTPREP;
+	blk_insert_request(sreq->sr_device->request_queue, sreq->sr_request,
+		       	   at_head, sreq);
 	return 0;
 }
 
 /*
  * Function:    scsi_init_cmd_errh()
  *
- * Purpose:     Initialize SCpnt fields related to error handling.
+ * Purpose:     Initialize cmd fields related to error handling.
  *
- * Arguments:   SCpnt   - command that is ready to be queued.
+ * Arguments:   cmd	- command that is ready to be queued.
  *
  * Returns:     Nothing
  *
@@ -108,21 +108,20 @@
  *              fields related to error handling.   Typically this will
  *              be called once for each command, as required.
  */
-static int scsi_init_cmd_errh(Scsi_Cmnd * SCpnt)
+static int scsi_init_cmd_errh(struct scsi_cmnd *cmd)
 {
-	SCpnt->owner = SCSI_OWNER_MIDLEVEL;
-	SCpnt->reset_chain = NULL;
-	SCpnt->serial_number = 0;
-	SCpnt->serial_number_at_timeout = 0;
-	SCpnt->flags = 0;
-	SCpnt->retries = 0;
-
-	SCpnt->abort_reason = 0;
+	cmd->owner = SCSI_OWNER_MIDLEVEL;
+	cmd->reset_chain = NULL;
+	cmd->serial_number = 0;
+	cmd->serial_number_at_timeout = 0;
+	cmd->flags = 0;
+	cmd->retries = 0;
+	cmd->abort_reason = 0;
 
-	memset((void *) SCpnt->sense_buffer, 0, sizeof SCpnt->sense_buffer);
+	memset(cmd->sense_buffer, 0, sizeof cmd->sense_buffer);
 
-	if (SCpnt->cmd_len == 0)
-		SCpnt->cmd_len = COMMAND_SIZE(SCpnt->cmnd[0]);
+	if (cmd->cmd_len == 0)
+		cmd->cmd_len = COMMAND_SIZE(cmd->cmnd[0]);
 
 	/*
 	 * We need saved copies of a number of fields - this is because
@@ -131,19 +130,16 @@
 	 * we will need to restore these values prior to running the actual
 	 * command.
 	 */
-	SCpnt->old_use_sg = SCpnt->use_sg;
-	SCpnt->old_cmd_len = SCpnt->cmd_len;
-	SCpnt->sc_old_data_direction = SCpnt->sc_data_direction;
-	SCpnt->old_underflow = SCpnt->underflow;
-	memcpy((void *) SCpnt->data_cmnd,
-	       (const void *) SCpnt->cmnd, sizeof(SCpnt->cmnd));
-	SCpnt->buffer = SCpnt->request_buffer;
-	SCpnt->bufflen = SCpnt->request_bufflen;
-
-	SCpnt->reset_chain = NULL;
-
-	SCpnt->internal_timeout = NORMAL_TIMEOUT;
-	SCpnt->abort_reason = 0;
+	cmd->old_use_sg = cmd->use_sg;
+	cmd->old_cmd_len = cmd->cmd_len;
+	cmd->sc_old_data_direction = cmd->sc_data_direction;
+	cmd->old_underflow = cmd->underflow;
+	memcpy(cmd->data_cmnd, cmd->cmnd, sizeof(cmd->cmnd));
+	cmd->buffer = cmd->request_buffer;
+	cmd->bufflen = cmd->request_bufflen;
+	cmd->reset_chain = NULL;
+	cmd->internal_timeout = NORMAL_TIMEOUT;
+	cmd->abort_reason = 0;
 
 	return 1;
 }
@@ -153,23 +149,22 @@
  *
  * Purpose:    Restore the command state for a retry
  *
- * Arguments:  SCpnt   - command to be restored
+ * Arguments:  cmd	- command to be restored
  *
  * Returns:    Nothing
  *
  * Notes:      Immediately prior to retrying a command, we need
  *             to restore certain fields that we saved above.
  */
-void scsi_setup_cmd_retry(Scsi_Cmnd *SCpnt)
+void scsi_setup_cmd_retry(struct scsi_cmnd *cmd)
 {
-	memcpy((void *) SCpnt->cmnd, (void *) SCpnt->data_cmnd,
-		sizeof(SCpnt->data_cmnd));
-	SCpnt->request_buffer = SCpnt->buffer;
-	SCpnt->request_bufflen = SCpnt->bufflen;
-	SCpnt->use_sg = SCpnt->old_use_sg;
-	SCpnt->cmd_len = SCpnt->old_cmd_len;
-	SCpnt->sc_data_direction = SCpnt->sc_old_data_direction;
-	SCpnt->underflow = SCpnt->old_underflow;
+	memcpy(cmd->cmnd, cmd->data_cmnd, sizeof(cmd->data_cmnd));
+	cmd->request_buffer = cmd->buffer;
+	cmd->request_bufflen = cmd->bufflen;
+	cmd->use_sg = cmd->old_use_sg;
+	cmd->cmd_len = cmd->old_cmd_len;
+	cmd->sc_data_direction = cmd->sc_old_data_direction;
+	cmd->underflow = cmd->old_underflow;
 }
 
 /*
@@ -177,7 +172,7 @@
  *
  * Purpose:     Handle post-processing of completed commands.
  *
- * Arguments:   SCpnt   - command that may need to be requeued.
+ * Arguments:   cmd	- command that may need to be requeued.
  *
  * Returns:     Nothing
  *
@@ -187,7 +182,7 @@
  *              that a medium error occurred, and the sectors after
  *              the bad block need to be re-read.
  *
- *              If SCpnt is NULL, it means that the previous command
+ *              If cmd is NULL, it means that the previous command
  *              was completely finished, and we should simply start
  *              a new command, if possible.
  *
@@ -208,17 +203,17 @@
  *		permutations grows as 2**N, and if too many more special cases
  *		get added, we start to get screwed.
  */
-void scsi_queue_next_request(request_queue_t * q, Scsi_Cmnd * SCpnt)
+void scsi_queue_next_request(request_queue_t *q, struct scsi_cmnd *cmd)
 {
-	int all_clear;
+	struct scsi_device *sdev, *sdev2;
+	struct Scsi_Host *shost;
 	unsigned long flags;
-	Scsi_Device *SDpnt, *SDpnt2;
-	struct Scsi_Host *SHpnt;
+	int all_clear;
 
 	ASSERT_LOCK(q->queue_lock, 0);
 
 	spin_lock_irqsave(q->queue_lock, flags);
-	if (SCpnt != NULL) {
+	if (cmd != NULL) {
 
 		/*
 		 * For some reason, we are not done with this request.
@@ -226,16 +221,18 @@
 		 * in which case we need to request the blocks that come after
 		 * the bad sector.
 		 */
-		SCpnt->request->special = (void *) SCpnt;
-		if(blk_rq_tagged(SCpnt->request))
-			blk_queue_end_tag(q, SCpnt->request);
-		/* set REQ_SPECIAL - we have a command
+		cmd->request->special = cmd;
+		if (blk_rq_tagged(cmd->request))
+			blk_queue_end_tag(q, cmd->request);
+
+		/*
+		 * set REQ_SPECIAL - we have a command
 		 * clear REQ_DONTPREP - we assume the sg table has been 
 		 *	nuked so we need to set it up again.
 		 */
-		SCpnt->request->flags |= REQ_SPECIAL;
-		SCpnt->request->flags &= ~REQ_DONTPREP;
-		__elv_add_request(q, SCpnt->request, 0, 0);
+		cmd->request->flags |= REQ_SPECIAL;
+		cmd->request->flags &= ~REQ_DONTPREP;
+		__elv_add_request(q, cmd->request, 0, 0);
 	}
 
 	/*
@@ -243,8 +240,8 @@
 	 */
 	__blk_run_queue(q);
 
-	SDpnt = (Scsi_Device *) q->queuedata;
-	SHpnt = SDpnt->host;
+	sdev = q->queuedata;
+	shost = sdev->host;
 
 	/*
 	 * If this is a single-lun device, and we are currently finished
@@ -253,15 +250,15 @@
 	 * with special case code, then spin off separate versions and
 	 * use function pointers to pick the right one.
 	 */
-	if (SDpnt->single_lun && blk_queue_empty(q) && SDpnt->device_busy ==0 &&
-			!SHpnt->host_blocked && !SHpnt->host_self_blocked &&
-			!((SHpnt->can_queue > 0) && (SHpnt->host_busy >=
-				       		     SHpnt->can_queue))) {
-		list_for_each_entry(SDpnt2, &SDpnt->same_target_siblings,
+	if (sdev->single_lun && blk_queue_empty(q) && sdev->device_busy ==0 &&
+			!shost->host_blocked && !shost->host_self_blocked &&
+			!((shost->can_queue > 0) && (shost->host_busy >=
+				       		     shost->can_queue))) {
+		list_for_each_entry(sdev2, &sdev->same_target_siblings,
 			       same_target_siblings) {
-			if (!SDpnt2->device_blocked &&
-			    !blk_queue_empty(SDpnt2->request_queue)) {
-				__blk_run_queue(SDpnt2->request_queue);
+			if (!sdev2->device_blocked &&
+			    !blk_queue_empty(sdev2->request_queue)) {
+				__blk_run_queue(sdev2->request_queue);
 				break;
 			}
 		}
@@ -276,22 +273,21 @@
 	 * other device might have become starved along the way.
 	 */
 	all_clear = 1;
-	if (SHpnt->some_device_starved) {
-		list_for_each_entry(SDpnt, &SHpnt->my_devices, siblings) {
-			if ((SHpnt->can_queue > 0 && (SHpnt->host_busy >= SHpnt->can_queue))
-			    || (SHpnt->host_blocked) 
-			    || (SHpnt->host_self_blocked)) {
+	if (shost->some_device_starved) {
+		list_for_each_entry(sdev, &shost->my_devices, siblings) {
+			if (shost->can_queue > 0 &&
+			    shost->host_busy >= shost->can_queue)
 				break;
-			}
-			if (SDpnt->device_blocked || !SDpnt->starved) {
+			if (shost->host_blocked || shost->host_self_blocked)
+				break;
+			if (sdev->device_blocked || !sdev->starved)
 				continue;
-			}
-			__blk_run_queue(SDpnt->request_queue);
+			__blk_run_queue(sdev->request_queue);
 			all_clear = 0;
 		}
-		if (SDpnt == NULL && all_clear) {
-			SHpnt->some_device_starved = 0;
-		}
+
+		if (sdev == NULL && all_clear)
+			shost->some_device_starved = 0;
 	}
 	spin_unlock_irqrestore(q->queue_lock, flags);
 }
@@ -302,7 +298,7 @@
  * Purpose:     Post-processing of completed commands called from interrupt
  *              handler or a bottom-half handler.
  *
- * Arguments:   SCpnt    - command that is complete.
+ * Arguments:   cmd	 - command that is complete.
  *              uptodate - 1 if I/O indicates success, 0 for I/O error.
  *              sectors  - number of sectors we want to mark.
  *		requeue  - indicates whether we should requeue leftovers.
@@ -319,13 +315,11 @@
  *		We are guaranteeing that the request queue will be goosed
  *		at some point during this call.
  */
-static Scsi_Cmnd *scsi_end_request(Scsi_Cmnd * SCpnt, 
-				     int uptodate, 
-				     int sectors,
-				     int requeue)
+static struct scsi_cmnd *scsi_end_request(struct scsi_cmnd *cmd, int uptodate,
+					  int sectors, int requeue)
 {
-	request_queue_t *q = SCpnt->device->request_queue;
-	struct request *req = SCpnt->request;
+	request_queue_t *q = cmd->device->request_queue;
+	struct request *req = cmd->request;
 	unsigned long flags;
 
 	ASSERT_LOCK(q->queue_lock, 0);
@@ -335,15 +329,14 @@
 	 * to queue the remainder of them.
 	 */
 	if (end_that_request_first(req, uptodate, sectors)) {
-		if (!requeue)
-			return SCpnt;
-
-		/*
-		 * Bleah.  Leftovers again.  Stick the leftovers in
-		 * the front of the queue, and goose the queue again.
-		 */
-		scsi_queue_next_request(q, SCpnt);
-		return SCpnt;
+		if (requeue) {
+			/*
+			 * Bleah.  Leftovers again.  Stick the leftovers in
+			 * the front of the queue, and goose the queue again.
+			 */
+			scsi_queue_next_request(q, cmd);
+		}
+		return cmd;
 	}
 
 	add_disk_randomness(req->rq_disk);
@@ -358,39 +351,39 @@
 	 * This will goose the queue request function at the end, so we don't
 	 * need to worry about launching another command.
 	 */
-	scsi_put_command(SCpnt);
+	scsi_put_command(cmd);
 	scsi_queue_next_request(q, NULL);
 	return NULL;
 }
 
-static struct scatterlist *scsi_alloc_sgtable(Scsi_Cmnd *SCpnt, int gfp_mask)
+static struct scatterlist *scsi_alloc_sgtable(struct scsi_cmnd *cmd, int gfp_mask)
 {
 	struct scsi_host_sg_pool *sgp;
 	struct scatterlist *sgl;
 
-	BUG_ON(!SCpnt->use_sg);
+	BUG_ON(!cmd->use_sg);
 
-	switch (SCpnt->use_sg) {
+	switch (cmd->use_sg) {
 	case 1 ... 8:
-		SCpnt->sglist_len = 0;
+		cmd->sglist_len = 0;
 		break;
 	case 9 ... 16:
-		SCpnt->sglist_len = 1;
+		cmd->sglist_len = 1;
 		break;
 	case 17 ... 32:
-		SCpnt->sglist_len = 2;
+		cmd->sglist_len = 2;
 		break;
 	case 33 ... 64:
-		SCpnt->sglist_len = 3;
+		cmd->sglist_len = 3;
 		break;
 	case 65 ... MAX_PHYS_SEGMENTS:
-		SCpnt->sglist_len = 4;
+		cmd->sglist_len = 4;
 		break;
 	default:
 		return NULL;
 	}
 
-	sgp = scsi_sg_pools + SCpnt->sglist_len;
+	sgp = scsi_sg_pools + cmd->sglist_len;
 	sgl = mempool_alloc(sgp->pool, gfp_mask);
 	if (sgl)
 		memset(sgl, 0, sgp->size);
@@ -407,13 +400,12 @@
 	mempool_free(sgl, sgp->pool);
 }
 
-
 /*
  * Function:    scsi_release_buffers()
  *
  * Purpose:     Completion processing for block device I/O requests.
  *
- * Arguments:   SCpnt   - command that we are bailing.
+ * Arguments:   cmd	- command that we are bailing.
  *
  * Lock status: Assumed that no lock is held upon entry.
  *
@@ -425,28 +417,28 @@
  *		the scatter-gather table, and potentially any bounce
  *		buffers.
  */
-static void scsi_release_buffers(Scsi_Cmnd * SCpnt)
+static void scsi_release_buffers(struct scsi_cmnd *cmd)
 {
-	struct request *req = SCpnt->request;
+	struct request *req = cmd->request;
 
-	ASSERT_LOCK(SCpnt->device->host->host_lock, 0);
+	ASSERT_LOCK(cmd->device->host->host_lock, 0);
 
 	/*
 	 * Free up any indirection buffers we allocated for DMA purposes. 
 	 */
-	if (SCpnt->use_sg)
-		scsi_free_sgtable(SCpnt->request_buffer, SCpnt->sglist_len);
-	else if (SCpnt->request_buffer != req->buffer)
-		kfree(SCpnt->request_buffer);
+	if (cmd->use_sg)
+		scsi_free_sgtable(cmd->request_buffer, cmd->sglist_len);
+	else if (cmd->request_buffer != req->buffer)
+		kfree(cmd->request_buffer);
 
 	/*
 	 * Zero these out.  They now point to freed memory, and it is
 	 * dangerous to hang onto the pointers.
 	 */
-	SCpnt->buffer  = NULL;
-	SCpnt->bufflen = 0;
-	SCpnt->request_buffer = NULL;
-	SCpnt->request_bufflen = 0;
+	cmd->buffer  = NULL;
+	cmd->bufflen = 0;
+	cmd->request_buffer = NULL;
+	cmd->request_bufflen = 0;
 }
 
 /*
@@ -477,7 +469,7 @@
  *
  * Purpose:     Completion processing for block device I/O requests.
  *
- * Arguments:   SCpnt   - command that is finished.
+ * Arguments:   cmd   - command that is finished.
  *
  * Lock status: Assumed that no lock is held upon entry.
  *
@@ -489,13 +481,13 @@
  *              (the normal case for most drivers), we don't need
  *              the logic to deal with cleaning up afterwards.
  */
-void scsi_io_completion(Scsi_Cmnd * SCpnt, int good_sectors,
+void scsi_io_completion(struct scsi_cmnd *cmd, int good_sectors,
 			int block_sectors)
 {
-	int result = SCpnt->result;
-	int this_count = SCpnt->bufflen >> 9;
-	request_queue_t *q = SCpnt->device->request_queue;
-	struct request *req = SCpnt->request;
+	int result = cmd->result;
+	int this_count = cmd->bufflen >> 9;
+	request_queue_t *q = cmd->device->request_queue;
+	struct request *req = cmd->request;
 	int clear_errors = 1;
 
 	/*
@@ -518,44 +510,43 @@
 	 * For the case of a READ, we need to copy the data out of the
 	 * bounce buffer and into the real buffer.
 	 */
-	if (SCpnt->use_sg)
-		scsi_free_sgtable(SCpnt->buffer, SCpnt->sglist_len);
-	else if (SCpnt->buffer != req->buffer) {
+	if (cmd->use_sg)
+		scsi_free_sgtable(cmd->buffer, cmd->sglist_len);
+	else if (cmd->buffer != req->buffer) {
 		if (rq_data_dir(req) == READ) {
 			unsigned long flags;
 			char *to = bio_kmap_irq(req->bio, &flags);
-			memcpy(to, SCpnt->buffer, SCpnt->bufflen);
+			memcpy(to, cmd->buffer, cmd->bufflen);
 			bio_kunmap_irq(to, &flags);
 		}
-		kfree(SCpnt->buffer);
+		kfree(cmd->buffer);
 	}
 
 	if (blk_pc_request(req)) { /* SG_IO ioctl from block level */
 		req->errors = (driver_byte(result) & DRIVER_SENSE) ?
 			      (CHECK_CONDITION << 1) : (result & 0xff);
-		if (!result) 
-			req->data_len -= SCpnt->bufflen;
-		else {
+		if (result) {
 			clear_errors = 0;
-			if (SCpnt->sense_buffer[0] & 0x70) {
-				int len = 8 + SCpnt->sense_buffer[7];
+			if (cmd->sense_buffer[0] & 0x70) {
+				int len = 8 + cmd->sense_buffer[7];
 
 				if (len > SCSI_SENSE_BUFFERSIZE)
 					len = SCSI_SENSE_BUFFERSIZE;
-				memcpy(req->sense, SCpnt->sense_buffer,  len);
+				memcpy(req->sense, cmd->sense_buffer,  len);
 				req->sense_len = len;
 			}
-		}
+		} else
+			req->data_len -= cmd->bufflen;
 	}
 
 	/*
 	 * Zero these out.  They now point to freed memory, and it is
 	 * dangerous to hang onto the pointers.
 	 */
-	SCpnt->buffer  = NULL;
-	SCpnt->bufflen = 0;
-	SCpnt->request_buffer = NULL;
-	SCpnt->request_bufflen = 0;
+	cmd->buffer  = NULL;
+	cmd->bufflen = 0;
+	cmd->request_buffer = NULL;
+	cmd->request_bufflen = 0;
 
 	/*
 	 * Next deal with any sectors which we were able to correctly
@@ -564,7 +555,7 @@
 	if (good_sectors >= 0) {
 		SCSI_LOG_HLCOMPLETE(1, printk("%ld sectors total, %d sectors done.\n",
 					      req->nr_sectors, good_sectors));
-		SCSI_LOG_HLCOMPLETE(1, printk("use_sg is %d\n ", SCpnt->use_sg));
+		SCSI_LOG_HLCOMPLETE(1, printk("use_sg is %d\n ", cmd->use_sg));
 
 		if (clear_errors)
 			req->errors = 0;
@@ -579,13 +570,13 @@
 		 * requeueing right here - we will requeue down below
 		 * when we handle the bad sectors.
 		 */
-		SCpnt = scsi_end_request(SCpnt, 1, good_sectors, result == 0);
+		cmd = scsi_end_request(cmd, 1, good_sectors, result == 0);
 
 		/*
 		 * If the command completed without error, then either finish off the
 		 * rest of the command, or start a new one.
 		 */
-		if (result == 0 || SCpnt == NULL ) {
+		if (result == 0 || cmd == NULL ) {
 			return;
 		}
 	}
@@ -601,28 +592,28 @@
 			 * Not yet implemented.  A read will fail after being remapped,
 			 * a write will call the strategy routine again.
 			 */
-			if (SCpnt->device->remap) {
+			if (cmd->device->remap) {
 				result = 0;
 			}
 #endif
 		}
-		if ((SCpnt->sense_buffer[0] & 0x7f) == 0x70) {
+		if ((cmd->sense_buffer[0] & 0x7f) == 0x70) {
 			/*
 			 * If the device is in the process of becoming ready,
 			 * retry.
 			 */
-			if (SCpnt->sense_buffer[12] == 0x04 &&
-			    SCpnt->sense_buffer[13] == 0x01) {
-				scsi_queue_next_request(q, SCpnt);
+			if (cmd->sense_buffer[12] == 0x04 &&
+			    cmd->sense_buffer[13] == 0x01) {
+				scsi_queue_next_request(q, cmd);
 				return;
 			}
-			if ((SCpnt->sense_buffer[2] & 0xf) == UNIT_ATTENTION) {
-				if (SCpnt->device->removable) {
+			if ((cmd->sense_buffer[2] & 0xf) == UNIT_ATTENTION) {
+				if (cmd->device->removable) {
 					/* detected disc change.  set a bit 
 					 * and quietly refuse further access.
 		 			 */
-					SCpnt->device->changed = 1;
-					SCpnt = scsi_end_request(SCpnt, 0,
+					cmd->device->changed = 1;
+					cmd = scsi_end_request(cmd, 0,
 							this_count, 1);
 					return;
 				} else {
@@ -632,7 +623,7 @@
 				 	* media change, so we just retry the
 				 	* request and see what happens.  
 				 	*/
-					scsi_queue_next_request(q, SCpnt);
+					scsi_queue_next_request(q, cmd);
 					return;
 				}
 			}
@@ -644,35 +635,35 @@
 		 * past the end of the disk.
 		 */
 
-		switch (SCpnt->sense_buffer[2]) {
+		switch (cmd->sense_buffer[2]) {
 		case ILLEGAL_REQUEST:
-			if (SCpnt->device->ten) {
-				SCpnt->device->ten = 0;
+			if (cmd->device->ten) {
+				cmd->device->ten = 0;
 				/*
 				 * This will cause a retry with a 6-byte
 				 * command.
 				 */
-				scsi_queue_next_request(q, SCpnt);
+				scsi_queue_next_request(q, cmd);
 				result = 0;
 			} else {
-				SCpnt = scsi_end_request(SCpnt, 0, this_count, 1);
+				cmd = scsi_end_request(cmd, 0, this_count, 1);
 				return;
 			}
 			break;
 		case NOT_READY:
 			printk(KERN_INFO "Device %s not ready.\n",
 			       req->rq_disk ? req->rq_disk->disk_name : "");
-			SCpnt = scsi_end_request(SCpnt, 0, this_count, 1);
+			cmd = scsi_end_request(cmd, 0, this_count, 1);
 			return;
 			break;
 		case MEDIUM_ERROR:
 		case VOLUME_OVERFLOW:
 			printk("scsi%d: ERROR on channel %d, id %d, lun %d, CDB: ",
-			       SCpnt->device->host->host_no, (int) SCpnt->device->channel,
-			       (int) SCpnt->device->id, (int) SCpnt->device->lun);
-			print_command(SCpnt->data_cmnd);
-			print_sense("sd", SCpnt);
-			SCpnt = scsi_end_request(SCpnt, 0, block_sectors, 1);
+			       cmd->device->host->host_no, (int) cmd->device->channel,
+			       (int) cmd->device->id, (int) cmd->device->lun);
+			print_command(cmd->data_cmnd);
+			print_sense("sd", cmd);
+			cmd = scsi_end_request(cmd, 0, block_sectors, 1);
 			return;
 		default:
 			break;
@@ -684,28 +675,28 @@
 		 * recovery reasons.  Just retry the request
 		 * and see what happens.  
 		 */
-		scsi_queue_next_request(q, SCpnt);
+		scsi_queue_next_request(q, cmd);
 		return;
 	}
 	if (result) {
-		struct Scsi_Device_Template *STpnt;
+		struct Scsi_Device_Template *sdt;
 
-		STpnt = scsi_get_request_dev(SCpnt->request);
+		sdt = scsi_get_request_dev(cmd->request);
 		printk("SCSI %s error : host %d channel %d id %d lun %d return code = %x\n",
-		       (STpnt ? STpnt->name : "device"),
-		       SCpnt->device->host->host_no,
-		       SCpnt->device->channel,
-		       SCpnt->device->id,
-		       SCpnt->device->lun, result);
+		       (sdt ? sdt->name : "device"),
+		       cmd->device->host->host_no,
+		       cmd->device->channel,
+		       cmd->device->id,
+		       cmd->device->lun, result);
 
 		if (driver_byte(result) & DRIVER_SENSE)
-			print_sense("sd", SCpnt);
+			print_sense("sd", cmd);
 		/*
 		 * Mark a single buffer as not uptodate.  Queue the remainder.
 		 * We sometimes get this cruft in the event that a medium error
 		 * isn't properly reported.
 		 */
-		SCpnt = scsi_end_request(SCpnt, 0, req->current_nr_sectors, 1);
+		cmd = scsi_end_request(cmd, 0, req->current_nr_sectors, 1);
 		return;
 	}
 }
@@ -715,26 +706,26 @@
  *
  * Purpose:     SCSI I/O initialize function.
  *
- * Arguments:   SCpnt   - Command descriptor we wish to initialize
+ * Arguments:   cmd   - Command descriptor we wish to initialize
  *
  * Returns:     0 on success
  *		BLKPREP_DEFER if the failure is retryable
  *		BLKPREP_KILL if the failure is fatal
  */
-static int scsi_init_io(Scsi_Cmnd *SCpnt)
+static int scsi_init_io(struct scsi_cmnd *cmd)
 {
-	struct request     *req = SCpnt->request;
+	struct request     *req = cmd->request;
 	struct scatterlist *sgpnt;
-	int count, ret = 0;
+	int		   count;
 
 	/*
 	 * if this is a rq->data based REQ_BLOCK_PC, setup for a non-sg xfer
 	 */
 	if ((req->flags & REQ_BLOCK_PC) && !req->bio) {
-		SCpnt->request_bufflen = req->data_len;
-		SCpnt->request_buffer = req->data;
+		cmd->request_bufflen = req->data_len;
+		cmd->request_buffer = req->data;
 		req->buffer = req->data;
-		SCpnt->use_sg = 0;
+		cmd->use_sg = 0;
 		return 0;
 	}
 
@@ -743,48 +734,45 @@
 	 * but now we do (it makes highmem I/O easier to support without
 	 * kmapping pages)
 	 */
-	SCpnt->use_sg = req->nr_phys_segments;
+	cmd->use_sg = req->nr_phys_segments;
 
 	/*
 	 * if sg table allocation fails, requeue request later.
 	 */
-	sgpnt = scsi_alloc_sgtable(SCpnt, GFP_ATOMIC);
+	sgpnt = scsi_alloc_sgtable(cmd, GFP_ATOMIC);
 	if (unlikely(!sgpnt)) {
 		req->flags |= REQ_SPECIAL;
-		ret = BLKPREP_DEFER;
-		goto out;
+		return BLKPREP_DEFER;
 	}
 
-	SCpnt->request_buffer = (char *) sgpnt;
-	SCpnt->request_bufflen = req->nr_sectors << 9;
+	cmd->request_buffer = (char *) sgpnt;
+	cmd->request_bufflen = req->nr_sectors << 9;
 	if (blk_pc_request(req))
-		SCpnt->request_bufflen = req->data_len;
+		cmd->request_bufflen = req->data_len;
 	req->buffer = NULL;
 
 	/* 
 	 * Next, walk the list, and fill in the addresses and sizes of
 	 * each segment.
 	 */
-	count = blk_rq_map_sg(req->q, req, SCpnt->request_buffer);
+	count = blk_rq_map_sg(req->q, req, cmd->request_buffer);
 
 	/*
 	 * mapped well, send it off
 	 */
-	if (count <= SCpnt->use_sg) {
-		SCpnt->use_sg = count;
+	if (likely(count <= cmd->use_sg)) {
+		cmd->use_sg = count;
 		return 0;
 	}
 
 	printk(KERN_ERR "Incorrect number of segments after building list\n");
-	printk(KERN_ERR "counted %d, received %d\n", count, SCpnt->use_sg);
+	printk(KERN_ERR "counted %d, received %d\n", count, cmd->use_sg);
 	printk(KERN_ERR "req nr_sec %lu, cur_nr_sec %u\n", req->nr_sectors,
 			req->current_nr_sectors);
 
 	/* release the command and kill it */
-	scsi_put_command(SCpnt);
-	ret = BLKPREP_KILL;
-out:
-	return ret;
+	scsi_put_command(cmd);
+	return BLKPREP_KILL;
 }
 
 /*
@@ -805,60 +793,53 @@
 
 int scsi_prep_fn(struct request_queue *q, struct request *req)
 {
-	struct Scsi_Device_Template *STpnt;
-	Scsi_Cmnd *SCpnt;
-	Scsi_Device *SDpnt;
-
-	SDpnt = (Scsi_Device *) q->queuedata;
-	BUG_ON(!SDpnt);
+	struct Scsi_Device_Template *sdt;
+	struct scsi_device *sdev = q->queuedata;
+	struct scsi_cmnd *cmd;
 
 	/*
 	 * Find the actual device driver associated with this command.
 	 * The SPECIAL requests are things like character device or
 	 * ioctls, which did not originate from ll_rw_blk.  Note that
-	 * the special field is also used to indicate the SCpnt for
+	 * the special field is also used to indicate the cmd for
 	 * the remainder of a partially fulfilled request that can 
 	 * come up when there is a medium error.  We have to treat
 	 * these two cases differently.  We differentiate by looking
 	 * at request->cmd, as this tells us the real story.
 	 */
 	if (req->flags & REQ_SPECIAL) {
-		Scsi_Request *SRpnt;
+		struct scsi_request *sreq = req->special;
 
-		STpnt = NULL;
-		SCpnt = (Scsi_Cmnd *) req->special;
-		SRpnt = (Scsi_Request *) req->special;
-		
-		if (SRpnt->sr_magic == SCSI_REQ_MAGIC) {
-			SCpnt = scsi_get_command(SRpnt->sr_device, GFP_ATOMIC);
-			if (!SCpnt)
+		if (sreq->sr_magic == SCSI_REQ_MAGIC) {
+			cmd = scsi_get_command(sreq->sr_device, GFP_ATOMIC);
+			if (unlikely(!cmd))
 				return BLKPREP_DEFER;
-			scsi_init_cmd_from_req(SCpnt, SRpnt);
-		}
-		
+			scsi_init_cmd_from_req(cmd, sreq);
+		} else
+			cmd = req->special;
 	} else if (req->flags & (REQ_CMD | REQ_BLOCK_PC)) {
 		/*
 		 * Now try and find a command block that we can use.
 		 */
 		if (!req->special) {
-			SCpnt = scsi_get_command(SDpnt, GFP_ATOMIC);
-			if (unlikely(!SCpnt))
+			cmd = scsi_get_command(sdev, GFP_ATOMIC);
+			if (unlikely(!cmd))
 				return BLKPREP_DEFER;
 		} else
-			SCpnt = req->special;
+			cmd = req->special;
 		
 		/* pull a tag out of the request if we have one */
-		SCpnt->tag = req->tag;
+		cmd->tag = req->tag;
 	} else {
 		blk_dump_rq_flags(req, "SCSI bad req");
 		return BLKPREP_KILL;
 	}
 	
 	/* note the overloading of req->special.  When the tag
-	 * is active it always means SCpnt.  If the tag goes
+	 * is active it always means cmd.  If the tag goes
 	 * back for re-queueing, it may be reset */
-	req->special = SCpnt;
-	SCpnt->request = req;
+	req->special = cmd;
+	cmd->request = req;
 	
 	/*
 	 * FIXME: drop the lock here because the functions below
@@ -867,7 +848,6 @@
 	 * lock.  We hope REQ_STARTED prevents anything untoward from
 	 * happening now.
 	 */
-
 	if (req->flags & (REQ_CMD | REQ_BLOCK_PC)) {
 		int ret;
 
@@ -883,27 +863,30 @@
 		 * some kinds of consistency checking may cause the	
 		 * request to be rejected immediately.
 		 */
-		STpnt = scsi_get_request_dev(req);
-		BUG_ON(!STpnt);
+		sdt = scsi_get_request_dev(req);
+		BUG_ON(!sdt);
 
 		/* 
 		 * This sets up the scatter-gather table (allocating if
 		 * required).
 		 */
-		if ((ret = scsi_init_io(SCpnt)))
-			/* BLKPREP_KILL return also releases the command */
+		ret = scsi_init_io(cmd);
+		if (ret)	/* BLKPREP_KILL return also releases the command */
 			return ret;
 		
 		/*
 		 * Initialize the actual SCSI command for this request.
 		 */
-		if (!STpnt->init_command(SCpnt)) {
-			scsi_release_buffers(SCpnt);
-			scsi_put_command(SCpnt);
+		if (unlikely(!sdt->init_command(cmd))) {
+			scsi_release_buffers(cmd);
+			scsi_put_command(cmd);
 			return BLKPREP_KILL;
 		}
 	}
-	/* The request is now prepped, no need to come back here */
+
+	/*
+	 * The request is now prepped, no need to come back here
+	 */
 	req->flags |= REQ_DONTPREP;
 	return BLKPREP_OK;
 }
@@ -911,48 +894,34 @@
 /*
  * Function:    scsi_request_fn()
  *
- * Purpose:     Generic version of request function for SCSI hosts.
+ * Purpose:     Main strategy routine for SCSI.
  *
  * Arguments:   q       - Pointer to actual queue.
  *
  * Returns:     Nothing
  *
  * Lock status: IO request lock assumed to be held when called.
- *
- * Notes:       The theory is that this function is something which individual
- *              drivers could also supply if they wished to.   The problem
- *              is that we have 30 some odd low-level drivers in the kernel
- *              tree already, and it would be most difficult to retrofit
- *              this crap into all of them.   Thus this function has the job
- *              of acting as a generic queue manager for all of those existing
- *              drivers.
  */
-void scsi_request_fn(request_queue_t * q)
+void scsi_request_fn(request_queue_t *q)
 {
+	struct scsi_device *sdev = q->queuedata;
+	struct Scsi_Host *shost = sdev->host;
+	struct scsi_cmnd *cmd;
 	struct request *req;
-	Scsi_Cmnd *SCpnt;
-	Scsi_Device *SDpnt;
-	struct Scsi_Host *SHpnt;
 
 	ASSERT_LOCK(q->queue_lock, 1);
 
-	SDpnt = (Scsi_Device *) q->queuedata;
-	if (!SDpnt) {
-		panic("Missing device");
-	}
-	SHpnt = SDpnt->host;
-
 	/*
 	 * To start with, we keep looping until the queue is empty, or until
 	 * the host is no longer able to accept any more requests.
 	 */
-	while (1 == 1) {
+	for (;;) {
 		/*
 		 * Check this again - each time we loop through we will have
 		 * released the lock and grabbed it again, so each time
 		 * we need to check to see if the queue is plugged or not.
 		 */
-		if (SHpnt->in_recovery || blk_queue_plugged(q))
+		if (shost->in_recovery || blk_queue_plugged(q))
 			return;
 
 		/*
@@ -963,39 +932,43 @@
 		 */
 		req = elv_next_request(q);
 
-		if (SDpnt->device_busy >= SDpnt->queue_depth)
+		if (sdev->device_busy >= sdev->queue_depth)
 			break;
 
-		if (SDpnt->single_lun && check_all_luns(SDpnt))
+		if (sdev->single_lun && check_all_luns(sdev))
 			break;
 
-		if(SHpnt->host_busy == 0 && SHpnt->host_blocked) {
+		if (shost->host_busy == 0 && shost->host_blocked) {
 			/* unblock after host_blocked iterates to zero */
-			if(--SHpnt->host_blocked == 0) {
-				SCSI_LOG_MLQUEUE(3, printk("scsi%d unblocking host at zero depth\n", SHpnt->host_no));
+			if (--shost->host_blocked == 0) {
+				SCSI_LOG_MLQUEUE(3,
+					printk("scsi%d unblocking host at zero depth\n",
+						shost->host_no));
 			} else {
 				blk_plug_device(q);
 				break;
 			}
 		}
-		if(SDpnt->device_busy == 0 && SDpnt->device_blocked) {
+
+		if (sdev->device_busy == 0 && sdev->device_blocked) {
 			/* unblock after device_blocked iterates to zero */
-			if(--SDpnt->device_blocked == 0) {
-				SCSI_LOG_MLQUEUE(3, printk("scsi%d (%d:%d) unblocking device at zero depth\n", SHpnt->host_no, SDpnt->id, SDpnt->lun));
+			if (--sdev->device_blocked == 0) {
+				SCSI_LOG_MLQUEUE(3,
+					printk("scsi%d (%d:%d) unblocking device at zero depth\n",
+						shost->host_no, sdev->id, sdev->lun));
 			} else {
 				blk_plug_device(q);
 				break;
 			}
 		}
+
 		/*
 		 * If the device cannot accept another request, then quit.
 		 */
-		if (SDpnt->device_blocked) {
+		if (sdev->device_blocked)
 			break;
-		}
-		if ((SHpnt->can_queue > 0 && (SHpnt->host_busy >= SHpnt->can_queue))
-		    || (SHpnt->host_blocked) 
-		    || (SHpnt->host_self_blocked)) {
+		if ((shost->can_queue > 0 && shost->host_busy >= shost->can_queue) ||
+		    shost->host_blocked || shost->host_self_blocked) {
 			/*
 			 * If we are unable to process any commands at all for
 			 * this device, then we consider it to be starved.
@@ -1004,14 +977,13 @@
 			 * little help getting it started again
 			 * once the host isn't quite so busy.
 			 */
-			if (SDpnt->device_busy == 0) {
-				SDpnt->starved = 1;
-				SHpnt->some_device_starved = 1;
+			if (sdev->device_busy == 0) {
+				sdev->starved = 1;
+				shost->some_device_starved = 1;
 			}
 			break;
-		} else {
-			SDpnt->starved = 0;
-		}
+		} else
+			sdev->starved = 0;
 
 		/*
 		 * If we couldn't find a request that could be queued, then we
@@ -1020,21 +992,22 @@
 		if (blk_queue_empty(q))
 			break;
 
-		if(!req) {
+		if (!req) {
 			/* If the device is busy, a returning I/O
 			 * will restart the queue.  Otherwise, we have
 			 * to plug the queue */
-			if(SDpnt->device_busy == 0)
+			if(sdev->device_busy == 0)
 				blk_plug_device(q);
 			break;
 		}
 
-		SCpnt = (struct scsi_cmnd *)req->special;
+		cmd = req->special;
 
-		/* Should be impossible for a correctly prepared request
+		/*
+		 * Should be impossible for a correctly prepared request
 		 * please mail the stack trace to linux-scsi@vger.kernel.org
 		 */
-		BUG_ON(!SCpnt);
+		BUG_ON(!cmd);
 
 		/*
 		 * Finally, before we release the lock, we copy the
@@ -1044,27 +1017,27 @@
 		 * reason to search the list, because all of the
 		 * commands in this queue are for the same device.
 		 */
-		if(!(blk_queue_tagged(q) && (blk_queue_start_tag(q, req) == 0)))
+		if (!(blk_queue_tagged(q) && (blk_queue_start_tag(q, req) == 0)))
 			blkdev_dequeue_request(req);
 	
 		/*
 		 * Now bump the usage count for both the host and the
 		 * device.
 		 */
-		SHpnt->host_busy++;
-		SDpnt->device_busy++;
+		shost->host_busy++;
+		sdev->device_busy++;
 		spin_unlock_irq(q->queue_lock);
 
 		/*
 		 * Finally, initialize any error handling parameters, and set up
 		 * the timers for timeouts.
 		 */
-		scsi_init_cmd_errh(SCpnt);
+		scsi_init_cmd_errh(cmd);
 
 		/*
 		 * Dispatch the command to the low-level driver.
 		 */
-		scsi_dispatch_cmd(SCpnt);
+		scsi_dispatch_cmd(cmd);
 
 		/*
 		 * Now we need to grab the lock again.  We are about to mess
@@ -1080,7 +1053,7 @@
  * Purpose:     Utility function used by low-level drivers to prevent further
  *		commands from being queued to the device.
  *
- * Arguments:   SHpnt       - Host in question
+ * Arguments:   shost       - Host in question
  *
  * Returns:     Nothing
  *
@@ -1090,9 +1063,9 @@
  *		get unblocked other than the low-level driver calling
  *		scsi_unblock_requests().
  */
-void scsi_block_requests(struct Scsi_Host * SHpnt)
+void scsi_block_requests(struct Scsi_Host *shost)
 {
-	SHpnt->host_self_blocked = 1;
+	shost->host_self_blocked = 1;
 }
 
 /*
@@ -1101,7 +1074,7 @@
  * Purpose:     Utility function used by low-level drivers to allow further
  *		commands from being queued to the device.
  *
- * Arguments:   SHpnt       - Host in question
+ * Arguments:   shost       - Host in question
  *
  * Returns:     Nothing
  *
@@ -1115,14 +1088,17 @@
  *		internals of the scsi mid-layer won't require wholesale
  *		changes to drivers that use this feature.
  */
-void scsi_unblock_requests(struct Scsi_Host * SHpnt)
+void scsi_unblock_requests(struct Scsi_Host *shost)
 {
-	Scsi_Device *SDloop;
+	struct scsi_device *sdev;
 
-	SHpnt->host_self_blocked = 0;
-	/* Now that we are unblocked, try to start the queues. */
-	list_for_each_entry(SDloop, &SHpnt->my_devices, siblings)
-		scsi_queue_next_request(SDloop->request_queue, NULL);
+	shost->host_self_blocked = 0;
+
+	/*
+	 * Now that we are unblocked, try to start the queues.
+	 */
+	list_for_each_entry(sdev, &shost->my_devices, siblings)
+		scsi_queue_next_request(sdev->request_queue, NULL);
 }
 
 /*
@@ -1131,7 +1107,7 @@
  * Purpose:     Utility function used by low-level drivers to report that
  *		they have observed a bus reset on the bus being handled.
  *
- * Arguments:   SHpnt       - Host in question
+ * Arguments:   shost       - Host in question
  *		channel     - channel on which reset was observed.
  *
  * Returns:     Nothing
@@ -1146,13 +1122,14 @@
  *		The main purpose of this is to make sure that a CHECK_CONDITION
  *		is properly treated.
  */
-void scsi_report_bus_reset(struct Scsi_Host * SHpnt, int channel)
+void scsi_report_bus_reset(struct Scsi_Host *shost, int channel)
 {
-	Scsi_Device *SDloop;
-	list_for_each_entry(SDloop, &SHpnt->my_devices, siblings) {
-		if (channel == SDloop->channel) {
-			SDloop->was_reset = 1;
-			SDloop->expecting_cc_ua = 1;
+	struct scsi_device *sdev;
+
+	list_for_each_entry(sdev, &shost->my_devices, siblings) {
+		if (channel == sdev->channel) {
+			sdev->was_reset = 1;
+			sdev->expecting_cc_ua = 1;
 		}
 	}
 }
@@ -1166,11 +1143,11 @@
  * The details of the implementation remain to be settled, however the
  * stubs are here now so that the actual drivers will properly compile.
  */
-void scsi_register_blocked_host(struct Scsi_Host * SHpnt)
+void scsi_register_blocked_host(struct Scsi_Host * shost)
 {
 }
 
-void scsi_deregister_blocked_host(struct Scsi_Host * SHpnt)
+void scsi_deregister_blocked_host(struct Scsi_Host * shost)
 {
 }
 

                 reply	other threads:[~2003-02-06 14:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20030206153154.A16630@lst.de \
    --to=hch@lst.de \
    --cc=James.Bottomley@steeleye.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.