mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-04 04:06:26 +00:00
slimbus: qcom-ngd-ctrl: Add timeout for wait operation
commit98241a774d
upstream. In current driver qcom_slim_ngd_up_worker() indefinitely waiting for ctrl->qmi_up completion object. This is resulting in workqueue lockup on Kthread. Added wait_for_completion_interruptible_timeout to allow the thread to wait for specific timeout period and bail out instead waiting infinitely. Fixes:a899d32486
("slimbus: qcom-ngd-ctrl: add Sub System Restart support") Cc: stable@vger.kernel.org Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org> Signed-off-by: Viken Dadhaniya <quic_vdadhani@quicinc.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org> Link: https://lore.kernel.org/r/20240430091238.35209-2-srinivas.kandagatla@linaro.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ba3c118cff
commit
2a47da1cd8
@ -1376,7 +1376,11 @@ static void qcom_slim_ngd_up_worker(struct work_struct *work)
|
||||
ctrl = container_of(work, struct qcom_slim_ngd_ctrl, ngd_up_work);
|
||||
|
||||
/* Make sure qmi service is up before continuing */
|
||||
wait_for_completion_interruptible(&ctrl->qmi_up);
|
||||
if (!wait_for_completion_interruptible_timeout(&ctrl->qmi_up,
|
||||
msecs_to_jiffies(MSEC_PER_SEC))) {
|
||||
dev_err(ctrl->dev, "QMI wait timeout\n");
|
||||
return;
|
||||
}
|
||||
|
||||
mutex_lock(&ctrl->ssr_lock);
|
||||
qcom_slim_ngd_enable(ctrl, true);
|
||||
|
Loading…
Reference in New Issue
Block a user