diff options
author | Saurav Kashyap <saurav.kashyap@qlogic.com> | 2011-08-16 14:29:27 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-08-27 10:20:18 -0400 |
commit | 3553d343e7acc418988cb8f22cd5b4976e7b484a (patch) | |
tree | 2b8aa6c0f193a4be693b3362cae103a09ec11e00 /drivers/scsi | |
parent | bc91ade9b7bc274d625c9b24c04d365a2daf481e (diff) |
[SCSI] qla2xxx: Save and restore irq in the response queue interrupt handler.
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_nx.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c index 5cbf33a50b14..02704fe8afab 100644 --- a/drivers/scsi/qla2xxx/qla_nx.c +++ b/drivers/scsi/qla2xxx/qla_nx.c | |||
@@ -2208,6 +2208,7 @@ qla82xx_msix_rsp_q(int irq, void *dev_id) | |||
2208 | struct qla_hw_data *ha; | 2208 | struct qla_hw_data *ha; |
2209 | struct rsp_que *rsp; | 2209 | struct rsp_que *rsp; |
2210 | struct device_reg_82xx __iomem *reg; | 2210 | struct device_reg_82xx __iomem *reg; |
2211 | unsigned long flags; | ||
2211 | 2212 | ||
2212 | rsp = (struct rsp_que *) dev_id; | 2213 | rsp = (struct rsp_que *) dev_id; |
2213 | if (!rsp) { | 2214 | if (!rsp) { |
@@ -2218,11 +2219,11 @@ qla82xx_msix_rsp_q(int irq, void *dev_id) | |||
2218 | 2219 | ||
2219 | ha = rsp->hw; | 2220 | ha = rsp->hw; |
2220 | reg = &ha->iobase->isp82; | 2221 | reg = &ha->iobase->isp82; |
2221 | spin_lock_irq(&ha->hardware_lock); | 2222 | spin_lock_irqsave(&ha->hardware_lock, flags); |
2222 | vha = pci_get_drvdata(ha->pdev); | 2223 | vha = pci_get_drvdata(ha->pdev); |
2223 | qla24xx_process_response_queue(vha, rsp); | 2224 | qla24xx_process_response_queue(vha, rsp); |
2224 | WRT_REG_DWORD(®->host_int, 0); | 2225 | WRT_REG_DWORD(®->host_int, 0); |
2225 | spin_unlock_irq(&ha->hardware_lock); | 2226 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
2226 | return IRQ_HANDLED; | 2227 | return IRQ_HANDLED; |
2227 | } | 2228 | } |
2228 | 2229 | ||