aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/hotplug/shpchp_hpc.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/pci/hotplug/shpchp_hpc.c b/drivers/pci/hotplug/shpchp_hpc.c
index 1a6b5448f81d..943ed2b4dabe 100644
--- a/drivers/pci/hotplug/shpchp_hpc.c
+++ b/drivers/pci/hotplug/shpchp_hpc.c
@@ -1109,14 +1109,8 @@ static irqreturn_t shpc_isr(int IRQ, void *dev_id, struct pt_regs *regs)
1109 wake_up_interruptible(&ctrl->queue); 1109 wake_up_interruptible(&ctrl->queue);
1110 } 1110 }
1111 1111
1112 if ((intr_loc = (intr_loc >> 1)) == 0) { 1112 if ((intr_loc = (intr_loc >> 1)) == 0)
1113 /* Unmask Global Interrupt Mask */ 1113 goto out;
1114 temp_dword = readl(php_ctlr->creg + SERR_INTR_ENABLE);
1115 temp_dword &= 0xfffffffe;
1116 writel(temp_dword, php_ctlr->creg + SERR_INTR_ENABLE);
1117
1118 return IRQ_NONE;
1119 }
1120 1114
1121 for (hp_slot = 0; hp_slot < ctrl->num_slots; hp_slot++) { 1115 for (hp_slot = 0; hp_slot < ctrl->num_slots; hp_slot++) {
1122 /* To find out which slot has interrupt pending */ 1116 /* To find out which slot has interrupt pending */
@@ -1146,6 +1140,7 @@ static irqreturn_t shpc_isr(int IRQ, void *dev_id, struct pt_regs *regs)
1146 dbg("%s: intr_loc2 = %x\n",__FUNCTION__, intr_loc2); 1140 dbg("%s: intr_loc2 = %x\n",__FUNCTION__, intr_loc2);
1147 } 1141 }
1148 } 1142 }
1143 out:
1149 if (!shpchp_poll_mode) { 1144 if (!shpchp_poll_mode) {
1150 /* Unmask Global Interrupt Mask */ 1145 /* Unmask Global Interrupt Mask */
1151 temp_dword = readl(php_ctlr->creg + SERR_INTR_ENABLE); 1146 temp_dword = readl(php_ctlr->creg + SERR_INTR_ENABLE);