usb: typec: ucsi: displayport: Fix potential deadlock
authorHeikki Krogerus <heikki.krogerus@linux.intel.com>
Tue, 7 May 2024 13:43:16 +0000 (16:43 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 May 2024 09:36:26 +0000 (10:36 +0100)
commitb791a67f68121d69108640d4a3e591d210ffe850
tree1eaba8fe1450ecf2fe7b21ff0e2be411a9183c54
parent718b36a7b49acbba36546371db2d235271ceb06c
usb: typec: ucsi: displayport: Fix potential deadlock

The function ucsi_displayport_work() does not access the
connector, so it also must not acquire the connector lock.

This fixes a potential deadlock scenario:

ucsi_displayport_work() -> lock(&con->lock)
typec_altmode_vdm()
dp_altmode_vdm()
dp_altmode_work()
typec_altmode_enter()
ucsi_displayport_enter() -> lock(&con->lock)

Reported-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Fixes: af8622f6a585 ("usb: typec: ucsi: Support for DisplayPort alt mode")
Cc: stable@vger.kernel.org
Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://lore.kernel.org/r/20240507134316.161999-1-heikki.krogerus@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/ucsi/displayport.c