aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuenter Roeck <[email protected]>2015-11-01 13:58:40 -0800
committerBjorn Helgaas <[email protected]>2015-11-25 11:45:42 -0600
commit64609eaab242d36e3e3b7cb81d31a028719feb74 (patch)
tree54d8bbdcaa70a0a5bdc4e0c7d02a3c098ea02654
parent1ec218373b8ebda821aec00bb156a9c94fad9cd4 (diff)
PCI: pciehp: Always protect pciehp_disable_slot() with hotplug mutex
When called from pciehp_sysfs_disable_slot(), the call to pciehp_disable_slot() was not protected by the hotplug mutex. Hold slot->hotplug_lock while calling pciehp_disable_slot(). Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Rajat Jain <[email protected]>
-rw-r--r--drivers/pci/hotplug/pciehp_ctrl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pci/hotplug/pciehp_ctrl.c b/drivers/pci/hotplug/pciehp_ctrl.c
index 4c8f4cde6854..880978b6d534 100644
--- a/drivers/pci/hotplug/pciehp_ctrl.c
+++ b/drivers/pci/hotplug/pciehp_ctrl.c
@@ -511,7 +511,9 @@ int pciehp_sysfs_disable_slot(struct slot *p_slot)
case STATIC_STATE:
p_slot->state = POWEROFF_STATE;
mutex_unlock(&p_slot->lock);
+ mutex_lock(&p_slot->hotplug_lock);
retval = pciehp_disable_slot(p_slot);
+ mutex_unlock(&p_slot->hotplug_lock);
mutex_lock(&p_slot->lock);
p_slot->state = STATIC_STATE;
break;