diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-14 20:53:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-14 20:53:36 -0400 |
commit | 39695224bd84dc4be29abad93a0ec232a16fc519 (patch) | |
tree | 2bfa5cb50788a4c8be9f2e9f4412e47a565f4508 /drivers/scsi/qla2xxx/qla_attr.c | |
parent | a9bbd210a44102cc50b30a5f3d111dbf5f2f9cd4 (diff) | |
parent | ea038f63ac52439e7816295fa6064fe95e6c1f51 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (209 commits)
[SCSI] fix oops during scsi scanning
[SCSI] libsrp: fix memory leak in srp_ring_free()
[SCSI] libiscsi, bnx2i: make bound ep check common
[SCSI] libiscsi: add completion function for drivers that do not need pdu processing
[SCSI] scsi_dh_rdac: changes for rdac debug logging
[SCSI] scsi_dh_rdac: changes to collect the rdac debug information during the initialization
[SCSI] scsi_dh_rdac: move the init code from rdac_activate to rdac_bus_attach
[SCSI] sg: fix oops in the error path in sg_build_indirect()
[SCSI] mptsas : Bump version to 3.04.12
[SCSI] mptsas : FW event thread and scsi mid layer deadlock in SYNCHRONIZE CACHE command
[SCSI] mptsas : Send DID_NO_CONNECT for pending IOs of removed device
[SCSI] mptsas : PAE Kernel more than 4 GB kernel panic
[SCSI] mptsas : NULL pointer on big endian systems causing Expander not to tear off
[SCSI] mptsas : Sanity check for phyinfo is added
[SCSI] scsi_dh_rdac: Add support for Sun StorageTek ST2500, ST2510 and ST2530
[SCSI] pmcraid: PMC-Sierra MaxRAID driver to support 6Gb/s SAS RAID controller
[SCSI] qla2xxx: Update version number to 8.03.01-k6.
[SCSI] qla2xxx: Properly delete rports attached to a vport.
[SCSI] qla2xxx: Correct various NPIV issues.
[SCSI] qla2xxx: Correct qla2x00_eh_wait_on_command() to wait correctly.
...
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_attr.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_attr.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c index 0f8796201504..fbcb82a2f7f4 100644 --- a/drivers/scsi/qla2xxx/qla_attr.c +++ b/drivers/scsi/qla2xxx/qla_attr.c | |||
@@ -1670,7 +1670,7 @@ qla24xx_vport_create(struct fc_vport *fc_vport, bool disable) | |||
1670 | 1670 | ||
1671 | qla24xx_vport_disable(fc_vport, disable); | 1671 | qla24xx_vport_disable(fc_vport, disable); |
1672 | 1672 | ||
1673 | if (ql2xmultique_tag) { | 1673 | if (ha->flags.cpu_affinity_enabled) { |
1674 | req = ha->req_q_map[1]; | 1674 | req = ha->req_q_map[1]; |
1675 | goto vport_queue; | 1675 | goto vport_queue; |
1676 | } else if (ql2xmaxqueues == 1 || !ha->npiv_info) | 1676 | } else if (ql2xmaxqueues == 1 || !ha->npiv_info) |
@@ -1736,6 +1736,11 @@ qla24xx_vport_delete(struct fc_vport *fc_vport) | |||
1736 | 1736 | ||
1737 | qla24xx_deallocate_vp_id(vha); | 1737 | qla24xx_deallocate_vp_id(vha); |
1738 | 1738 | ||
1739 | mutex_lock(&ha->vport_lock); | ||
1740 | ha->cur_vport_count--; | ||
1741 | clear_bit(vha->vp_idx, ha->vp_idx_map); | ||
1742 | mutex_unlock(&ha->vport_lock); | ||
1743 | |||
1739 | if (vha->timer_active) { | 1744 | if (vha->timer_active) { |
1740 | qla2x00_vp_stop_timer(vha); | 1745 | qla2x00_vp_stop_timer(vha); |
1741 | DEBUG15(printk ("scsi(%ld): timer for the vport[%d] = %p " | 1746 | DEBUG15(printk ("scsi(%ld): timer for the vport[%d] = %p " |
@@ -1743,7 +1748,7 @@ qla24xx_vport_delete(struct fc_vport *fc_vport) | |||
1743 | vha->host_no, vha->vp_idx, vha)); | 1748 | vha->host_no, vha->vp_idx, vha)); |
1744 | } | 1749 | } |
1745 | 1750 | ||
1746 | if (vha->req->id && !ql2xmultique_tag) { | 1751 | if (vha->req->id && !ha->flags.cpu_affinity_enabled) { |
1747 | if (qla25xx_delete_req_que(vha, vha->req) != QLA_SUCCESS) | 1752 | if (qla25xx_delete_req_que(vha, vha->req) != QLA_SUCCESS) |
1748 | qla_printk(KERN_WARNING, ha, | 1753 | qla_printk(KERN_WARNING, ha, |
1749 | "Queue delete failed.\n"); | 1754 | "Queue delete failed.\n"); |