wake_up_interruptible(&ctrl->queue);
        }
 
-       if ((intr_loc = (intr_loc >> 1)) == 0) {
-               /* Unmask Global Interrupt Mask */
-               temp_dword = readl(php_ctlr->creg + SERR_INTR_ENABLE);
-               temp_dword &= 0xfffffffe;
-               writel(temp_dword, php_ctlr->creg + SERR_INTR_ENABLE);
-
-               return IRQ_NONE;
-       }
+       if ((intr_loc = (intr_loc >> 1)) == 0)
+               goto out;
 
        for (hp_slot = 0; hp_slot < ctrl->num_slots; hp_slot++) { 
        /* To find out which slot has interrupt pending */
                        dbg("%s: intr_loc2 = %x\n",__FUNCTION__, intr_loc2); 
                }
        }
+ out:
        if (!shpchp_poll_mode) {
                /* Unmask Global Interrupt Mask */
                temp_dword = readl(php_ctlr->creg + SERR_INTR_ENABLE);