diff options
Diffstat (limited to '')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_isr.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index 76e79f350a22..e19fde304e5c 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c @@ -3764,7 +3764,7 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, struct purex_entry_24xx *purex_entry; struct purex_item *pure_item; u16 rsp_in = 0, cur_ring_index; - int follow_inptr, is_shadow_hba; + int is_shadow_hba; if (!ha->flags.fw_started) return; @@ -3774,25 +3774,18 @@ void qla24xx_process_response_queue(struct scsi_qla_host *vha, qla_cpu_update(rsp->qpair, smp_processor_id()); } -#define __update_rsp_in(_update, _is_shadow_hba, _rsp, _rsp_in) \ +#define __update_rsp_in(_is_shadow_hba, _rsp, _rsp_in) \ do { \ - if (_update) { \ - _rsp_in = _is_shadow_hba ? *(_rsp)->in_ptr : \ + _rsp_in = _is_shadow_hba ? *(_rsp)->in_ptr : \ rd_reg_dword_relaxed((_rsp)->rsp_q_in); \ - } \ } while (0) is_shadow_hba = IS_SHADOW_REG_CAPABLE(ha); - follow_inptr = is_shadow_hba ? ql2xrspq_follow_inptr : - ql2xrspq_follow_inptr_legacy; - __update_rsp_in(follow_inptr, is_shadow_hba, rsp, rsp_in); + __update_rsp_in(is_shadow_hba, rsp, rsp_in); - while ((likely(follow_inptr && - rsp->ring_index != rsp_in && - rsp->ring_ptr->signature != RESPONSE_PROCESSED)) || - (!follow_inptr && - rsp->ring_ptr->signature != RESPONSE_PROCESSED)) { + while (rsp->ring_index != rsp_in && + rsp->ring_ptr->signature != RESPONSE_PROCESSED) { pkt = (struct sts_entry_24xx *)rsp->ring_ptr; cur_ring_index = rsp->ring_index; @@ -3906,8 +3899,7 @@ process_err: } pure_item = qla27xx_copy_fpin_pkt(vha, (void **)&pkt, &rsp); - __update_rsp_in(follow_inptr, is_shadow_hba, - rsp, rsp_in); + __update_rsp_in(is_shadow_hba, rsp, rsp_in); if (!pure_item) break; qla24xx_queue_purex_item(vha, pure_item, |