diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-03-17 05:37:15 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-03-17 05:37:15 +0100 |
commit | 64612eb92d0e6f86ead2d141bb2107c41d7a062e (patch) | |
tree | a58b751082237f8a321d1d4f559f1f7eff5fa2b9 | |
parent | 3b18ccb5472b78c48b03b98e8a0ef467c3e0a175 (diff) | |
parent | 33c145297840dddf0dc23d5822159c26aba920d3 (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.c | 4 | ||||
-rw-r--r-- | drivers/w1/slaves/w1_therm.c | 12 |
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 }; |