From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org,
linaro-mm-sig@lists.linaro.org
Subject: Re: [PATCH 2/2] dma-buf: clarify dma_fence_add_callback documentation
Date: Fri, 3 Sep 2021 10:22:00 +0200 [thread overview]
Message-ID: <992a4531-da58-d6e5-8cb2-a21407743397@gmail.com> (raw)
In-Reply-To: <YTDi8BNRXcEkf8a4@phenom.ffwll.local>
Am 02.09.21 um 16:42 schrieb Daniel Vetter:
> On Wed, Sep 01, 2021 at 02:02:40PM +0200, Christian König wrote:
>> That the caller doesn't need to keep a reference is rather
>> risky and not defensive at all.
>>
>> Especially dma_buf_poll got that horrible wrong, so better
>> remove that sentence and also clarify that the callback
>> might be called in atomic or interrupt context.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
> Still on the fence between documenting the precise rules and documenting
> the safe rules, but this is tricky enough that you got me convinced. Plus
> shorter, simpler, clearer kerneldoc has much better chances of being read,
> understood and followed.
I think that for documentation we should apply the same rules we have
for code.
E.g. keep it simple until you absolutely have to make it complex and
keep it defensive with the least probability for something to go wrong.
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Thanks,
Christian.
>
>> ---
>> drivers/dma-buf/dma-fence.c | 13 +++++--------
>> 1 file changed, 5 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/dma-buf/dma-fence.c b/drivers/dma-buf/dma-fence.c
>> index ce0f5eff575d..1e82ecd443fa 100644
>> --- a/drivers/dma-buf/dma-fence.c
>> +++ b/drivers/dma-buf/dma-fence.c
>> @@ -616,20 +616,17 @@ EXPORT_SYMBOL(dma_fence_enable_sw_signaling);
>> * @cb: the callback to register
>> * @func: the function to call
>> *
>> + * Add a software callback to the fence. The caller should keep a reference to
>> + * the fence.
>> + *
>> * @cb will be initialized by dma_fence_add_callback(), no initialization
>> * by the caller is required. Any number of callbacks can be registered
>> * to a fence, but a callback can only be registered to one fence at a time.
>> *
>> - * Note that the callback can be called from an atomic context. If
>> - * fence is already signaled, this function will return -ENOENT (and
>> + * If fence is already signaled, this function will return -ENOENT (and
>> * *not* call the callback).
>> *
>> - * Add a software callback to the fence. Same restrictions apply to
>> - * refcount as it does to dma_fence_wait(), however the caller doesn't need to
>> - * keep a refcount to fence afterward dma_fence_add_callback() has returned:
>> - * when software access is enabled, the creator of the fence is required to keep
>> - * the fence alive until after it signals with dma_fence_signal(). The callback
>> - * itself can be called from irq context.
>> + * Note that the callback can be called from an atomic context or irq context.
>> *
>> * Returns 0 in case of success, -ENOENT if the fence is already signaled
>> * and -EINVAL in case of error.
>> --
>> 2.25.1
>>
prev parent reply other threads:[~2021-09-03 8:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-01 12:02 Harden the dma-fence documentation a bit more Christian König
2021-09-01 12:02 ` [PATCH 1/2] dma-buf: clarify dma_fence_ops->wait documentation Christian König
2021-09-02 14:37 ` Daniel Vetter
2021-09-01 12:02 ` [PATCH 2/2] dma-buf: clarify dma_fence_add_callback documentation Christian König
2021-09-02 14:42 ` Daniel Vetter
2021-09-03 8:22 ` Christian König [this message]
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=992a4531-da58-d6e5-8cb2-a21407743397@gmail.com \
--to=ckoenig.leichtzumerken@gmail.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-media@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