diff options
Diffstat (limited to 'drivers/pci')
-rw-r--r-- | drivers/pci/hotplug/pciehp_hpc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c index 51a5055f6965..19eba2a2f746 100644 --- a/drivers/pci/hotplug/pciehp_hpc.c +++ b/drivers/pci/hotplug/pciehp_hpc.c | |||
@@ -279,6 +279,7 @@ static int pcie_write_cmd(struct slot *slot, u16 cmd, u16 mask) | |||
279 | slot_ctrl |= ((cmd & mask) | CMD_CMPL_INTR_ENABLE); | 279 | slot_ctrl |= ((cmd & mask) | CMD_CMPL_INTR_ENABLE); |
280 | 280 | ||
281 | ctrl->cmd_busy = 1; | 281 | ctrl->cmd_busy = 1; |
282 | smp_mb(); | ||
282 | retval = pciehp_writew(ctrl, SLOTCTRL, slot_ctrl); | 283 | retval = pciehp_writew(ctrl, SLOTCTRL, slot_ctrl); |
283 | if (retval) | 284 | if (retval) |
284 | err("%s: Cannot write to SLOTCTRL register\n", __func__); | 285 | err("%s: Cannot write to SLOTCTRL register\n", __func__); |
@@ -759,6 +760,7 @@ static irqreturn_t pcie_isr(int irq, void *dev_id) | |||
759 | /* Check Command Complete Interrupt Pending */ | 760 | /* Check Command Complete Interrupt Pending */ |
760 | if (intr_loc & CMD_COMPLETED) { | 761 | if (intr_loc & CMD_COMPLETED) { |
761 | ctrl->cmd_busy = 0; | 762 | ctrl->cmd_busy = 0; |
763 | smp_mb(); | ||
762 | wake_up_interruptible(&ctrl->queue); | 764 | wake_up_interruptible(&ctrl->queue); |
763 | } | 765 | } |
764 | 766 | ||