rpmsg: glink: Cancel pending intent requests at removal
authorBjorn Andersson <quic_bjorande@quicinc.com>
Mon, 13 Feb 2023 15:52:15 +0000 (07:52 -0800)
committerBjorn Andersson <andersson@kernel.org>
Tue, 14 Feb 2023 16:19:38 +0000 (08:19 -0800)
commitfb23b97346f9aaa9f7b7a996e7baf066c88d69bd
tree71264528a3b1ad4ca9e7414df639ca0fa42f4be5
parent9c96bacf1af51bc71898f31e025f08338c6ca4da
rpmsg: glink: Cancel pending intent requests at removal

During removal of the glink edge interrupts are disabled and no more
incoming messages are being serviced. In addition to the remote endpoint
being defunct that means that any outstanding requests for intents will
not be serviced, and qcom_glink_request_intent() will blindly wait for
up to 10 seconds.

Mark the intent request as not granted and complete the intent request
completion to fail the waiting client immediately.

Once the current intent request is failed, any potential clients waiting
for the intent request mutex will not enter the same wait, as the
qcom_glink_tx() call will fail fast.

Reviewed-by: Chris Lew <quic_clew@quicinc.com>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213155215.1237059-7-quic_bjorande@quicinc.com
drivers/rpmsg/qcom_glink_native.c