*/
                        if (qla_tgt_mode_enabled(vha) ||
                            qla_dual_mode_enabled(vha)) {
-                               if (IS_QLA27XX(ha) || IS_QLA83XX(ha)) {
-                                       spin_lock_irqsave(&ha->tgt.atio_lock,
-                                           flags);
-                                       qlt_24xx_process_atio_queue(vha, 0);
-                                       spin_unlock_irqrestore(
-                                           &ha->tgt.atio_lock, flags);
-                               } else {
-                                       spin_lock_irqsave(&ha->hardware_lock,
-                                           flags);
-                                       qlt_24xx_process_atio_queue(vha, 1);
-                                       spin_unlock_irqrestore(
-                                           &ha->hardware_lock, flags);
-                               }
+                               spin_lock_irqsave(&ha->tgt.atio_lock, flags);
+                               qlt_24xx_process_atio_queue(vha, 0);
+                               spin_unlock_irqrestore(&ha->tgt.atio_lock,
+                                   flags);
                        }
                }
        }
 
        uint16_t        mb[8];
        struct rsp_que *rsp;
        unsigned long   flags;
+       bool process_atio = false;
 
        rsp = (struct rsp_que *) dev_id;
        if (!rsp) {
                        qla24xx_process_response_queue(vha, rsp);
                        break;
                case INTR_ATIO_QUE_UPDATE_27XX:
-               case INTR_ATIO_QUE_UPDATE:{
-                       unsigned long flags2;
-                       spin_lock_irqsave(&ha->tgt.atio_lock, flags2);
-                       qlt_24xx_process_atio_queue(vha, 1);
-                       spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2);
+               case INTR_ATIO_QUE_UPDATE:
+                       process_atio = true;
                        break;
-               }
-               case INTR_ATIO_RSP_QUE_UPDATE: {
-                       unsigned long flags2;
-                       spin_lock_irqsave(&ha->tgt.atio_lock, flags2);
-                       qlt_24xx_process_atio_queue(vha, 1);
-                       spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2);
-
+               case INTR_ATIO_RSP_QUE_UPDATE:
+                       process_atio = true;
                        qla24xx_process_response_queue(vha, rsp);
                        break;
-               }
                default:
                        ql_dbg(ql_dbg_async, vha, 0x504f,
                            "Unrecognized interrupt type (%d).\n", stat * 0xff);
        qla2x00_handle_mbx_completion(ha, status);
        spin_unlock_irqrestore(&ha->hardware_lock, flags);
 
+       if (process_atio) {
+               spin_lock_irqsave(&ha->tgt.atio_lock, flags);
+               qlt_24xx_process_atio_queue(vha, 0);
+               spin_unlock_irqrestore(&ha->tgt.atio_lock, flags);
+       }
+
        return IRQ_HANDLED;
 }
 
        uint32_t        hccr;
        uint16_t        mb[8];
        unsigned long flags;
+       bool process_atio = false;
 
        rsp = (struct rsp_que *) dev_id;
        if (!rsp) {
                        qla24xx_process_response_queue(vha, rsp);
                        break;
                case INTR_ATIO_QUE_UPDATE_27XX:
-               case INTR_ATIO_QUE_UPDATE:{
-                       unsigned long flags2;
-                       spin_lock_irqsave(&ha->tgt.atio_lock, flags2);
-                       qlt_24xx_process_atio_queue(vha, 1);
-                       spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2);
+               case INTR_ATIO_QUE_UPDATE:
+                       process_atio = true;
                        break;
-               }
-               case INTR_ATIO_RSP_QUE_UPDATE: {
-                       unsigned long flags2;
-                       spin_lock_irqsave(&ha->tgt.atio_lock, flags2);
-                       qlt_24xx_process_atio_queue(vha, 1);
-                       spin_unlock_irqrestore(&ha->tgt.atio_lock, flags2);
-
+               case INTR_ATIO_RSP_QUE_UPDATE:
+                       process_atio = true;
                        qla24xx_process_response_queue(vha, rsp);
                        break;
-               }
                default:
                        ql_dbg(ql_dbg_async, vha, 0x5051,
                            "Unrecognized interrupt type (%d).\n", stat & 0xff);
        qla2x00_handle_mbx_completion(ha, status);
        spin_unlock_irqrestore(&ha->hardware_lock, flags);
 
+       if (process_atio) {
+               spin_lock_irqsave(&ha->tgt.atio_lock, flags);
+               qlt_24xx_process_atio_queue(vha, 0);
+               spin_unlock_irqrestore(&ha->tgt.atio_lock, flags);
+       }
+
        return IRQ_HANDLED;
 }