mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
hwmon: (sht4x) Convert update_interval to jiffies in pending data check
In sht4x_read_values(), the check for whether a pending post-heater
measurement is still fresh compares get_jiffies_64() against
data->heating_complete + data->update_interval. However,
data->heating_complete is stored in jiffies whereas data->update_interval
is stored in milliseconds.
Whenever HZ != 1000, adding data->update_interval directly without
msecs_to_jiffies() mixes incompatible time units. For example, with the
default 2000 ms update_interval, the validity window is inflated to 8
seconds at HZ=250 and 20 seconds at HZ=100 instead of 2 seconds. A read
within that extended window skips triggering a fresh measurement and
instead returns and caches the stale post-heating measurement left in the
sensor's output buffer.
Convert data->update_interval to jiffies using msecs_to_jiffies() when
computing the pending measurement expiration deadline, matching the
next_update calculation right below it.
Reported-by: Sashiko <sashiko-bot@kernel.org>
Fixes: 0eed6fc3d2 ("hwmon: (sht4x): add heater support")
Cc: stable@vger.kernel.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
9a6aa085c9
commit
1a30ea0be6
|
|
@ -111,7 +111,9 @@ static int sht4x_read_values(struct sht4x_data *data)
|
|||
}
|
||||
|
||||
if (data->data_pending &&
|
||||
time_before64(get_jiffies_64(), data->heating_complete + data->update_interval)) {
|
||||
time_before64(get_jiffies_64(),
|
||||
data->heating_complete +
|
||||
msecs_to_jiffies(data->update_interval))) {
|
||||
data->data_pending = false;
|
||||
} else {
|
||||
next_update = data->last_updated +
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user