[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20161125104110.GA14931@vireshk-i7>
Date: Fri, 25 Nov 2016 16:11:10 +0530
From: Viresh Kumar <viresh.kumar@...aro.org>
To: Lee Jones <lee.jones@...aro.org>
Cc: linaro-kernel@...ts.linaro.org, broonie@...nel.org,
ckeepax@...nsource.wolfsonmicro.com,
patches@...nsource.wolfsonmicro.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH V4] mfd: wm8994-core: Don't use managed regulator bulk
get API
On 25-11-16, 10:41, Lee Jones wrote:
> On Fri, 25 Nov 2016, Viresh Kumar wrote:
>
> > On 25-11-16, 10:14, Lee Jones wrote:
> > > On Thu, 27 Oct 2016, Viresh Kumar wrote:
> > >
> > > > The kernel WARNs and then crashes today if wm8994_device_init() fails
> > > > after calling devm_regulator_bulk_get().
> > > >
> > > > That happens because there are multiple devices involved here and the
> > > > order in which managed resources are freed isn't correct.
> > > >
> > > > The regulators are added as children of wm8994->dev. Whereas,
> > > > devm_regulator_bulk_get() receives wm8994->dev as the device, though it
> > > > gets the same regulators which were added as children of wm8994->dev
> > > > earlier.
> > > >
> > > > During failures, the children are removed first and the core eventually
> > > > calls regulator_unregister() for them. As regulator_put() was never done
> > > > for them (opposite of devm_regulator_bulk_get()), the kernel WARNs at
> > > >
> > > > WARN_ON(rdev->open_count);
> > > >
> > > > And eventually it crashes from debugfs_remove_recursive().
> > >
> > > Is ...
> > >
> > > mfd: wm8994-core: disable regulators before removing them
> > >
> > > ... required as well, or is that separate?
> >
> > It would be better if we get that too. Anyway, the $subject patch has a
> > dependency on it..
>
> Which is ... ?
I meant rebase dependency, nothing else.
--
viresh
Powered by blists - more mailing lists