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

hwmon: (corsair-psu) Rely on subsystem locking

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

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

+2 -11
+2 -11
drivers/hwmon/corsair-psu.c
··· 9 9 #include <linux/errno.h> 10 10 #include <linux/hid.h> 11 11 #include <linux/hwmon.h> 12 - #include <linux/hwmon-sysfs.h> 13 12 #include <linux/jiffies.h> 14 13 #include <linux/kernel.h> 15 14 #include <linux/module.h> 16 - #include <linux/mutex.h> 17 15 #include <linux/slab.h> 18 16 #include <linux/types.h> 19 17 ··· 122 124 struct device *hwmon_dev; 123 125 struct dentry *debugfs; 124 126 struct completion wait_completion; 125 - struct mutex lock; /* for locking access to cmd_buffer */ 126 127 u8 *cmd_buffer; 127 128 char vendor[REPLY_SIZE]; 128 129 char product[REPLY_SIZE]; ··· 217 220 { 218 221 int ret; 219 222 220 - mutex_lock(&priv->lock); 221 223 switch (cmd) { 222 224 case PSU_CMD_RAIL_VOLTS_HCRIT: 223 225 case PSU_CMD_RAIL_VOLTS_LCRIT: ··· 226 230 case PSU_CMD_RAIL_WATTS: 227 231 ret = corsairpsu_usb_cmd(priv, 2, PSU_CMD_SELECT_RAIL, rail, NULL); 228 232 if (ret < 0) 229 - goto cmd_fail; 233 + return ret; 230 234 break; 231 235 default: 232 236 break; 233 237 } 234 238 235 - ret = corsairpsu_usb_cmd(priv, 3, cmd, 0, data); 236 - 237 - cmd_fail: 238 - mutex_unlock(&priv->lock); 239 - return ret; 239 + return corsairpsu_usb_cmd(priv, 3, cmd, 0, data); 240 240 } 241 241 242 242 static int corsairpsu_get_value(struct corsairpsu_data *priv, u8 cmd, u8 rail, long *val) ··· 789 797 790 798 priv->hdev = hdev; 791 799 hid_set_drvdata(hdev, priv); 792 - mutex_init(&priv->lock); 793 800 init_completion(&priv->wait_completion); 794 801 795 802 hid_device_io_start(hdev);