In the Linux kernel, the following vulnerability has been resolved:
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. crostypecaltmodework() acquires the mutex
2. typecaltmodevdm() -> dpaltmodevdm() ->
3. typecaltmodeexit() -> crostypecaltmodeexit()
4. crostypecaltmode_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.