提交 622f2234 编写于 作者: L Linus Torvalds

Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:

 - Error path fixes for abituguru and iio_hwmon drivers.

 - Drop erroneously created attributes from nct6775 driver.

 - Drop redundant safety on cache lifetime for tmp401 driver.

 - Add explicit maintainer for LM95234 and TMP401 drivers.

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  MAINTAINERS: Add myself as maintainer for LM95234 and TMP401 drivers
  hwmon: (tmp401) Drop redundant safety on cache lifetime
  hwmon: fix error return code in abituguru_probe()
  hwmon: (iio_hwmon) Fix null pointer dereference
  hwmon: (nct6775) Do not create non-existing attributes
  hwmon: (iio_hwmon) Fix missing iio_channel_release_all call if devm_kzalloc fail
...@@ -4976,6 +4976,13 @@ S: Maintained ...@@ -4976,6 +4976,13 @@ S: Maintained
F: Documentation/hwmon/lm90 F: Documentation/hwmon/lm90
F: drivers/hwmon/lm90.c F: drivers/hwmon/lm90.c
LM95234 HARDWARE MONITOR DRIVER
M: Guenter Roeck <linux@roeck-us.net>
L: lm-sensors@lm-sensors.org
S: Maintained
F: Documentation/hwmon/lm95234
F: drivers/hwmon/lm95234.c
LME2510 MEDIA DRIVER LME2510 MEDIA DRIVER
M: Malcolm Priestley <tvboxspy@gmail.com> M: Malcolm Priestley <tvboxspy@gmail.com>
L: linux-media@vger.kernel.org L: linux-media@vger.kernel.org
...@@ -8182,6 +8189,13 @@ F: drivers/mmc/host/sh_mobile_sdhi.c ...@@ -8182,6 +8189,13 @@ F: drivers/mmc/host/sh_mobile_sdhi.c
F: include/linux/mmc/tmio.h F: include/linux/mmc/tmio.h
F: include/linux/mmc/sh_mobile_sdhi.h F: include/linux/mmc/sh_mobile_sdhi.h
TMP401 HARDWARE MONITOR DRIVER
M: Guenter Roeck <linux@roeck-us.net>
L: lm-sensors@lm-sensors.org
S: Maintained
F: Documentation/hwmon/tmp401
F: drivers/hwmon/tmp401.c
TMPFS (SHMEM FILESYSTEM) TMPFS (SHMEM FILESYSTEM)
M: Hugh Dickins <hughd@google.com> M: Hugh Dickins <hughd@google.com>
L: linux-mm@kvack.org L: linux-mm@kvack.org
......
...@@ -1414,14 +1414,18 @@ static int abituguru_probe(struct platform_device *pdev) ...@@ -1414,14 +1414,18 @@ static int abituguru_probe(struct platform_device *pdev)
pr_info("found Abit uGuru\n"); pr_info("found Abit uGuru\n");
/* Register sysfs hooks */ /* Register sysfs hooks */
for (i = 0; i < sysfs_attr_i; i++) for (i = 0; i < sysfs_attr_i; i++) {
if (device_create_file(&pdev->dev, res = device_create_file(&pdev->dev,
&data->sysfs_attr[i].dev_attr)) &data->sysfs_attr[i].dev_attr);
if (res)
goto abituguru_probe_error; goto abituguru_probe_error;
for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) }
if (device_create_file(&pdev->dev, for (i = 0; i < ARRAY_SIZE(abituguru_sysfs_attr); i++) {
&abituguru_sysfs_attr[i].dev_attr)) res = device_create_file(&pdev->dev,
&abituguru_sysfs_attr[i].dev_attr);
if (res)
goto abituguru_probe_error; goto abituguru_probe_error;
}
data->hwmon_dev = hwmon_device_register(&pdev->dev); data->hwmon_dev = hwmon_device_register(&pdev->dev);
if (!IS_ERR(data->hwmon_dev)) if (!IS_ERR(data->hwmon_dev))
......
...@@ -84,8 +84,10 @@ static int iio_hwmon_probe(struct platform_device *pdev) ...@@ -84,8 +84,10 @@ static int iio_hwmon_probe(struct platform_device *pdev)
return PTR_ERR(channels); return PTR_ERR(channels);
st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL); st = devm_kzalloc(dev, sizeof(*st), GFP_KERNEL);
if (st == NULL) if (st == NULL) {
return -ENOMEM; ret = -ENOMEM;
goto error_release_channels;
}
st->channels = channels; st->channels = channels;
...@@ -159,7 +161,7 @@ static int iio_hwmon_probe(struct platform_device *pdev) ...@@ -159,7 +161,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
error_remove_group: error_remove_group:
sysfs_remove_group(&dev->kobj, &st->attr_group); sysfs_remove_group(&dev->kobj, &st->attr_group);
error_release_channels: error_release_channels:
iio_channel_release_all(st->channels); iio_channel_release_all(channels);
return ret; return ret;
} }
......
...@@ -3705,8 +3705,10 @@ static int nct6775_probe(struct platform_device *pdev) ...@@ -3705,8 +3705,10 @@ static int nct6775_probe(struct platform_device *pdev)
data->have_temp |= 1 << i; data->have_temp |= 1 << i;
data->have_temp_fixed |= 1 << i; data->have_temp_fixed |= 1 << i;
data->reg_temp[0][i] = reg_temp_alternate[i]; data->reg_temp[0][i] = reg_temp_alternate[i];
data->reg_temp[1][i] = reg_temp_over[i]; if (i < num_reg_temp) {
data->reg_temp[2][i] = reg_temp_hyst[i]; data->reg_temp[1][i] = reg_temp_over[i];
data->reg_temp[2][i] = reg_temp_hyst[i];
}
data->temp_src[i] = i + 1; data->temp_src[i] = i + 1;
continue; continue;
} }
......
...@@ -240,7 +240,7 @@ static struct tmp401_data *tmp401_update_device(struct device *dev) ...@@ -240,7 +240,7 @@ static struct tmp401_data *tmp401_update_device(struct device *dev)
mutex_lock(&data->update_lock); mutex_lock(&data->update_lock);
next_update = data->last_updated + next_update = data->last_updated +
msecs_to_jiffies(data->update_interval) + 1; msecs_to_jiffies(data->update_interval);
if (time_after(jiffies, next_update) || !data->valid) { if (time_after(jiffies, next_update) || !data->valid) {
if (data->kind != tmp432) { if (data->kind != tmp432) {
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册