Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

hwmon: (lm90) Rely on subsystem locking

Attribute access is now serialized in the hardware monitoring core,
so locking n the driver code is no longer necessary. Drop it.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>

+4 -21
+4 -21
drivers/hwmon/lm90.c
··· 108 108 #include <linux/hwmon.h> 109 109 #include <linux/kstrtox.h> 110 110 #include <linux/module.h> 111 - #include <linux/mutex.h> 112 111 #include <linux/of.h> 113 112 #include <linux/regulator/consumer.h> 114 113 #include <linux/slab.h> ··· 734 735 struct hwmon_channel_info temp_info; 735 736 const struct hwmon_channel_info *info[3]; 736 737 struct hwmon_chip_info chip; 737 - struct mutex update_lock; 738 738 struct delayed_work alert_work; 739 739 struct work_struct report_work; 740 740 bool valid; /* true if register values are valid */ ··· 1224 1226 { 1225 1227 int err; 1226 1228 1227 - mutex_lock(&data->update_lock); 1229 + hwmon_lock(data->hwmon_dev); 1228 1230 err = lm90_update_alarms_locked(data, force); 1229 - mutex_unlock(&data->update_lock); 1231 + hwmon_unlock(data->hwmon_dev); 1230 1232 1231 1233 return err; 1232 1234 } ··· 1517 1519 int err; 1518 1520 u16 bit; 1519 1521 1520 - mutex_lock(&data->update_lock); 1521 1522 err = lm90_update_device(dev); 1522 - mutex_unlock(&data->update_lock); 1523 1523 if (err) 1524 1524 return err; 1525 1525 ··· 1586 1590 struct lm90_data *data = dev_get_drvdata(dev); 1587 1591 int err; 1588 1592 1589 - mutex_lock(&data->update_lock); 1590 - 1591 1593 err = lm90_update_device(dev); 1592 1594 if (err) 1593 - goto error; 1595 + return err; 1594 1596 1595 1597 switch (attr) { 1596 1598 case hwmon_temp_min: ··· 1618 1624 err = -EOPNOTSUPP; 1619 1625 break; 1620 1626 } 1621 - error: 1622 - mutex_unlock(&data->update_lock); 1623 - 1624 1627 return err; 1625 1628 } 1626 1629 ··· 1653 1662 struct lm90_data *data = dev_get_drvdata(dev); 1654 1663 int err; 1655 1664 1656 - mutex_lock(&data->update_lock); 1657 1665 err = lm90_update_device(dev); 1658 - mutex_unlock(&data->update_lock); 1659 1666 if (err) 1660 1667 return err; 1661 1668 ··· 1699 1710 struct i2c_client *client = data->client; 1700 1711 int err; 1701 1712 1702 - mutex_lock(&data->update_lock); 1703 - 1704 1713 err = lm90_update_device(dev); 1705 1714 if (err) 1706 - goto error; 1715 + return err; 1707 1716 1708 1717 switch (attr) { 1709 1718 case hwmon_chip_update_interval: ··· 1715 1728 err = -EOPNOTSUPP; 1716 1729 break; 1717 1730 } 1718 - error: 1719 - mutex_unlock(&data->update_lock); 1720 - 1721 1731 return err; 1722 1732 } 1723 1733 ··· 2777 2793 2778 2794 data->client = client; 2779 2795 i2c_set_clientdata(client, data); 2780 - mutex_init(&data->update_lock); 2781 2796 INIT_DELAYED_WORK(&data->alert_work, lm90_alert_work); 2782 2797 INIT_WORK(&data->report_work, lm90_report_alarms); 2783 2798