Re: [PATCH 12/44] mfd: ab8500-sysctrl: Register with kernel poweroff handler

Guenter Roeck
2014-10-09T15:54:04Z

On Thu, Oct 09, 2014 at 11:49:27AM +0100, Lee Jones wrote:
> On Thu, 09 Oct 2014, Catalin Marinas wrote:
>
> > On Tue, Oct 07, 2014 at 09:00:48AM +0100, Lee Jones wrote:
> > > On Mon, 06 Oct 2014, Guenter Roeck wrote:
> > > > --- a/drivers/mfd/ab8500-sysctrl.c
> > > > +++ b/drivers/mfd/ab8500-sysctrl.c
> > > > @@ -6,6 +6,7 @@
> > >
> > > [...]
> > >
> > > > +static int ab8500_power_off(struct notifier_block *this, unsigned long unused1,
> > > > + void *unused2)
> > > > {
> > > > sigset_t old;
> > > > sigset_t all;
> > > > @@ -34,11 +36,6 @@ static void ab8500_power_off(void)
> > > > struct power_supply *psy;
> > > > int ret;
> > > >
> > > > - if (sysctrl_dev = NULL) {
> > > > - pr_err("%s: sysctrl not initialized\n", __func__);
> > > > - return;
> > > > - }
> > >
> > > Can you explain the purpose of this change please?
> >
> > I guess it's because the sysctrl_dev is already initialised when
> > registering the power_off handler, so there isn't a way to call the
> > above function with a NULL sysctrl_dev. Probably even with the original
> > code you didn't need this check (after some race fix in
> > ab8500_sysctrl_remove but races is one of the things Guenter's patches
> > try to address).
>
> Sounds reasonable, although I think this change should be part of
> another patch.
>
Turns out the options are to either drop the check or to use the device
managed function to register the poweroff handler. I decided to keep
the check and use the device managed function.

Guenter