Re: [PATCH] PCI: pciehp: Always protect pciehp_disable_slot() with hotplug mutex

From: Guenter Roeck
Date: Thu Nov 05 2015 - 00:15:09 EST


On 11/04/2015 06:59 PM, Rajat Jain wrote:
Geez... I wonder how did I miss it. Thanks for fixing this.
Looks good to me.

Hi Rajat,

easy to miss. I only found it accidentally.

Thanks a lot for the review!

Guenter

Reviewed-by: Rajat Jain <rajatxjain@xxxxxxxxx <mailto:rajatxjain@xxxxxxxxx>>

On Sun, Nov 1, 2015 at 1:58 PM, Guenter Roeck <linux@xxxxxxxxxxxx <mailto:linux@xxxxxxxxxxxx>> wrote:

When called from pciehp_sysfs_disable_slot(), the call to
pciehp_disable_slot() was not protected by the hotplug mutex.

Cc: Rajat Jain <rajatxjain@xxxxxxxxx <mailto:rajatxjain@xxxxxxxxx>>
Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx <mailto:linux@xxxxxxxxxxxx>>
---
drivers/pci/hotplug/pciehp_ctrl.c | 2 ++
1 file changed, 2 insertions(+)

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;
--
2.1.4



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/