From: Zongmin Zhou <min_halo@163.com>
To: Srinivas Kandagatla <srini@kernel.org>, gregkh@linuxfoundation.org
Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
Zongmin Zhou <zhouzongmin@kylinos.cn>
Subject: Re: [PATCH] slimbus: messaging: fix leaked PM vote on tid allocation failure
Date: Tue, 22 Sep 2026 15:32:53 +0800 [thread overview]
Message-ID: <e76a151b-4dde-4bdd-91ee-e025e9bcc994@163.com> (raw)
In-Reply-To: <d885255a-c3f6-4c96-8ebb-f611ffa29418@kernel.org>
在 2026/9/18 06:10, Srinivas Kandagatla 写道:
>
> On 8/27/26 3:14 AM, Zongmin Zhou wrote:
>> From: Zongmin Zhou <zhouzongmin@kylinos.cn>
>>
>> In slim_do_transfer(), when a transaction needs a tid and
>> slim_alloc_txn_tid() fails, the function returns directly instead of
>> jumping to slim_xfer_err. The runtime PM vote taken earlier with
>> pm_runtime_get_sync() is then never released, leaving the controller
>> permanently powered up.
>>
>> As txn->tid is still 0 at that point, jumping to slim_xfer_err drops
>> the vote exactly like it is done for other failed transactions.
>>
Hi Srinivas,
Thanks for the review.
> Patch itself looks fine, was this bug hit on real hardware or is this
> generated from some AI.
Found during code review while porting patches, not on real hardware.
The trigger requires an exhausted tid space, which is unlikely to occur
naturally.
>
> How are you testing this patch?
Tested in a VM with a stub controller that exhausts the tid space
(255 allocations, SLIM_MAX_TIDS is 256) and then issues a need_tid
transfer, so slim_alloc_txn_tid() fails with -ENOSPC inside
slim_do_transfer():
unpatched: slim_do_transfer() returns -ENOSPC, usage_count stays 1,
device never suspends
patched: same return value, usage_count 0, device autosuspends
>
>> Fixes: d3062a2109309 ("slimbus: messaging: add slim_alloc/free_txn_tid()")
> Missing CC stable
Will add in v2, thanks.
>> Signed-off-by: Zongmin Zhou <zhouzongmin@kylinos.cn>
>> ---
>> drivers/slimbus/messaging.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/slimbus/messaging.c b/drivers/slimbus/messaging.c
>> index e2dbe4a..ee127ef 100644
>> --- a/drivers/slimbus/messaging.c
>> +++ b/drivers/slimbus/messaging.c
>> @@ -139,7 +139,7 @@ int slim_do_transfer(struct slim_controller *ctrl, struct slim_msg_txn *txn)
>> if (need_tid) {
>> ret = slim_alloc_txn_tid(ctrl, txn);
>> if (ret)
>> - return ret;
>> + goto slim_xfer_err;
>>
>> if (!txn->msg->comp)
>> txn->comp = &done;
next prev parent reply other threads:[~2026-09-22 7:33 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 2:14 [PATCH] slimbus: messaging: fix leaked PM vote on tid allocation failure Zongmin Zhou
2026-09-17 22:10 ` Srinivas Kandagatla
2026-09-22 7:32 ` Zongmin Zhou [this message]
2026-09-24 6:28 ` [PATCH v2] " Zongmin Zhou
2026-09-25 8:32 ` Srinivas Kandagatla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e76a151b-4dde-4bdd-91ee-e025e9bcc994@163.com \
--to=min_halo@163.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=srini@kernel.org \
--cc=zhouzongmin@kylinos.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.