From: David Lechner <dlechner@baylibre.com>
To: "Nuno Sá" <noname.nuno@gmail.com>,
"Jonathan Cameron" <jic23@kernel.org>,
"Andy Shevchenko" <andy.shevchenko@gmail.com>
Cc: "Kurt Borja" <kuurtb@gmail.com>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Lars-Peter Clausen" <lars@metafoo.de>,
"Michael Hennerich" <Michael.Hennerich@analog.com>,
"Benson Leung" <bleung@chromium.org>,
"Antoniu Miclaus" <antoniu.miclaus@analog.com>,
"Gwendal Grignou" <gwendal@chromium.org>,
"Shrikant Raskar" <raskar.shree97@gmail.com>,
"Per-Daniel Olsson" <perdaniel.olsson@axis.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
"Guenter Roeck" <groeck@chromium.org>,
"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org,
chrome-platform@lists.linux.dev
Subject: Re: [PATCH RFC 0/6] iio: core: Introduce cleanup.h support for mode locks
Date: Tue, 9 Dec 2025 11:05:22 -0600 [thread overview]
Message-ID: <7aeab2a4-72d9-452f-af86-1e44d5133b67@baylibre.com> (raw)
In-Reply-To: <54483083c42cf7500239ebb7c0d32d25f11bb02f.camel@gmail.com>
On 12/9/25 4:34 AM, Nuno Sá wrote:
> On Sat, 2025-12-06 at 18:46 +0000, Jonathan Cameron wrote:
>> On Thu, 4 Dec 2025 17:07:28 +0200
>> Andy Shevchenko <andy.shevchenko@gmail.com> wrote:
>>
>>> On Thu, Dec 4, 2025 at 4:35 PM Nuno Sá <noname.nuno@gmail.com> wrote:
>>>> On Wed, 2025-12-03 at 14:18 -0500, Kurt Borja wrote:
>>>>>
>>>>> In a recent driver review discussion [1], Andy Shevchenko suggested we
>>>>> add cleanup.h support for the lock API:
>>>>>
>>>>> iio_device_claim_{direct,buffer_mode}().
>>>>
>>>> We already went this patch and then reverted it. I guess before we did not had
>>>> ACQUIRE() and ACQUIRE_ERR() but I'm not sure that makes it much better. Looking at the
>>>> last two patches on how we are handling the buffer mode stuff, I'm really not convinced...
>>>>
>>>> Also, I have doubts sparse can keep up with the __cleanup stuff so I'm not sure the
>>>> annotations much make sense if we go down this path. Unless we want to use both
>>>> approaches which is also questionable.
>>>
>>> This, indeed, needs a (broader) discussion and I appreciate that Kurt
>>> sent this RFC. Jonathan, what's your thoughts?
>>
>> I was pretty heavily involved in discussions around ACQUIRE() and it's use
>> in CXL and runtime PM (though that's still evolving with Rafael trying
>> to improve the syntax a little). As you might guess I did have this use
>> in mind during those discussions.
>>
>> As far as I know by avoiding the for loop complexity of the previous
>> try we made and looking (under the hood) like guard() it should be much
>> easier and safer to use. Looking at this was on my list, so I'm very happy
>> to see this series from Kurt exploring how it would be done.
>>
>> Sparse wise there is no support for now for any of the cleanup.h magic
>> other than ignoring it. That doesn't bother me that much though as these
>> macros create more or less hidden local variables that are hard to mess
>> with in incorrect ways.
>>
>> So in general I'm very much in favour of this for same reasons I jumped
>> in last time (which turned out to be premature!)
>>
>> This will be particularly useful in avoiding the need for helper functions
>> in otherwise simple code flows.
>>
>
> Ok, it seems we are going down the path to introduce this again. I do agree the new ACQUIRE()
> macros make things better (btw, I would be in favor of something similar to pm runtime). Though
> I'm still a bit worried about the device lock helper (the iio_device_claim one). We went through
> some significant work in order to make mlock private (given historical abuse of it) and this
> is basically making it public again. So I would like to either think a bit harder to see if we
> can avoid it or just keep the code in patches 5 and 6 as is (even though the dance in there is
> really not pretty).
>
> At the very least I would like to see a big, fat comment stating that lock is not to be randomly
> used by drivers to protect their own internal data structures and state.
>
> - Nuno Sá
Due to the way that conditional guards only extend regular guards, I don't
think there is a way to not expose the basic mlock wrapper. So "don't use this
unless you really know what you are doing" docs seem like the best option.
next prev parent reply other threads:[~2025-12-09 17:05 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 19:18 [PATCH RFC 0/6] iio: core: Introduce cleanup.h support for mode locks Kurt Borja
2025-12-03 19:18 ` [PATCH RFC 1/6] iio: core: Match iio_device_claim_*() return semantics Kurt Borja
2025-12-04 14:23 ` Nuno Sá
2025-12-04 15:05 ` Andy Shevchenko
2025-12-06 18:07 ` Jonathan Cameron
2025-12-04 17:27 ` Kurt Borja
2025-12-06 18:05 ` Jonathan Cameron
2025-12-07 15:59 ` Kurt Borja
2025-12-03 19:18 ` [PATCH RFC 2/6] iio: core: Match iio_device_claim_*() naming Kurt Borja
2025-12-03 21:50 ` David Lechner
2025-12-04 17:35 ` Kurt Borja
2025-12-06 18:11 ` Jonathan Cameron
2025-12-03 19:18 ` [PATCH RFC 3/6] iio: core: Add cleanup.h support for iio_device_claim_*() Kurt Borja
2025-12-03 21:50 ` David Lechner
2025-12-03 22:34 ` David Lechner
2025-12-04 17:18 ` Kurt Borja
2025-12-04 17:36 ` Andy Shevchenko
2025-12-06 18:43 ` Jonathan Cameron
2025-12-06 20:40 ` Andy Shevchenko
2025-12-07 16:00 ` Kurt Borja
2025-12-06 18:20 ` Jonathan Cameron
2025-12-07 15:59 ` Kurt Borja
2025-12-03 19:18 ` [PATCH RFC 4/6] iio: light: vcnl4000: Use cleanup.h for IIO locks Kurt Borja
2025-12-03 22:19 ` David Lechner
2025-12-03 19:18 ` [PATCH RFC 5/6] iio: health: max30102: " Kurt Borja
2025-12-03 21:52 ` David Lechner
2025-12-04 17:07 ` Kurt Borja
2025-12-04 17:35 ` David Lechner
2025-12-04 17:47 ` Kurt Borja
2025-12-06 18:17 ` Jonathan Cameron
2025-12-07 15:59 ` Kurt Borja
2025-12-03 19:18 ` [PATCH RFC 6/6] iio: light: opt4060: " Kurt Borja
2025-12-03 22:40 ` David Lechner
2025-12-04 17:23 ` Kurt Borja
2025-12-04 14:42 ` Nuno Sá
2025-12-04 17:31 ` Kurt Borja
2025-12-04 14:36 ` [PATCH RFC 0/6] iio: core: Introduce cleanup.h support for mode locks Nuno Sá
2025-12-04 15:07 ` Andy Shevchenko
2025-12-06 18:46 ` Jonathan Cameron
2025-12-07 16:00 ` Kurt Borja
2025-12-09 10:34 ` Nuno Sá
2025-12-09 17:05 ` David Lechner [this message]
2025-12-10 9:17 ` Nuno Sá
2025-12-10 18:04 ` Jonathan Cameron
2025-12-04 17:33 ` Kurt Borja
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=7aeab2a4-72d9-452f-af86-1e44d5133b67@baylibre.com \
--to=dlechner@baylibre.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=Michael.Hennerich@analog.com \
--cc=andriy.shevchenko@intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=andy@kernel.org \
--cc=antoniu.miclaus@analog.com \
--cc=bleung@chromium.org \
--cc=chrome-platform@lists.linux.dev \
--cc=groeck@chromium.org \
--cc=gwendal@chromium.org \
--cc=jic23@kernel.org \
--cc=kuurtb@gmail.com \
--cc=lars@metafoo.de \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=noname.nuno@gmail.com \
--cc=nuno.sa@analog.com \
--cc=perdaniel.olsson@axis.com \
--cc=raskar.shree97@gmail.com \
/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