lkml.org 
[lkml]   [2016]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH V3] mfd: wm8994-core: Don't use managed regulator bulk get API
On 27-10-16, 10:14, Charles Keepax wrote:
> On Thu, Oct 27, 2016 at 09:09:30AM +0530, 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 resources are freed isn't correct.
> >
> > The regulators are added as children of wm8994->dev.
> > 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().
> >
> > --------x------------------x----------------
>
> The back track seems to have got really really long again.

Not just that, even the code moved a version back.

Sorry for the noise, the right version is sent now :(

--
viresh

\
 
 \ /
  Last update: 2016-10-27 16:42    [W:0.033 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site