summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-03-17 05:37:15 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-03-17 05:37:15 +0100
commit64612eb92d0e6f86ead2d141bb2107c41d7a062e (patch)
treea58b751082237f8a321d1d4f559f1f7eff5fa2b9
parent3b18ccb5472b78c48b03b98e8a0ef467c3e0a175 (diff)
parent33c145297840dddf0dc23d5822159c26aba920d3 (diff)
Merge tag 'w1-drv-6.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1 into char-misc-next
Krzysztof writes: 1-Wire bus drivers for v6.14 1. W1 UART: Fix theoretical NULL pointer dereference in probe due to serdev ops being set too late. That's said such scenario is unlikely to happen as serdev read would need to happen before writing anything. 2. W1 therm: Simplify with HWMON_CHANNEL_INFO. * tag 'w1-drv-6.15' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux-w1: w1: w1_therm: w1: Use HWMON_CHANNEL_INFO macro to simplify code w1: fix NULL pointer dereference in probe
-rw-r--r--drivers/w1/masters/w1-uart.c4
-rw-r--r--drivers/w1/slaves/w1_therm.c12
2 files changed, 3 insertions, 13 deletions
diff --git a/drivers/w1/masters/w1-uart.c b/drivers/w1/masters/w1-uart.c
index a31782e56ba7..c87eea347806 100644
--- a/drivers/w1/masters/w1-uart.c
+++ b/drivers/w1/masters/w1-uart.c
@@ -372,11 +372,11 @@ static int w1_uart_probe(struct serdev_device *serdev)
init_completion(&w1dev->rx_byte_received);
mutex_init(&w1dev->rx_mutex);
+ serdev_device_set_drvdata(serdev, w1dev);
+ serdev_device_set_client_ops(serdev, &w1_uart_serdev_ops);
ret = w1_uart_serdev_open(w1dev);
if (ret < 0)
return ret;
- serdev_device_set_drvdata(serdev, w1dev);
- serdev_device_set_client_ops(serdev, &w1_uart_serdev_ops);
return w1_add_master_device(&w1dev->bus);
}
diff --git a/drivers/w1/slaves/w1_therm.c b/drivers/w1/slaves/w1_therm.c
index c85e80c7e130..9ccedb3264fb 100644
--- a/drivers/w1/slaves/w1_therm.c
+++ b/drivers/w1/slaves/w1_therm.c
@@ -444,18 +444,8 @@ static int w1_read(struct device *dev, enum hwmon_sensor_types type,
}
}
-static const u32 w1_temp_config[] = {
- HWMON_T_INPUT,
- 0
-};
-
-static const struct hwmon_channel_info w1_temp = {
- .type = hwmon_temp,
- .config = w1_temp_config,
-};
-
static const struct hwmon_channel_info * const w1_info[] = {
- &w1_temp,
+ HWMON_CHANNEL_INFO(temp, HWMON_T_INPUT),
NULL
};