diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2008-07-24 11:31:49 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-07-26 15:31:30 -0400 |
commit | c9c5ced90abc22a94c96fa7db0e29c13483a6db0 (patch) | |
tree | c85876a934f54735e98b88fef3ee63a63ec7ae30 /drivers/scsi/qla2xxx/qla_mbx.c | |
parent | bf6583b5831d3195c45f98ec3016499389cbe18f (diff) |
[SCSI] qla2xxx: Additional NPIV corrections.
Minor fixes addressing:
- rport managements during vport deletion.
- acquire proper physical-ha during qla24xx_abort_command() and
qla24xx_queuecommand()
- do not needlessly acquire the pha for non-NPIV capable ISPs.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 7d7de592f720..bc90d6b8d0a0 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -749,18 +749,17 @@ qla2x00_abort_command(scsi_qla_host_t *ha, srb_t *sp) | |||
749 | uint32_t handle; | 749 | uint32_t handle; |
750 | mbx_cmd_t mc; | 750 | mbx_cmd_t mc; |
751 | mbx_cmd_t *mcp = &mc; | 751 | mbx_cmd_t *mcp = &mc; |
752 | scsi_qla_host_t *pha = to_qla_parent(ha); | ||
753 | 752 | ||
754 | DEBUG11(printk("qla2x00_abort_command(%ld): entered.\n", ha->host_no)); | 753 | DEBUG11(printk("qla2x00_abort_command(%ld): entered.\n", ha->host_no)); |
755 | 754 | ||
756 | fcport = sp->fcport; | 755 | fcport = sp->fcport; |
757 | 756 | ||
758 | spin_lock_irqsave(&pha->hardware_lock, flags); | 757 | spin_lock_irqsave(&ha->hardware_lock, flags); |
759 | for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { | 758 | for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { |
760 | if (ha->outstanding_cmds[handle] == sp) | 759 | if (ha->outstanding_cmds[handle] == sp) |
761 | break; | 760 | break; |
762 | } | 761 | } |
763 | spin_unlock_irqrestore(&pha->hardware_lock, flags); | 762 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
764 | 763 | ||
765 | if (handle == MAX_OUTSTANDING_COMMANDS) { | 764 | if (handle == MAX_OUTSTANDING_COMMANDS) { |
766 | /* command not found */ | 765 | /* command not found */ |
@@ -2172,7 +2171,7 @@ qla24xx_abort_command(scsi_qla_host_t *ha, srb_t *sp) | |||
2172 | 2171 | ||
2173 | spin_lock_irqsave(&pha->hardware_lock, flags); | 2172 | spin_lock_irqsave(&pha->hardware_lock, flags); |
2174 | for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { | 2173 | for (handle = 1; handle < MAX_OUTSTANDING_COMMANDS; handle++) { |
2175 | if (ha->outstanding_cmds[handle] == sp) | 2174 | if (pha->outstanding_cmds[handle] == sp) |
2176 | break; | 2175 | break; |
2177 | } | 2176 | } |
2178 | spin_unlock_irqrestore(&pha->hardware_lock, flags); | 2177 | spin_unlock_irqrestore(&pha->hardware_lock, flags); |