From: Jonathan Cameron <jic23@kernel.org>
To: Joshua Crofts via B4 Relay <devnull+joshua.crofts1.gmail.com@kernel.org>
Cc: joshua.crofts1@gmail.com, "David Lechner" <dlechner@baylibre.com>,
"Nuno Sá" <nuno.sa@analog.com>,
"Andy Shevchenko" <andy@kernel.org>,
linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 1/8] iio: light: opt3001: move device registration to end of probe()
Date: Wed, 27 May 2026 19:19:59 +0100 [thread overview]
Message-ID: <20260527191959.5e871e9a@jic23-huawei> (raw)
In-Reply-To: <20260525-opt3001-cleanup-v4-1-65b36a174f78@gmail.com>
On Mon, 25 May 2026 10:20:15 +0200
Joshua Crofts via B4 Relay <devnull+joshua.crofts1.gmail.com@kernel.org> wrote:
> From: Joshua Crofts <joshua.crofts1@gmail.com>
>
> Move IIO device registration to the end of the probe() function to
> follow standard driver teardown/setup ordering and improve driver
> logic. Additionally, switch devm_iio_device_register() to its
> unmanaged counterpart as current driver implementation mixes managed
> and unmanaged resources, causing potential resource leaks.
Not so much resource leaks, more that it is harder to review as
we have to reason about non trivial life time interactions.
Otherwise LGTM
Jonathan
>
> Also, add iio_device_unregister() to remove() function to correctly
> handle teardown.
>
> Suggested-by: Jonathan Cameron <jic23@kernel.org>
> Signed-off-by: Joshua Crofts <joshua.crofts1@gmail.com>
> ---
> drivers/iio/light/opt3001.c | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/iio/light/opt3001.c b/drivers/iio/light/opt3001.c
> index 03c7a87b4a8eef13bbdcf48dcaf969781aa76bd1..6a39f116f9312b6933e86d72aefbaaaf1769aca5 100644
> --- a/drivers/iio/light/opt3001.c
> +++ b/drivers/iio/light/opt3001.c
> @@ -874,12 +874,6 @@ static int opt3001_probe(struct i2c_client *client)
> iio->modes = INDIO_DIRECT_MODE;
> iio->info = &opt3001_info;
>
> - ret = devm_iio_device_register(dev, iio);
> - if (ret) {
> - dev_err(dev, "failed to register IIO device\n");
> - return ret;
> - }
> -
> /* Make use of INT pin only if valid IRQ no. is given */
> if (irq > 0) {
> ret = request_threaded_irq(irq, NULL, opt3001_irq,
> @@ -894,7 +888,17 @@ static int opt3001_probe(struct i2c_client *client)
> dev_dbg(opt->dev, "enabling interrupt-less operation\n");
> }
>
> + ret = iio_device_register(iio);
> + if (ret)
> + goto free_irq;
> +
> return 0;
> +
> +free_irq:
> + if (irq > 0)
> + free_irq(irq, iio);
> +
> + return ret;
> }
>
> static void opt3001_remove(struct i2c_client *client)
> @@ -904,6 +908,8 @@ static void opt3001_remove(struct i2c_client *client)
> int ret;
> u16 reg;
>
> + iio_device_unregister(iio);
> +
> if (opt->use_irq)
> free_irq(client->irq, iio);
>
>
next prev parent reply other threads:[~2026-05-27 18:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-25 8:20 [PATCH v4 0/8] iio: light: opt3001: driver cleanup Joshua Crofts via B4 Relay
2026-05-25 8:20 ` [PATCH v4 1/8] iio: light: opt3001: move device registration to end of probe() Joshua Crofts via B4 Relay
2026-05-25 9:06 ` Joshua Crofts
2026-05-27 18:19 ` Jonathan Cameron [this message]
2026-05-25 8:20 ` [PATCH v4 2/8] iio: light: opt3001: use local struct device and i2c_client variables Joshua Crofts via B4 Relay
2026-06-02 10:43 ` Andy Shevchenko
2026-05-25 8:20 ` [PATCH v4 3/8] iio: light: opt3001: ensure correct parenthesis alignment Joshua Crofts via B4 Relay
2026-05-27 18:30 ` Jonathan Cameron
2026-05-28 7:10 ` Joshua Crofts
2026-05-25 8:20 ` [PATCH v4 4/8] iio: light: opt3001: localize for loop iterator Joshua Crofts via B4 Relay
2026-05-25 22:52 ` Maxwell Doose
2026-05-25 8:20 ` [PATCH v4 5/8] iio: light: opt3001: prefer dev_err_probe() Joshua Crofts via B4 Relay
2026-05-25 20:48 ` Maxwell Doose
2026-05-25 8:20 ` [PATCH v4 6/8] iio: light: opt3001: move driver to guard(mutex)() use Joshua Crofts via B4 Relay
2026-05-25 8:20 ` [PATCH v4 7/8] iio: light: opt3001: switch driver to managed resources Joshua Crofts via B4 Relay
2026-05-27 18:24 ` Jonathan Cameron
2026-05-25 8:20 ` [PATCH v4 8/8] iio: light: opt3001: add comment to mutex Joshua Crofts via B4 Relay
2026-05-25 10:38 ` [PATCH v4 0/8] iio: light: opt3001: driver cleanup Joshua Crofts
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=20260527191959.5e871e9a@jic23-huawei \
--to=jic23@kernel.org \
--cc=andy@kernel.org \
--cc=devnull+joshua.crofts1.gmail.com@kernel.org \
--cc=dlechner@baylibre.com \
--cc=joshua.crofts1@gmail.com \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nuno.sa@analog.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
all inboxes | Powered by JetHome®