]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
i2c: pnx: Fix timeout in wait functions
authorVladimir Riabchun <ferr.lambarginio@gmail.com>
Fri, 6 Dec 2024 23:19:34 +0000 (00:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Dec 2024 12:52:53 +0000 (13:52 +0100)
[ Upstream commit 7363f2d4c18557c99c536b70489187bb4e05c412 ]

Since commit f63b94be6942 ("i2c: pnx: Fix potential deadlock warning
from del_timer_sync() call in isr") jiffies are stored in
i2c_pnx_algo_data.timeout, but wait_timeout and wait_reset are still
using it as milliseconds. Convert jiffies back to milliseconds to wait
for the expected amount of time.

Fixes: f63b94be6942 ("i2c: pnx: Fix potential deadlock warning from del_timer_sync() call in isr")
Signed-off-by: Vladimir Riabchun <ferr.lambarginio@gmail.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-pnx.c

index d2c09b0fdf527503ea4f9a5e6ffc06d1bc9c16cf..ab87bef50402e024f9472a78ee36e105c8961bf7 100644 (file)
@@ -95,7 +95,7 @@ enum {
 
 static inline int wait_timeout(struct i2c_pnx_algo_data *data)
 {
-       long timeout = data->timeout;
+       long timeout = jiffies_to_msecs(data->timeout);
        while (timeout > 0 &&
                        (ioread32(I2C_REG_STS(data)) & mstatus_active)) {
                mdelay(1);
@@ -106,7 +106,7 @@ static inline int wait_timeout(struct i2c_pnx_algo_data *data)
 
 static inline int wait_reset(struct i2c_pnx_algo_data *data)
 {
-       long timeout = data->timeout;
+       long timeout = jiffies_to_msecs(data->timeout);
        while (timeout > 0 &&
                        (ioread32(I2C_REG_CTL(data)) & mcntrl_reset)) {
                mdelay(1);