提交 8b8c877f 编写于 作者: L Linus Torvalds

Merge tag 'hwmon-for-linus-v4.6-rc2' of...

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

Pull hwmon fix from Guenter Roeck:
 "Fix crash due to NULL pointer access in max1111 driver"

* tag 'hwmon-for-linus-v4.6-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (max1111) Return -ENODEV from max1111_read_channel if not instantiated
...@@ -85,6 +85,9 @@ static struct max1111_data *the_max1111; ...@@ -85,6 +85,9 @@ static struct max1111_data *the_max1111;
int max1111_read_channel(int channel) int max1111_read_channel(int channel)
{ {
if (!the_max1111 || !the_max1111->spi)
return -ENODEV;
return max1111_read(&the_max1111->spi->dev, channel); return max1111_read(&the_max1111->spi->dev, channel);
} }
EXPORT_SYMBOL(max1111_read_channel); EXPORT_SYMBOL(max1111_read_channel);
...@@ -258,6 +261,9 @@ static int max1111_remove(struct spi_device *spi) ...@@ -258,6 +261,9 @@ static int max1111_remove(struct spi_device *spi)
{ {
struct max1111_data *data = spi_get_drvdata(spi); struct max1111_data *data = spi_get_drvdata(spi);
#ifdef CONFIG_SHARPSL_PM
the_max1111 = NULL;
#endif
hwmon_device_unregister(data->hwmon_dev); hwmon_device_unregister(data->hwmon_dev);
sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group); sysfs_remove_group(&spi->dev.kobj, &max1110_attr_group);
sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group); sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册