diff options
author | Yang Xiwen <forbidden405@outlook.com> | 2025-06-15 19:01:10 +0300 |
---|---|---|
committer | Andi Shyti <andi.shyti@kernel.org> | 2025-07-24 01:38:01 +0300 |
commit | a7982a14b3012527a9583d12525cd0dc9f8d8934 (patch) | |
tree | 419b6998a44d8764dc1b7d70a86e69fbca536841 /lib/crypto/mpi/mpi-sub-ui.c | |
parent | a663b3c47ab10f66130818cf94eb59c971541c3f (diff) | |
download | linux-a7982a14b3012527a9583d12525cd0dc9f8d8934.tar.xz |
i2c: qup: jump out of the loop in case of timeout
Original logic only sets the return value but doesn't jump out of the
loop if the bus is kept active by a client. This is not expected. A
malicious or buggy i2c client can hang the kernel in this case and
should be avoided. This is observed during a long time test with a
PCA953x GPIO extender.
Fix it by changing the logic to not only sets the return value, but also
jumps out of the loop and return to the caller with -ETIMEDOUT.
Fixes: fbfab1ab0658 ("i2c: qup: reorganization of driver code to remove polling for qup v1")
Signed-off-by: Yang Xiwen <forbidden405@outlook.com>
Cc: <stable@vger.kernel.org> # v4.17+
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20250616-qca-i2c-v1-1-2a8d37ee0a30@outlook.com
Diffstat (limited to 'lib/crypto/mpi/mpi-sub-ui.c')
0 files changed, 0 insertions, 0 deletions