diff options
| author | Jensen Huang <[email protected]> | 2023-12-07 08:21:59 +0000 |
|---|---|---|
| committer | Wolfram Sang <[email protected]> | 2023-12-19 17:23:01 +0000 |
| commit | 19cde9c92b8d3b7ee555d0da3bcb0232d3a784f4 (patch) | |
| tree | f96a1a9e1427b5d1cb35d1f4a6ef09a63216a9fa /fs/ubifs/commit.c | |
| parent | i2c: qcom-geni: fix missing clk_disable_unprepare() and geni_se_resources_off() (diff) | |
| download | kernel-19cde9c92b8d3b7ee555d0da3bcb0232d3a784f4.tar.gz kernel-19cde9c92b8d3b7ee555d0da3bcb0232d3a784f4.zip | |
i2c: rk3x: fix potential spinlock recursion on poll
Possible deadlock scenario (on reboot):
rk3x_i2c_xfer_common(polling)
-> rk3x_i2c_wait_xfer_poll()
-> rk3x_i2c_irq(0, i2c);
--> spin_lock(&i2c->lock);
...
<rk3x i2c interrupt>
-> rk3x_i2c_irq(0, i2c);
--> spin_lock(&i2c->lock); (deadlock here)
Store the IRQ number and disable/enable it around the polling transfer.
This patch has been tested on NanoPC-T4.
Signed-off-by: Jensen Huang <[email protected]>
Reviewed-by: Heiko Stuebner <[email protected]>
Reviewed-by: Andi Shyti <[email protected]>
Signed-off-by: Wolfram Sang <[email protected]>
Diffstat (limited to 'fs/ubifs/commit.c')
0 files changed, 0 insertions, 0 deletions
