Hi Douglas, On Sat, Feb 7, 2026 at 10:04 PM Douglas Anderson <[email protected]> wrote: > @@ -249,6 +255,28 @@ int mbox_send_message(struct mbox_chan *chan, void *mssg) > if (!chan || !chan->cl) > return -EINVAL; > > + /* > + * The mailbox core gets confused when mbox_send_message() is called > + * with NULL messages since the code directly stores messages in > + * `active_req` and assumes that a NULL `active_req` means no request > + * is active. This causes the core to call the mailbox controller a > + * second time even if the previous message hasn't finished and also > + * means the client's tx_done() callback will never be called. > However, > + * clients historically passed NULL anyway. Deprecate passing NULL > + * here by adding a warning. > + * > + * Clients who don't have a message should switch to using > + * mbox_ring_doorbell(), which explicitly documents the immediate > + * sending of doorbells, the lack of txdone, and what happens if you > + * mix doorbells and normal messages. > + * > + * TODO: when it's certain that all clients have transitioned, > consider > + * changing this to return -EINVAL. > + */ > + if (!mssg) > + dev_warn_once(chan->mbox->dev, > + "NULL mailbox messages are deprecated\n"); > Nit: maybe "NULL mailbox messages are deprecated, use mbox_ring_doorbell instead" ?
Thanks, Jassi

