[SCSI] be2iscsi: fix boot hang due to interrupts not getting rearmed
[pandora-kernel.git] / drivers / scsi / be2iscsi / be_main.c
index d834136..cea9b27 100644 (file)
@@ -3465,23 +3465,23 @@ static void hwi_enable_intr(struct beiscsi_hba *phba)
        addr = (u8 __iomem *) ((u8 __iomem *) ctrl->pcicfg +
                        PCICFG_MEMBAR_CTRL_INT_CTRL_OFFSET);
        reg = ioread32(addr);
-       SE_DEBUG(DBG_LVL_8, "reg =x%08x\n", reg);
 
        enabled = reg & MEMBAR_CTRL_INT_CTRL_HOSTINTR_MASK;
        if (!enabled) {
                reg |= MEMBAR_CTRL_INT_CTRL_HOSTINTR_MASK;
                SE_DEBUG(DBG_LVL_8, "reg =x%08x addr=%p\n", reg, addr);
                iowrite32(reg, addr);
-               if (!phba->msix_enabled) {
-                       eq = &phwi_context->be_eq[0].q;
+       }
+
+       if (!phba->msix_enabled) {
+               eq = &phwi_context->be_eq[0].q;
+               SE_DEBUG(DBG_LVL_8, "eq->id=%d\n", eq->id);
+               hwi_ring_eq_db(phba, eq->id, 0, 0, 1, 1);
+       } else {
+               for (i = 0; i <= phba->num_cpus; i++) {
+                       eq = &phwi_context->be_eq[i].q;
                        SE_DEBUG(DBG_LVL_8, "eq->id=%d\n", eq->id);
                        hwi_ring_eq_db(phba, eq->id, 0, 0, 1, 1);
-               } else {
-                       for (i = 0; i <= phba->num_cpus; i++) {
-                               eq = &phwi_context->be_eq[i].q;
-                               SE_DEBUG(DBG_LVL_8, "eq->id=%d\n", eq->id);
-                               hwi_ring_eq_db(phba, eq->id, 0, 0, 1, 1);
-                       }
                }
        }
 }