Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit f7e7f483 authored by Mayank Rana's avatar Mayank Rana
Browse files

xhci-hub: Handle error condition with xhci_stop_device



xhci_stop_device() is calling xhci_queue_stop_endpoint() multiple time
and doesn't check return value. xhci_queue_stop_endpoint() can return
error if xhci is already halted or not able to queue command.
xhci_stop_device() waits for stop command completion using
wait_for_completion which wouldn't be interrupted or completed if
queueing of command fails. It results into possible deadlock condition
where usb_disconnect() waits for this udev->lock which is already
acquired by caller of xhci_stop_device() which is set_port_feature().

Fix this issue by handling error condition and making sure that
xhci_stop_device() doesn't wait if queueing of command is failed.

Change-Id: Ica4db17afcd39a7e89fcf985f41760efd2756653
Signed-off-by: default avatarMayank Rana <mrana@codeaurora.org>
parent 79d42bd7
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment