[SCSI] Remove unnecessary locking around completion function calls
The SCSI ->done() hook should not be called from inside a spinlock. Drivers that do this are mostly cut-n-paste from 2.2.x-era. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
@@ -767,10 +767,8 @@ static void fcp_scsi_done (Scsi_Cmnd *SCpnt)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
spin_lock_irqsave(SCpnt->device->host->host_lock, flags);
|
||||
if (FCP_CMND(SCpnt)->done)
|
||||
FCP_CMND(SCpnt)->done(SCpnt);
|
||||
spin_unlock_irqrestore(SCpnt->device->host->host_lock, flags);
|
||||
}
|
||||
|
||||
static int fcp_scsi_queue_it(fc_channel *fc, Scsi_Cmnd *SCpnt, fcp_cmnd *fcmd, int prepare)
|
||||
@@ -912,9 +910,7 @@ int fcp_scsi_abort(Scsi_Cmnd *SCpnt)
|
||||
unsigned long flags;
|
||||
|
||||
SCpnt->result = DID_ABORT;
|
||||
spin_lock_irqsave(SCpnt->device->host->host_lock, flags);
|
||||
fcmd->done(SCpnt);
|
||||
spin_unlock_irqrestore(SCpnt->device->host->host_lock, flags);
|
||||
printk("FC: soft abort\n");
|
||||
return SUCCESS;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user