diff options
| author | Andrei Kuchynski <[email protected]> | 2025-06-24 13:32:46 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2025-06-24 14:43:15 +0000 |
| commit | 099cf1fbb8afc3771f408109f62bdec66f85160e (patch) | |
| tree | 7a035e1348c2c2ffa969229da726fc7decc81f88 /drivers/fpga/altera-fpga2sdram.c | |
| parent | usb: typec: altmodes/displayport: do not index invalid pin_assignments (diff) | |
| download | kernel-099cf1fbb8afc3771f408109f62bdec66f85160e.tar.gz kernel-099cf1fbb8afc3771f408109f62bdec66f85160e.zip | |
usb: typec: displayport: Fix potential deadlock
The deadlock can occur due to a recursive lock acquisition of
`cros_typec_altmode_data::mutex`.
The call chain is as follows:
1. cros_typec_altmode_work() acquires the mutex
2. typec_altmode_vdm() -> dp_altmode_vdm() ->
3. typec_altmode_exit() -> cros_typec_altmode_exit()
4. cros_typec_altmode_exit() attempts to acquire the mutex again
To prevent this, defer the `typec_altmode_exit()` call by scheduling
it rather than calling it directly from within the mutex-protected
context.
Cc: stable <[email protected]>
Fixes: b4b38ffb38c9 ("usb: typec: displayport: Receive DP Status Update NAK request exit dp altmode")
Signed-off-by: Andrei Kuchynski <[email protected]>
Reviewed-by: Heikki Krogerus <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/fpga/altera-fpga2sdram.c')
0 files changed, 0 insertions, 0 deletions
