[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>
This commit is contained in:
parent
3064ff39b8
commit
5c66f5d193
|
@ -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 rsp_que *rsp = container_of(work, struct rsp_que, q_work);
|
||||||
struct scsi_qla_host *vha;
|
struct scsi_qla_host *vha;
|
||||||
|
|
||||||
|
spin_lock_irq(&rsp->hw->hardware_lock);
|
||||||
vha = qla25xx_get_host(rsp);
|
vha = qla25xx_get_host(rsp);
|
||||||
qla24xx_process_response_queue(vha, rsp);
|
qla24xx_process_response_queue(vha, rsp);
|
||||||
|
spin_unlock_irq(&rsp->hw->hardware_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create response queue */
|
/* create response queue */
|
||||||
|
|
Loading…
Reference in New Issue