* [PATCH] iio: adc: ad7779: Fix trigger reference leak in ad7779_setup_without_backend()
@ 2026-09-16 16:19 Wentao Liang
2026-09-17 0:28 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: Wentao Liang @ 2026-09-16 16:19 UTC (permalink / raw)
To: Michael.Hennerich
Cc: andy, dlechner, jic23, lars, linux-iio, linux-kernel, nuno.sa,
ramona.nechita, Wentao Liang, stable
The reference taken with iio_trigger_get() is only dropped by
iio_dev_release() when INDIO_BUFFER_TRIGGERED is set. If
devm_iio_triggered_buffer_setup() fails before setting that mode, the
reference acquired for indio_dev->trig leaks. Move the
iio_trigger_get() after the buffer setup succeeds.
Fixes: c9a3f8c7bfcb ("drivers: iio: adc: add support for ad777x family")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
drivers/iio/adc/ad7779.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/iio/adc/ad7779.c b/drivers/iio/adc/ad7779.c
index 695cc79e78da..76834275b1ca 100644
--- a/drivers/iio/adc/ad7779.c
+++ b/drivers/iio/adc/ad7779.c
@@ -850,8 +850,6 @@ static int ad7779_setup_without_backend(struct ad7779_state *st, struct iio_dev
if (ret)
return ret;
- indio_dev->trig = iio_trigger_get(st->trig);
-
init_completion(&st->completion);
ret = devm_iio_triggered_buffer_setup(dev, indio_dev,
@@ -861,6 +859,8 @@ static int ad7779_setup_without_backend(struct ad7779_state *st, struct iio_dev
if (ret)
return ret;
+ indio_dev->trig = iio_trigger_get(st->trig);
+
return ad7779_spi_write_mask(st, AD7779_REG_DOUT_FORMAT,
AD7779_DCLK_CLK_DIV_MSK,
FIELD_PREP(AD7779_DCLK_CLK_DIV_MSK, 7));
--
2.34.1
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] iio: adc: ad7779: Fix trigger reference leak in ad7779_setup_without_backend()
2026-09-16 16:19 [PATCH] iio: adc: ad7779: Fix trigger reference leak in ad7779_setup_without_backend() Wentao Liang
@ 2026-09-17 0:28 ` Jonathan Cameron
2026-11-06 11:38 ` Wentao Liang
0 siblings, 1 reply; 3+ messages in thread
From: Jonathan Cameron @ 2026-09-17 0:28 UTC (permalink / raw)
To: Wentao Liang
Cc: Michael.Hennerich, andy, dlechner, lars, linux-iio, linux-kernel,
nuno.sa, ramona.nechita, stable
On Wed, 16 Sep 2026 16:19:17 +0000
Wentao Liang <vulab@iscas.ac.cn> wrote:
> The reference taken with iio_trigger_get() is only dropped by
> iio_dev_release() when INDIO_BUFFER_TRIGGERED is set. If
> devm_iio_triggered_buffer_setup() fails before setting that mode, the
> reference acquired for indio_dev->trig leaks. Move the
> iio_trigger_get() after the buffer setup succeeds.
>
> Fixes: c9a3f8c7bfcb ("drivers: iio: adc: add support for ad777x family")
> Cc: stable@vger.kernel.org
> Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Same again. Not this solution. Note I'm replying to all these patches
simply because others may open just one of them and not see the earlier
replies.
This is why you send one test patch (or at least put similar changes in a
series).
When something has been obviously wrong for a while in the world of LLM
review, it is worth checking earlier discussions to see why.
Jonathan
> ---
> drivers/iio/adc/ad7779.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/adc/ad7779.c b/drivers/iio/adc/ad7779.c
> index 695cc79e78da..76834275b1ca 100644
> --- a/drivers/iio/adc/ad7779.c
> +++ b/drivers/iio/adc/ad7779.c
> @@ -850,8 +850,6 @@ static int ad7779_setup_without_backend(struct ad7779_state *st, struct iio_dev
> if (ret)
> return ret;
>
> - indio_dev->trig = iio_trigger_get(st->trig);
> -
> init_completion(&st->completion);
>
> ret = devm_iio_triggered_buffer_setup(dev, indio_dev,
> @@ -861,6 +859,8 @@ static int ad7779_setup_without_backend(struct ad7779_state *st, struct iio_dev
> if (ret)
> return ret;
>
> + indio_dev->trig = iio_trigger_get(st->trig);
> +
> return ad7779_spi_write_mask(st, AD7779_REG_DOUT_FORMAT,
> AD7779_DCLK_CLK_DIV_MSK,
> FIELD_PREP(AD7779_DCLK_CLK_DIV_MSK, 7));
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] iio: adc: ad7779: Fix trigger reference leak in ad7779_setup_without_backend()
2026-09-17 0:28 ` Jonathan Cameron
@ 2026-11-06 11:38 ` Wentao Liang
0 siblings, 0 replies; 3+ messages in thread
From: Wentao Liang @ 2026-11-06 11:38 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Michael.Hennerich, andy, dlechner, lars, linux-iio, linux-kernel,
nuno.sa, ramona.nechita, stable
Hi Jonathan,
I am sorry for the very late reply and for making you repeat the same
explanation across these threads.
I should have checked the earlier discussions and waited for feedback on
one representative patch before sending the other similar changes.
I understand that moving iio_trigger_get() past buffer setup introduces
an ordering constraint that is not an acceptable solution.
Please disregard this patch; I will not resend this approach as v2.
Going forward, I will check existing discussions before submitting and
will not send batches of patches beyond my capacity to review and
follow up on personally. Thank you for explaining the submission process.
For transparency, we use static analysis tools to identify candidates,
then DeepSeek and GPT-6.1 Sol to assist with auditing and preparing fixes.
I am responsible for verifying the findings and changes before submission.
Best regards,
Wentao
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-11-06 11:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-16 16:19 [PATCH] iio: adc: ad7779: Fix trigger reference leak in ad7779_setup_without_backend() Wentao Liang
2026-09-17 0:28 ` Jonathan Cameron
2026-11-06 11:38 ` Wentao Liang
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®