public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>
Cc: "Andy Shevchenko" <andriy.shevchenko@intel.com>,
	"Remi Buisson" <Remi.Buisson@tdk.com>,
	"David Lechner" <dlechner@baylibre.com>,
	"Nuno Sá" <nuno.sa@analog.com>,
	"Andy Shevchenko" <andy@kernel.org>,
	"Jonathan Cameron" <Jonathan.Cameron@huawei.com>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH] iio: imu: inv_icm45600: fix regulator put warning when probe fails
Date: Thu, 5 Feb 2026 19:26:49 +0000	[thread overview]
Message-ID: <20260205192649.4df4b110@jic23-huawei> (raw)
In-Reply-To: <FR3P281MB1757021D0A44A69C2940FC07CE99A@FR3P281MB1757.DEUP281.PROD.OUTLOOK.COM>

On Thu, 5 Feb 2026 17:19:28 +0000
Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com> wrote:

> >From: Andy Shevchenko <andriy.shevchenko@intel.com>
> >Sent: Thursday, February 5, 2026 17:19
> >To: Jean-Baptiste Maneyrol <Jean-Baptiste.Maneyrol@tdk.com>
> >Cc: Remi Buisson <Remi.Buisson@tdk.com>; Jonathan Cameron <jic23@kernel.org>; David Lechner <dlechner@baylibre.com>; Nuno Sá <nuno.sa@analog.com>; Andy Shevchenko <andy@kernel.org>; Jonathan Cameron <Jonathan.Cameron@huawei.com>; linux-iio@vger.kernel.org <linux-iio@vger.kernel.org>; linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>; stable@vger.kernel.org <stable@vger.kernel.org>
> >Subject: Re: [PATCH] iio: imu: inv_icm45600: fix regulator put warning when probe fails
> > 
> >On Thu, Feb 05, 2026 at 02: 35: 33PM +0100, Jean-Baptiste Maneyrol via B4 Relay wrote: > When the driver probe fails we encounter a regulator put warning > because vddio regulator is not stopped before release. The issue > comes from
> >ZjQcmQRYFpfptBannerStart
> >This Message Is From an External Sender
> >This message came from outside your organization.
> > 
> >ZjQcmQRYFpfptBannerEnd
> >On Thu, Feb 05, 2026 at 02:35:33PM +0100, Jean-Baptiste Maneyrol via B4 Relay wrote:
> >  
> >> When the driver probe fails we encounter a regulator put warning
> >> because vddio regulator is not stopped before release. The issue
> >> comes from pm_runtime not already setup when core probe fails and
> >> the vddio regulator disable callback is called.
> >> 
> >> Fix the issue by deleting pm_runtime check in the vddio regulator
> >> disable callback and handing over the vddio disable management to
> >> pm_runtime by deleting the disable remove action before setting up
> >> pm_runtime.  
> >
> >...
> >  
> >> +	/* hand over vddio management to pm_runtime */
> >> +	devm_remove_action(dev, inv_icm45600_disable_vddio_reg, st);  
> >
> >First of all, note "remove" vs. "release". Have you tried to remove and insert
> >module several times? Does kmemleak happy about this?  
> 
> Hello Andy,
> 
> remove is used on purpose, since we want to avoid disabling the vddio regulator
> here.
> 
> The problem we are facing here is that vddio regulator disable is handle by 2
> different resource managements: manually with devm_ and with pm_runtime. It
> is needed because we want pm_runtime to be able to disable vddio when the chip
> is suspended. And we also want to avoid the manual vddio disable during the
> driver probe for code clarity. To prevent vddio regulator to be disabled 2 times
> when the driver unloads, the manual vddio disable has a check on pm_runtime.
> But when there is an issue in probe (like chip not responding), the vddio
> disable callback is not working correctly because pm_runtime has not been setup.

I'm curious that pm_runtime_status_suspend() returns true under those circumstances.
ah. pm_runtime_init() does that.  It's a bit ugly but maybe a commented
extra all to pm_runtime_set_active() before registering the devm callback to turn
the power off?

> 
> The most easiest way to fix this is to remove the devm vddio disable when
> pm_runtime is setup to avoid any double free resources. pm_runtime will disable
> vddio, thus there is no risk of resource leak.

This is making life rather complex.  Also what happens if runtime PM is not
configured into the kernel?

I'm really not keen on using devm then ripping it out again. That just
makes a mess of the ordering.

These devm / runtime pm interactions are rather unfortunate.

Jonathan



> 
> Hope I'm clear enough.
> 
> Thanks,
> JB
> 
> >
> >Second, calling devm_*() for release resources is very exceptional situation.
> >This usually means that something is wrong to begin with in the probe.
> >
> >Can you find a better way without calling devm_*() for releasing resources?
> >
> >-- 
> >With Best Regards,
> >Andy Shevchenko
>   


      reply	other threads:[~2026-02-05 19:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-05 13:35 [PATCH] iio: imu: inv_icm45600: fix regulator put warning when probe fails Jean-Baptiste Maneyrol via B4 Relay
2026-02-05 16:19 ` Andy Shevchenko
2026-02-05 17:19   ` Jean-Baptiste Maneyrol
2026-02-05 19:26     ` Jonathan Cameron [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=20260205192649.4df4b110@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=Jean-Baptiste.Maneyrol@tdk.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=Remi.Buisson@tdk.com \
    --cc=andriy.shevchenko@intel.com \
    --cc=andy@kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nuno.sa@analog.com \
    --cc=stable@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