tree c4e5d02355df7443afa45ecc491807a67962f0d8
parent d3a933dc9851e74581f9f4c8e703e77901ae8d01
author <[EMAIL PROTECTED]> Mon, 04 Apr 2005 00:59:11 -0500
committer James Bottomley <[EMAIL PROTECTED]> Mon, 18 Apr 2005 22:33:15 -0500
[PATCH] scsi: remove meaningless scsi_cmnd->serial_number_at_timeout field
scsi_cmnd->serial_number_at_timeout doesn't serve any purpose
anymore. All serial_number == serial_number_at_timeout tests
are always true in abort callbacks. Kill the field. Also, as
->pid always equals ->serial_number and ->serial_number
doesn't have any special meaning anymore, update comments
above ->serial_number accordingly. Once we remove all uses of
this field from all lldd's, this field should go.
Signed-off-by: Tejun Heo <[EMAIL PROTECTED]>
Signed-off-by: James Bottomley <[EMAIL PROTECTED]>
scsi/BusLogic.c | 7 -------
scsi/advansys.c | 5 ++---
scsi/ips.c | 7 -------
scsi/ncr53c8xx.c | 14 ++------------
scsi/qla2xxx/qla_dbg.c | 6 ++----
scsi/scsi.c | 2 --
scsi/scsi_error.c | 7 -------
scsi/scsi_lib.c | 1 -
scsi/sym53c8xx_2/sym_glue.c | 6 ------
scsi/scsi_cmnd.h | 22 +++++++++-------------
10 files changed, 15 insertions(+), 62 deletions(-)
Index: drivers/scsi/BusLogic.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/BusLogic.c
(mode:100644 sha1:41b5197ce4e6c01cb5de40f8482fb47f43aaa376)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/BusLogic.c
(mode:100644 sha1:15e4b122d56e93c4330fbbfd1871e6d2c164b7a0)
@@ -2958,13 +2958,6 @@
struct BusLogic_CCB *CCB;
BusLogic_IncrementErrorCounter(&HostAdapter->TargetStatistics[TargetID].CommandAbortsRequested);
/*
- If this Command has already completed, then no Abort is necessary.
- */
- if (Command->serial_number != Command->serial_number_at_timeout) {
- BusLogic_Warning("Unable to Abort Command to Target %d - "
"Already Completed\n", HostAdapter, TargetID);
- return SUCCESS;
- }
- /*
Attempt to find an Active CCB for this Command. If no Active CCB
for this
Command is found, then no Abort is necessary.
*/
Index: drivers/scsi/advansys.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/advansys.c
(mode:100644 sha1:edeb333d816172e8779244084257ccfecc323c56)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/advansys.c
(mode:100644 sha1:04cb5c405a2db94a232f7621c2e09f1f5599cd14)
@@ -9198,9 +9198,8 @@
s->use_sg, s->sglist_len, s->abort_reason);
printk(
-" serial_number 0x%x, serial_number_at_timeout 0x%x, retries %d, allowed %d\n",
- (unsigned) s->serial_number, (unsigned) s->serial_number_at_timeout,
- s->retries, s->allowed);
+" serial_number 0x%x, retries %d, allowed %d\n",
+ (unsigned) s->serial_number, s->retries, s->allowed);
printk(
" timeout_per_command %d, timeout_total %d, timeout %d\n",
Index: drivers/scsi/ips.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/ips.c (mode:100644
sha1:e46096da8db2d96b8dffff85f174964416d6d0a5)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/ips.c (mode:100644
sha1:47c263e5cd39d355e15b061d6564cd131b47c249)
@@ -833,13 +833,6 @@
if (!ha->active)
return (FAILED);
- if (SC->serial_number != SC->serial_number_at_timeout) {
- /* HMM, looks like a bogus command */
- DEBUG(1, "Abort called with bogus scsi command");
-
- return (FAILED);
- }
-
/* See if the command is on the copp queue */
item = ha->copp_waitlist.head;
while ((item) && (item->scsi_cmd != SC))
Index: drivers/scsi/ncr53c8xx.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/ncr53c8xx.c
(mode:100644 sha1:7ae13236788ec961c80720654ed9b9d6e0f2b236)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/ncr53c8xx.c
(mode:100644 sha1:2a0e42ec27d3e8bc5a66baf424f990516632a0e4)
@@ -7486,24 +7486,14 @@
struct scsi_cmnd *done_list;
#if defined SCSI_RESET_SYNCHRONOUS && defined SCSI_RESET_ASYNCHRONOUS
- printk("ncr53c8xx_abort: pid=%lu serial_number=%ld
serial_number_at_timeout=%ld\n",
- cmd->pid, cmd->serial_number, cmd->serial_number_at_timeout);
+ printk("ncr53c8xx_abort: pid=%lu serial_number=%ld\n",
+ cmd->pid, cmd->serial_number);
#else
printk("ncr53c8xx_abort: command pid %lu\n", cmd->pid);
#endif
NCR_LOCK_NCB(np, flags);
-#if defined SCSI_RESET_SYNCHRONOUS && defined SCSI_RESET_ASYNCHRONOUS
- /*
- * We have to just ignore abort requests in some situations.
- */
- if (cmd->serial_number != cmd->serial_number_at_timeout) {
- sts = SCSI_ABORT_NOT_RUNNING;
- goto out;
- }
-#endif
-
sts = ncr_abort_command(np, cmd);
out:
done_list = np->done_list;
Index: drivers/scsi/qla2xxx/qla_dbg.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/qla2xxx/qla_dbg.c
(mode:100644 sha1:dcc33daa5913dbd558d3f3178ae9868698561337)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/qla2xxx/qla_dbg.c
(mode:100644 sha1:0e8ebbc56e81c67affd7a6f996490db57cf33cd0)
@@ -1050,10 +1050,8 @@
for (i = 0; i < cmd->cmd_len; i++) {
printk("0x%02x ", cmd->cmnd[i]);
}
- printk("\n seg_cnt=%d, allowed=%d, retries=%d, "
- "serial_number_at_timeout=0x%lx\n",
- cmd->use_sg, cmd->allowed, cmd->retries,
- cmd->serial_number_at_timeout);
+ printk("\n seg_cnt=%d, allowed=%d, retries=%d\n",
+ cmd->use_sg, cmd->allowed, cmd->retries);
printk(" request buffer=0x%p, request buffer len=0x%x\n",
cmd->request_buffer, cmd->request_bufflen);
printk(" tag=%d, transfersize=0x%x\n",
Index: drivers/scsi/scsi.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/scsi.c (mode:100644
sha1:95de4d0f4fd1613c1ec16895bce5c8039459074c)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/scsi.c (mode:100644
sha1:05d2bd075fd4e27a6f954e2b0662c400733790f9)
@@ -686,7 +686,6 @@
cmd->request = sreq->sr_request;
memcpy(cmd->data_cmnd, sreq->sr_cmnd, sizeof(cmd->data_cmnd));
cmd->serial_number = 0;
- cmd->serial_number_at_timeout = 0;
cmd->bufflen = sreq->sr_bufflen;
cmd->buffer = sreq->sr_buffer;
cmd->retries = 0;
@@ -765,7 +764,6 @@
* Set the serial numbers back to zero
*/
cmd->serial_number = 0;
- cmd->serial_number_at_timeout = 0;
cmd->state = SCSI_STATE_BHQUEUE;
cmd->owner = SCSI_OWNER_BH_HANDLER;
Index: drivers/scsi/scsi_error.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/scsi_error.c
(mode:100644 sha1:173abb88e3e8f8414daf6e5ff97a3a34060c77ec)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/scsi_error.c
(mode:100644 sha1:13bac93fc3971260b5fd47f19cfd478285d35c31)
@@ -79,11 +79,6 @@
*/
scmd->owner = SCSI_OWNER_ERROR_HANDLER;
scmd->state = SCSI_STATE_FAILED;
- /*
- * Set the serial_number_at_timeout to the current
- * serial_number
- */
- scmd->serial_number_at_timeout = scmd->serial_number;
list_add_tail(&scmd->eh_entry, &shost->eh_cmd_q);
set_bit(SHOST_RECOVERY, &shost->shost_state);
shost->host_failed++;
@@ -1061,7 +1056,6 @@
SCSI_LOG_ERROR_RECOVERY(3, printk("%s: Snd Bus RST\n",
__FUNCTION__));
scmd->owner = SCSI_OWNER_LOWLEVEL;
- scmd->serial_number_at_timeout = scmd->serial_number;
if (!scmd->device->host->hostt->eh_bus_reset_handler)
return FAILED;
@@ -1093,7 +1087,6 @@
SCSI_LOG_ERROR_RECOVERY(3, printk("%s: Snd Host RST\n",
__FUNCTION__));
scmd->owner = SCSI_OWNER_LOWLEVEL;
- scmd->serial_number_at_timeout = scmd->serial_number;
if (!scmd->device->host->hostt->eh_host_reset_handler)
return FAILED;
Index: drivers/scsi/scsi_lib.c
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/scsi_lib.c
(mode:100644 sha1:19dd911d9f7ad27cb45b642a325f0981a73178f0)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/scsi_lib.c
(mode:100644 sha1:619d3fb7a2f056bdfdde5f103d618a2b566fb949)
@@ -298,7 +298,6 @@
{
cmd->owner = SCSI_OWNER_MIDLEVEL;
cmd->serial_number = 0;
- cmd->serial_number_at_timeout = 0;
cmd->abort_reason = 0;
memset(cmd->sense_buffer, 0, sizeof cmd->sense_buffer);
Index: drivers/scsi/sym53c8xx_2/sym_glue.c
===================================================================
---
7e3ca6bb10436c201359a49945e9a4c6f1657a66/drivers/scsi/sym53c8xx_2/sym_glue.c
(mode:100644 sha1:a1dff6d437bc22b066a123e2332526fdb7cc4d13)
+++
c4e5d02355df7443afa45ecc491807a67962f0d8/drivers/scsi/sym53c8xx_2/sym_glue.c
(mode:100644 sha1:5ff83d214f128eed2ca780cf50fbc8f12a6fa07e)
@@ -799,12 +799,6 @@
dev_warn(&cmd->device->sdev_gendev, "%s operation started.\n", opname);
-#if 0
- /* This one should be the result of some race, thus to ignore */
- if (cmd->serial_number != cmd->serial_number_at_timeout)
- goto prepare;
-#endif
-
/* This one is queued in some place -> to wait for completion */
FOR_EACH_QUEUED_ELEMENT(&np->busy_ccbq, qp) {
struct sym_ccb *cp = sym_que_entry(qp, struct sym_ccb,
link_ccbq);
Index: include/scsi/scsi_cmnd.h
===================================================================
--- 7e3ca6bb10436c201359a49945e9a4c6f1657a66/include/scsi/scsi_cmnd.h
(mode:100644 sha1:ae45d6f8f98cb39c111956ceb4de4730cace92df)
+++ c4e5d02355df7443afa45ecc491807a67962f0d8/include/scsi/scsi_cmnd.h
(mode:100644 sha1:07f5c699eaa7b365468150dc81bb0ce7bf05b46f)
@@ -43,21 +43,17 @@
void (*done) (struct scsi_cmnd *); /* Mid-level done function */
/*
- * A SCSI Command is assigned a nonzero serial_number when internal_cmnd
- * passes it to the driver's queue command function. The serial_number
- * is cleared when scsi_done is entered indicating that the command has
- * been completed. If a timeout occurs, the serial number at the moment
- * of timeout is copied into serial_number_at_timeout. By subsequently
- * comparing the serial_number and serial_number_at_timeout fields
- * during abort or reset processing, we can detect whether the command
- * has already completed. This also detects cases where the command has
- * completed and the SCSI Command structure has already being reused
- * for another command, so that we can avoid incorrectly aborting or
- * resetting the new command.
- * The serial number is only unique per host.
+ * A SCSI Command is assigned a nonzero serial_number before passed
+ * to the driver's queue command function. The serial_number is
+ * cleared when scsi_done is entered indicating that the command
+ * has been completed. It currently doesn't have much use other
+ * than printk's. Some lldd's use this number for other purposes.
+ * It's almost certain that such usages are either incorrect or
+ * meaningless. Please kill all usages other than printk's. Also,
+ * as this number is always identical to ->pid, please convert
+ * printk's to use ->pid, so that we can kill this field.
*/
unsigned long serial_number;
- unsigned long serial_number_at_timeout;
int retries;
int allowed;
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html