From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 2/7] mailbox: arm_mhu: add driver for ARM MHU controller
Date: Wed, 04 Feb 2015 17:42:01 +0100 [thread overview]
Message-ID: <3540319.u6RL7AO77m@wuerfel> (raw)
In-Reply-To: <CAJe_ZhceTfWnSWmR+_T+G-BM00hAhTbn5OGwNiOZQFxy6f5QSw@mail.gmail.com>
On Wednesday 04 February 2015 21:03:50 Jassi Brar wrote:
> On 4 February 2015 at 20:18, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Wednesday 04 February 2015 20:04:21 Jassi Brar wrote:
> >>
> >> > Using the bits of the pointer as the message instead of pointing
> >> > to the message feels like an abuse of the API.
> >> >
> >> I can see your POV.
> >> Now consider a client, like mine, that sends a u32 value as the data.
> >> But unlike me, the client uses the mailbox api in 'async' mode i.e,
> >> register a callback function, submit a 32bit message and move on. It
> >> is perfectly doable, but doesn't kalloc'ing a u32 for each submission,
> >> seem overkill?
> >
> > That could easily be done by dereferencing the message data in the
> > function that queues the asynchronous message: instead of queuing
> > the pointer, you queue the data in the driver.
> >
> The 'void *data' is not queued in the driver, but in the API code. Or
> do I not get your point?
My mistake. If the API keeps that pointer after returning to the caller
here, this is indeed a problem for callers that have the message on the
stack.
The solution of storing the message in a circular buffer (in the API)
would in turn require knowing the length of the data.
Another option would be to require that the asynchronous version of the
interface cannot be used with on-stack data and requires the object
lifetime to be managed by the caller, which seems reasonable to me
since you already need the completion callback.
Arnd
next prev parent reply other threads:[~2015-02-04 16:42 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-03 9:21 [PATCH v5 0/7] Support for Fujitsu MB86S7X SoCs Vincent Yang
2015-02-03 9:27 ` [PATCH v5 1/7] ARM: Add platform support " Vincent Yang
2015-02-03 9:29 ` [PATCH v5 2/7] mailbox: arm_mhu: add driver for ARM MHU controller Vincent Yang
2015-02-03 12:32 ` Russell King - ARM Linux
2015-02-03 14:39 ` Jassi Brar
2015-02-03 14:46 ` Russell King - ARM Linux
2015-02-03 15:25 ` Arnd Bergmann
2015-02-04 3:27 ` Jassi Brar
2015-02-04 10:29 ` Arnd Bergmann
2015-02-04 14:34 ` Jassi Brar
2015-02-04 14:48 ` Arnd Bergmann
2015-02-04 15:33 ` Jassi Brar
2015-02-04 16:42 ` Arnd Bergmann [this message]
2015-02-05 5:08 ` Jassi Brar
2015-02-05 11:43 ` Arnd Bergmann
[not found] ` <CAJe_Zhf_WuRK2EE0Sj9ksXDDe5VA=DJ+H3eS4YRKpDZLdRRfow@mail.gmail.com>
2015-02-05 12:08 ` Russell King - ARM Linux
2015-02-05 12:31 ` Arnd Bergmann
2015-02-05 14:50 ` Jassi Brar
2015-02-04 15:09 ` Russell King - ARM Linux
2015-02-03 9:30 ` [PATCH v5 3/7] ARM: MB86S7X: Add MCPM support Vincent Yang
2015-02-03 9:31 ` [PATCH v5 4/7] clk: Add clock driver for mb86s7x Vincent Yang
2015-02-03 9:32 ` [PATCH v5 5/7] dt: mb86s7x: add dt files for MB86S7x evbs Vincent Yang
2015-02-03 9:34 ` [PATCH v5 6/7] of: add Fujitsu vendor prefix Vincent Yang
2015-02-03 9:35 ` [PATCH v5 7/7] ARM: MB86S7x: Add configs Vincent Yang
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=3540319.u6RL7AO77m@wuerfel \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.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