File tree Expand file tree Collapse file tree 1 file changed +3
-1
lines changed Expand file tree Collapse file tree 1 file changed +3
-1
lines changed Original file line number Diff line number Diff line change @@ -1488,7 +1488,7 @@ struct regulator *regulator_get_optional(struct device *dev, const char *id)
1488
1488
}
1489
1489
EXPORT_SYMBOL_GPL (regulator_get_optional );
1490
1490
1491
- /* Locks held by regulator_put() */
1491
+ /* regulator_list_mutex lock held by regulator_put() */
1492
1492
static void _regulator_put (struct regulator * regulator )
1493
1493
{
1494
1494
struct regulator_dev * rdev ;
@@ -1503,12 +1503,14 @@ static void _regulator_put(struct regulator *regulator)
1503
1503
/* remove any sysfs entries */
1504
1504
if (regulator -> dev )
1505
1505
sysfs_remove_link (& rdev -> dev .kobj , regulator -> supply_name );
1506
+ mutex_lock (& rdev -> mutex );
1506
1507
kfree (regulator -> supply_name );
1507
1508
list_del (& regulator -> list );
1508
1509
kfree (regulator );
1509
1510
1510
1511
rdev -> open_count -- ;
1511
1512
rdev -> exclusive = 0 ;
1513
+ mutex_unlock (& rdev -> mutex );
1512
1514
1513
1515
module_put (rdev -> owner );
1514
1516
}
You can’t perform that action at this time.
0 commit comments