forked from Minki/linux
scsi: qla2xxx: Remove extra register read
Remove extra register read for each interrupt for performance improvement. Signed-off-by: Quinn Tran <quinn.tran@cavium.com> Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
1608cc4abf
commit
dc62c3bea8
@ -3157,7 +3157,6 @@ qla24xx_msix_rsp_q(int irq, void *dev_id)
|
|||||||
struct device_reg_24xx __iomem *reg;
|
struct device_reg_24xx __iomem *reg;
|
||||||
struct scsi_qla_host *vha;
|
struct scsi_qla_host *vha;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
uint32_t stat = 0;
|
|
||||||
|
|
||||||
rsp = (struct rsp_que *) dev_id;
|
rsp = (struct rsp_que *) dev_id;
|
||||||
if (!rsp) {
|
if (!rsp) {
|
||||||
@ -3171,19 +3170,11 @@ qla24xx_msix_rsp_q(int irq, void *dev_id)
|
|||||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||||
|
|
||||||
vha = pci_get_drvdata(ha->pdev);
|
vha = pci_get_drvdata(ha->pdev);
|
||||||
/*
|
|
||||||
* Use host_status register to check to PCI disconnection before we
|
|
||||||
* we process the response queue.
|
|
||||||
*/
|
|
||||||
stat = RD_REG_DWORD(®->host_status);
|
|
||||||
if (qla2x00_check_reg32_for_disconnect(vha, stat))
|
|
||||||
goto out;
|
|
||||||
qla24xx_process_response_queue(vha, rsp);
|
qla24xx_process_response_queue(vha, rsp);
|
||||||
if (!ha->flags.disable_msix_handshake) {
|
if (!ha->flags.disable_msix_handshake) {
|
||||||
WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT);
|
WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT);
|
||||||
RD_REG_DWORD_RELAXED(®->hccr);
|
RD_REG_DWORD_RELAXED(®->hccr);
|
||||||
}
|
}
|
||||||
out:
|
|
||||||
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
|
@ -6530,7 +6530,6 @@ qlt_24xx_process_atio_queue(struct scsi_qla_host *vha, uint8_t ha_locked)
|
|||||||
|
|
||||||
/* Adjust ring index */
|
/* Adjust ring index */
|
||||||
WRT_REG_DWORD(ISP_ATIO_Q_OUT(vha), ha->tgt.atio_ring_index);
|
WRT_REG_DWORD(ISP_ATIO_Q_OUT(vha), ha->tgt.atio_ring_index);
|
||||||
RD_REG_DWORD_RELAXED(ISP_ATIO_Q_OUT(vha));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user