Re: [PATCH v3 00/15] mailbox: Stop sending NULL mailbox messages
From: Doug Anderson <dianders@chromium.org>
Date: 2026-03-09 15:19:49
Also in:
arm-scmi, imx, linux-acpi, linux-arm-msm, linux-remoteproc, linux-tegra, lkml
Hi Jassi, On Mon, Feb 16, 2026 at 10:11 AM Douglas Anderson [off-list ref] wrote:
As talked about in the first patch in this series, passing NULL as the
'mssg' argument to mbox_send_message() ends up causing confusion and
quirky behavior inside the mailbox core. Despite this, there are a
number of drivers that pass NULL.
It is plausible that some of the drivers passing NULL may have been
taking advantage of the quirks of the mailbox core. Specifically, they
may have been taking advantage that calling "tx_done" wasn't truly
necessary for NULL messages (it was a noop) or that NULL messages were
passed onto the mailbox controller right away without queuing.
This series introduces a new API call: mbox_ring_doorbell(). The new
API call tries to mimic the specific quirks that were helpful in the
old behavior and it's expected to be a nearly drop-in replacement.
There are some subtle differences between the new call and the old
behavior, but it's expected that all of these differences are only for
cases where the old behavior made little sense. The description of the
first patch details these differences.
The series attempts to convert all in-tree users to stop passing NULL
for mssg. As per above, there are some slight differences in behavior.
If any of the patches are causing problems, they can safely be
reverted while debugging the problems. Eventually, all code should be
converted over to stop passing NULL mssg.
Changes in v3:
- Suggest mbox_ring_doorbell in the warning message
- Updated patch description based on Cristian's response.
Changes in v2:
- Instead of just documenting NULL, introduce a new function
Douglas Anderson (15):
mailbox: Deprecate NULL mbox messages; Introduce mbox_ring_doorbell()
ACPI: PCC: Use mbox_ring_doorbell() instead of NULL message
firmware: arm_scmi: Use mbox_ring_doorbell() instead of NULL message
firmware: imx-dsp: Use mbox_ring_doorbell() instead of NULL message
firmware: tegra: bpmp: Use mbox_ring_doorbell() instead of NULL
message
irqchip/qcom-mpm: Use mbox_ring_doorbell() instead of NULL message
remoteproc: xlnx: Use mbox_ring_doorbell() instead of NULL message
rpmsg: qcom_glink_rpm: Use mbox_ring_doorbell() instead of NULL
message
rpmsg: glink: smem: Use mbox_ring_doorbell() instead of NULL message
rpmsg: qcom_smd: Use mbox_ring_doorbell() instead of NULL message
soc: qcom: aoss: Use mbox_ring_doorbell() instead of NULL message
soc: qcom: smp2p: Use mbox_ring_doorbell() instead of NULL message
soc: qcom: smsm: Use mbox_ring_doorbell() instead of NULL message
soc: ti: wkup_m3_ipc: Use mbox_ring_doorbell() instead of NULL message
drivers: firmware: xilinx: Use mbox_ring_doorbell() instead of NULL
messageJust checking to see if there is any addional changes you need from me on this series. It looks like it's -rc3 which is maybe an ideal time for this series to get some linux-next bake time? A good number of the patches in this series have Acks from maintainers so they could all go in your tree, I think. For those that don't, I guess worst case they just don't land right now and I can re-post them later. ...or if you think they would be OK to pickup that would be cool too. Thanks! -Doug