diff options
author | Anirban Chakraborty <anirban.chakraborty@qlogic.com> | 2009-12-15 21:29:45 -0800 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-30 11:09:47 -0600 |
commit | 5c66f5d193f68c2a7da0f2ad3535ed30ab14307b (patch) | |
tree | 5c5fd0777b822ec49a186413e34f0ba989a3e0f8 /drivers/scsi/qla2xxx | |
parent | 3064ff39b8121acbd731f64d046218ebf3c2f9c0 (diff) |
[SCSI] qla2xxx: Fix for a multiqueue bug in CPU affinity mode
Hold the hardware lock while do the response completion in work queue threads as
it involves sharing a common request queue among multiple threads.
Signed-off-by: Anirban Chakraborty <anirban.chakraborty@qlogic.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mid.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index 2a4c7f4e7b6..b901aa267e7 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c @@ -639,8 +639,10 @@ static void qla_do_work(struct work_struct *work) struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); struct scsi_qla_host *vha; + spin_lock_irq(&rsp->hw->hardware_lock); vha = qla25xx_get_host(rsp); qla24xx_process_response_queue(vha, rsp); + spin_unlock_irq(&rsp->hw->hardware_lock); } /* create response queue */ |