From: Joonwon Kang <joonwonkang@google.com>
To: jassisinghbrar@gmail.com
Cc: arnd@arndb.de, dianders@chromium.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] RFC: mailbox: Fix NULL message support in mbox_send_message()
Date: Fri, 13 Mar 2026 10:12:52 +0000 [thread overview]
Message-ID: <20260313101252.3031143-1-joonwonkang@google.com> (raw)
In-Reply-To: <20260310234616.334498-1-jassisinghbrar@gmail.com>
> The active_req field serves double duty as both the "is a TX in
> flight" flag (NULL means idle) and the storage for the in-flight
> message pointer. When a client sends NULL via mbox_send_message(),
> active_req is set to NULL, which the framework misinterprets as
> "no active request." This breaks the TX state machine by:
>
> - tx_tick() short-circuits on (!mssg), skipping the tx_done
> callback and the tx_complete completion
> - txdone_hrtimer() skips the channel entirely since active_req
> is NULL, so poll-based TX-done detection never fires.
>
> Fix this by introducing a MBOX_NO_MSG sentinel value that means
> "no active request," freeing NULL to be valid message data. The
> sentinel is internal to the mailbox core and is never exposed to
> controller drivers or clients.
The following drivers are currently using ->active_req which now could be
assigned MBOX_NO_MSG.
- drivers/mailbox/tegra-hsp.c
- drivers/mailbox/mtk-vcp-mailbox.c
One of them is using ->active_req to wait until the channel is empty. In
this case, strictly speaking, that controller driver should be aware of
the sentinel value MBOX_NO_MSG, which means the sentinel value should be
exposed to the controller. Or, if a future controller driver to come is to
use ->active_req for the same purpose for doorbell or non-doorbell, it
should also be aware of the sentinel value anyway.
However, I believe that it is not intuitive to the controller developers
that a pointer value could be other value than a real memory address,
NULL or error encoded value, which is -1(== MBOX_NO_MSG). For this reason,
I think it will be better to change the type of ->active_req to give a
better indication to the controller developers, e.g. to integer as in the
original patch
https://lore.kernel.org/all/20251126045926.2413532-1-joonwonkang@google.com/.
Or, we could change those drivers not to use ->active_req, hide
->active_req entirely in the mailbox core and keep this patch.
Thanks.
>
> The only tradeoff is that 'MBOX_NO_MSG' can not be used as a message
> by clients.
next prev parent reply other threads:[~2026-03-13 10:12 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-10 23:46 jassisinghbrar
2026-03-10 23:52 ` Doug Anderson
2026-03-10 23:58 ` Jassi Brar
2026-03-11 0:15 ` Doug Anderson
2026-03-11 0:45 ` Jassi Brar
2026-03-11 1:59 ` Doug Anderson
2026-03-11 3:41 ` Jassi Brar
2026-03-12 20:59 ` Doug Anderson
2026-03-13 8:44 ` Joonwon Kang
2026-03-13 16:19 ` Doug Anderson
2026-03-17 2:21 ` Jassi Brar
2026-03-12 10:19 ` [PATCH] RFC: mailbox: Fix NULL message support in Joonwon Kang
2026-03-12 7:34 ` Joonwon Kang
2026-03-13 10:12 ` Joonwon Kang [this message]
2026-03-13 16:23 ` [PATCH] RFC: mailbox: Fix NULL message support in mbox_send_message() Doug Anderson
2026-03-17 3:12 ` Jassi Brar
2026-03-17 5:03 ` Joonwon Kang
2026-03-20 21:03 ` Doug Anderson
2026-03-21 16:11 ` Jassi Brar
2026-03-26 7:31 ` Joonwon Kang
2026-03-27 18:29 ` Jassi Brar
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=20260313101252.3031143-1-joonwonkang@google.com \
--to=joonwonkang@google.com \
--cc=arnd@arndb.de \
--cc=dianders@chromium.org \
--cc=jassisinghbrar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®