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