Thread (16 messages) 16 messages, 3 authors, 2025-12-03

Re: [PATCH] Revert "mailbox/pcc: support mailbox management of the shared buffer"

From: Jassi Brar <jassisinghbrar@gmail.com>
Date: 2025-09-30 00:19:38
Also in: lkml

On Mon, Sep 29, 2025 at 12:11 PM Adam Young
[off-list ref] wrote:
I posted a patch that addresses a few of these issues.  Here is a top
level description of the isse


The correct way to use the mailbox API would be to allocate a buffer for
the message,write the message to that buffer, and pass it in to
mbox_send_message.  The abstraction is designed to then provide
sequential access to the shared resource in order to send the messages
in order.  The existing PCC Mailbox implementation violated this
abstraction.  It requires each individual driver re-implement all of the
sequential ordering to access the shared buffer.

Why? Because they are all type 2 drivers, and the shared buffer is
64bits in length:  32bits for signature, 16 bits for command, 16 bits
for status.  It would be execessive to kmalloc a buffer of this size.

This shows the shortcoming of the mailbox API.  The mailbox API assumes
that there is a large enough buffer passed in to only provide a void *
pointer to the message.  Since the value is small enough to fit into a
single register, it the mailbox abstraction could provide an
implementation that stored a union of a void * and word.
Mailbox api does not make assumptions about the format of message
hence it simply asks for void*.
Probably I don't understand your requirement, but why can't you pass the pointer
to the 'word' you want to use otherwise?

-jassi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help