diff options
| author | Yang Xiwen <[email protected]> | 2025-06-15 16:01:10 +0000 |
|---|---|---|
| committer | Andi Shyti <[email protected]> | 2025-07-23 22:38:01 +0000 |
| commit | a7982a14b3012527a9583d12525cd0dc9f8d8934 (patch) | |
| tree | 419b6998a44d8764dc1b7d70a86e69fbca536841 /tools/lib/bpf/bpf_prog_linfo.c | |
| parent | i2c: virtio: Avoid hang by using interruptible completion wait (diff) | |
| download | kernel-a7982a14b3012527a9583d12525cd0dc9f8d8934.tar.gz kernel-a7982a14b3012527a9583d12525cd0dc9f8d8934.zip | |
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 <[email protected]>
Cc: <[email protected]> # v4.17+
Signed-off-by: Andi Shyti <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'tools/lib/bpf/bpf_prog_linfo.c')
0 files changed, 0 insertions, 0 deletions
