Skip to contentSkip to conversation

fnic: Remove host_lock unlock() + lock() from fnic_queuecommand()

RFC In review Nicholas A. Bellinger 1 participant 1 message Sep 28, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

RFC v4 13/19 fnic: Remove host_lock unlock() + lock() from fnic_queuecommand()

From: Nicholas Bellinger <[email protected]>

This patch removes the now legacy host_lock unlock() + lock() optimization fnic_scsi.c:fnic_queuecommand(). This also includes setting the SHT->unlocked_qcmd=1 for host_lock less fnic fnic_queuecommand operation.

---
 drivers/scsi/fnic/fnic_main.c |    1 +
 drivers/scsi/fnic/fnic_scsi.c |    9 ---------
 2 files changed, 1 insertions(+), 9 deletions(-)
drivers/scsi/fnic/fnic_main.c +1 -0
index 9eb7a9e..2537814 100644
@@ -104,6 +104,7 @@ static struct scsi_host_template fnic_host_template = {
 	.slave_alloc = fnic_slave_alloc,
 	.change_queue_depth = fc_change_queue_depth,
 	.change_queue_type = fc_change_queue_type,
+	.unlocked_qcmd = 1,
 	.this_id = -1,
 	.cmd_per_lun = 3,
 	.can_queue = FNIC_MAX_IO_REQ,
drivers/scsi/fnic/fnic_scsi.c +0 -9
index 198cbab..7cf3372 100644
@@ -373,13 +373,6 @@ int fnic_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
 	if (lp->state != LPORT_ST_READY || !(lp->link_up))
 		return SCSI_MLQUEUE_HOST_BUSY;
 
-	/*
-	 * Release host lock, use driver resource specific locks from here.
-	 * Don't re-enable interrupts in case they were disabled prior to the
-	 * caller disabling them.
-	 */
-	spin_unlock(lp->host->host_lock);
-
 	/* Get a new io_req for this SCSI IO */
 	fnic = lport_priv(lp);
 
@@ -452,8 +445,6 @@ int fnic_queuecommand(struct scsi_cmnd *sc, void (*done)(struct scsi_cmnd *))
 		}
 	}
 out:
-	/* acquire host lock before returning to SCSI */
-	spin_lock(lp->host->host_lock);
 	return ret;
 }
 
Signature · 1 line
1.7.3