* [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
@ 2026-10-21 5:24 Rupesh Majhi
2026-10-21 14:23 ` Andy Shevchenko
2026-10-21 15:15 ` Bart Van Assche
0 siblings, 2 replies; 7+ messages in thread
From: Rupesh Majhi @ 2026-10-21 5:24 UTC (permalink / raw)
To: Andy Shevchenko, David Lechner, Jishnu Prakash, Jonathan Cameron,
Nuno Sá
Cc: linux-arm-msm, linux-iio, linux-kernel, Rupesh Majhi,
Marco Elver, Bart Van Assche
Since commit 5b63d0ae94cc ("compiler-context-analysis: Remove Sparse
support"), __acquires() and __releases() only feed context analysis.
Their argument is parsed before the function body, where only dev is in
scope, so with analysis enabled for this file the build fails:
error: use of undeclared identifier 'adc'
These helpers take and drop the lock for the ADC_TM driver, which only
sees their declarations in the header. Naming the lock there would
mean exposing struct adc5_chip, and with no annotation at all the
analysis flags the unbalanced locking. Mark both __context_unsafe().
Fixes: baff45179e90 ("iio: adc: Add support for QCOM PMIC5 Gen3 ADC")
Cc: Marco Elver <elver@google.com>
Cc: Bart Van Assche <bvanassche@acm.org>
Assisted-by: LLM
Signed-off-by: Rupesh Majhi <zoone.rupert@gmail.com>
---
v2: explain __context_unsafe() in commit message (Andy)
v1: https://lore.kernel.org/linux-iio/20261003214516.128573-1-zoone.rupert@gmail.com/
Found by building with CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y, which the
driver does not set today. Build tested only, no hardware here.
drivers/iio/adc/qcom-spmi-adc5-gen3.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/adc/qcom-spmi-adc5-gen3.c b/drivers/iio/adc/qcom-spmi-adc5-gen3.c
index c68c6c5f6aca..6a3cabedf4e8 100644
--- a/drivers/iio/adc/qcom-spmi-adc5-gen3.c
+++ b/drivers/iio/adc/qcom-spmi-adc5-gen3.c
@@ -663,7 +663,7 @@ static int adc5_gen3_add_aux_tm_device(struct adc5_chip *adc)
}
void adc5_gen3_mutex_lock(struct device *dev)
- __acquires(&adc->lock)
+ __context_unsafe(/* returns with adc->lock held */)
{
struct iio_dev *indio_dev = dev_get_drvdata(dev->parent);
struct adc5_chip *adc = iio_priv(indio_dev);
@@ -673,7 +673,7 @@ void adc5_gen3_mutex_lock(struct device *dev)
EXPORT_SYMBOL_NS_GPL(adc5_gen3_mutex_lock, "QCOM_SPMI_ADC5_GEN3");
void adc5_gen3_mutex_unlock(struct device *dev)
- __releases(&adc->lock)
+ __context_unsafe(/* releases adc->lock */)
{
struct iio_dev *indio_dev = dev_get_drvdata(dev->parent);
struct adc5_chip *adc = iio_priv(indio_dev);
base-commit: 43ffda3c7f8456bbe641ae8249a077a361b97880
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-21 5:24 [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers Rupesh Majhi
@ 2026-10-21 14:23 ` Andy Shevchenko
2026-10-21 15:15 ` Bart Van Assche
1 sibling, 0 replies; 7+ messages in thread
From: Andy Shevchenko @ 2026-10-21 14:23 UTC (permalink / raw)
To: Rupesh Majhi
Cc: Andy Shevchenko, David Lechner, Jishnu Prakash, Jonathan Cameron,
Nuno Sá,
linux-arm-msm, linux-iio, linux-kernel, Marco Elver,
Bart Van Assche
On Wed, Oct 21, 2026 at 08:24:35AM +0300, Rupesh Majhi wrote:
> Since commit 5b63d0ae94cc ("compiler-context-analysis: Remove Sparse
> support"), __acquires() and __releases() only feed context analysis.
> Their argument is parsed before the function body, where only dev is in
> scope, so with analysis enabled for this file the build fails:
>
> error: use of undeclared identifier 'adc'
>
> These helpers take and drop the lock for the ADC_TM driver, which only
> sees their declarations in the header. Naming the lock there would
> mean exposing struct adc5_chip, and with no annotation at all the
> analysis flags the unbalanced locking. Mark both __context_unsafe().
>
> Fixes: baff45179e90 ("iio: adc: Add support for QCOM PMIC5 Gen3 ADC")
> Cc: Marco Elver <elver@google.com>
> Cc: Bart Van Assche <bvanassche@acm.org>
Move Cc list after the '---' line (similar to the changelog block below),
it will have the same effect on email headers, but won't pollute the commit
message.
> Assisted-by: LLM
As of today we killed that tag, drop it.
> Signed-off-by: Rupesh Majhi <zoone.rupert@gmail.com>
> ---
> v2: explain __context_unsafe() in commit message (Andy)
> v1: https://lore.kernel.org/linux-iio/20261003214516.128573-1-zoone.rupert@gmail.com/
>
> Found by building with CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y, which the
> driver does not set today. Build tested only, no hardware here.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-21 5:24 [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers Rupesh Majhi
2026-10-21 14:23 ` Andy Shevchenko
@ 2026-10-21 15:15 ` Bart Van Assche
2026-10-21 18:19 ` Rupesh Majhi
1 sibling, 1 reply; 7+ messages in thread
From: Bart Van Assche @ 2026-10-21 15:15 UTC (permalink / raw)
To: Rupesh Majhi, Andy Shevchenko, David Lechner, Jishnu Prakash,
Jonathan Cameron, Nuno Sá
Cc: linux-arm-msm, linux-iio, linux-kernel, Marco Elver
On 10/20/26 10:24 PM, Rupesh Majhi wrote:
> Found by building with CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y, which the
> driver does not set today. Build tested only, no hardware here.
Why doesn't this patch set CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y?
Shouldn't that change be included in this patch?
Thanks,
Bart.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-21 15:15 ` Bart Van Assche
@ 2026-10-21 18:19 ` Rupesh Majhi
2026-10-21 19:24 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: Rupesh Majhi @ 2026-10-21 18:19 UTC (permalink / raw)
To: Bart Van Assche
Cc: Andy Shevchenko, David Lechner, Jishnu Prakash, Jonathan Cameron,
Nuno Sá,
Marco Elver, linux-arm-msm, linux-iio, linux-kernel
On Wed, Oct 21, 2026 at 08:15:20AM -0700, Bart Van Assche wrote:
> Why doesn't this patch set CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y?
> Shouldn't that change be included in this patch?
Fair point, without it nothing checks these annotations. v3 will enable
it as a separate patch, so the fix can still be backported on its own.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-21 18:19 ` Rupesh Majhi
@ 2026-10-21 19:24 ` Jonathan Cameron
2026-10-23 6:47 ` Rupesh Majhi
0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2026-10-21 19:24 UTC (permalink / raw)
To: Rupesh Majhi
Cc: Bart Van Assche, Andy Shevchenko, David Lechner, Jishnu Prakash,
Nuno Sá,
Marco Elver, linux-arm-msm, linux-iio, linux-kernel
On Wed, 21 Oct 2026 21:19:44 +0300
Rupesh Majhi <zoone.rupert@gmail.com> wrote:
> On Wed, Oct 21, 2026 at 08:15:20AM -0700, Bart Van Assche wrote:
> > Why doesn't this patch set CONTEXT_ANALYSIS_qcom-spmi-adc5-gen3.o=y?
> > Shouldn't that change be included in this patch?
>
> Fair point, without it nothing checks these annotations. v3 will enable
> it as a separate patch, so the fix can still be backported on its own.
I think it's unlikely an generic subsystem wide (or broader)
enablement of this will get back ported, so instead
let us treat this as a forwards looking move.
Drop the fixes tag and perhaps include a second patch enabling
the context analysis much more broadly.
I haven't tried yet, but I think you said not much broke?
Jonathan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-21 19:24 ` Jonathan Cameron
@ 2026-10-23 6:47 ` Rupesh Majhi
2026-10-24 2:30 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: Rupesh Majhi @ 2026-10-23 6:47 UTC (permalink / raw)
To: jic23
Cc: Bart Van Assche, Andy Shevchenko, David Lechner, Jishnu Prakash,
Nuno Sá,
Marco Elver, linux-arm-msm, linux-iio, linux-kernel
On Wed, Oct 21, 2026 at 08:24:33PM +0100, Jonathan Cameron wrote:
> I haven't tried yet, but I think you said not much broke?
I hadn't tried either, so I did: CONTEXT_ANALYSIS := y in every
drivers/iio Makefile, on testing, x86_64 allmodconfig, clang 23.
255 warnings.
240 come from iio_device_claim_direct() and
iio_device_try_claim_buffer_mode() lacking __cond_acquires(). The rest
are 4 in industrialio-core.c and 11 in five drivers, none of them real
bugs. With those annotated it builds clean.
v3 would be this fix without Fixes tag, core annotations, one patch per
driver, then enabling it for drivers/iio. Does that work for you?
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers
2026-10-23 6:47 ` Rupesh Majhi
@ 2026-10-24 2:30 ` Jonathan Cameron
0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2026-10-24 2:30 UTC (permalink / raw)
To: Rupesh Majhi
Cc: Bart Van Assche, Andy Shevchenko, David Lechner, Jishnu Prakash,
Nuno Sá,
Marco Elver, linux-arm-msm, linux-iio, linux-kernel
On Fri, 23 Oct 2026 09:47:09 +0300
Rupesh Majhi <zoone.rupert@gmail.com> wrote:
> On Wed, Oct 21, 2026 at 08:24:33PM +0100, Jonathan Cameron wrote:
> > I haven't tried yet, but I think you said not much broke?
>
> I hadn't tried either, so I did: CONTEXT_ANALYSIS := y in every
> drivers/iio Makefile, on testing, x86_64 allmodconfig, clang 23.
> 255 warnings.
>
> 240 come from iio_device_claim_direct() and
> iio_device_try_claim_buffer_mode() lacking __cond_acquires(). The rest
> are 4 in industrialio-core.c and 11 in five drivers, none of them real
> bugs. With those annotated it builds clean.
>
> v3 would be this fix without Fixes tag, core annotations, one patch per
> driver, then enabling it for drivers/iio. Does that work for you?
Yes, though no need to necessarily do it in one go if you
prefer smaller steps. I don't mind merging fixes like this
without the global enable. Maybe can do it on a directory first?
J
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-10-24 2:30 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-21 5:24 [PATCH v2] iio: adc: qcom-spmi-adc5-gen3: fix lock annotations on mutex helpers Rupesh Majhi
2026-10-21 14:23 ` Andy Shevchenko
2026-10-21 15:15 ` Bart Van Assche
2026-10-21 18:19 ` Rupesh Majhi
2026-10-21 19:24 ` Jonathan Cameron
2026-10-23 6:47 ` Rupesh Majhi
2026-10-24 2:30 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®