slimbus: qcom-ngd-ctrl: Free txn tid in delayed interrupt scenario

When the interrupts are delayed slim_do_transfer returns
timeout, but the txn tid is not freed. Due to which later
invalid tid is processed in the rx path resulting in crash.

Free tid in slim_do_transfer upon timeout due to delayed
interrupt to avoid crash.

Change-Id: Iae07e5c8366a333f39e57882f9cff240132c457f
Signed-off-by: Visweswara Tanuku <quic_vtanuku@quicinc.com>
This commit is contained in:
Visweswara Tanuku 2024-06-10 21:35:25 -07:00
parent e60961957c
commit d7a8f53012

View File

@ -171,6 +171,9 @@ int slim_do_transfer(struct slim_controller *ctrl, struct slim_msg_txn *txn)
ret = ctrl->xfer_msg(ctrl, txn);
if (ret == -ETIMEDOUT)
slim_free_txn_tid(ctrl, txn);
if (!ret && need_tid && !txn->msg->comp) {
unsigned long ms = txn->rl + HZ;