]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/BusLogic.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6-omap-h63xx.git] / drivers / scsi / BusLogic.c
index 41b5197ce4e6c01cb5de40f8482fb47f43aaa376..9d6040bfa0646ae32283be9f1ffde0e974172594 100644 (file)
@@ -2746,9 +2746,15 @@ static int BusLogic_host_reset(struct scsi_cmnd * SCpnt)
 
        unsigned int id = SCpnt->device->id;
        struct BusLogic_TargetStatistics *stats = &HostAdapter->TargetStatistics[id];
+       int rc;
+
+       spin_lock_irq(SCpnt->device->host->host_lock);
+
        BusLogic_IncrementErrorCounter(&stats->HostAdapterResetsRequested);
 
-       return BusLogic_ResetHostAdapter(HostAdapter, false);
+       rc = BusLogic_ResetHostAdapter(HostAdapter, false);
+       spin_unlock_irq(SCpnt->device->host->host_lock);
+       return rc;
 }
 
 /*
@@ -2957,13 +2963,6 @@ static int BusLogic_AbortCommand(struct scsi_cmnd *Command)
        int TargetID = Command->device->id;
        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.