Messages in this thread Patch in this message | | | Date | Wed, 29 Sep 2021 09:05:40 -0700 | From | Matthias Kaehlcke <> | Subject | Re: [PATCH] power: supply: core: Fix a build failure due to psy_has_property() definition location |
| |
Hi SeongJae,
thanks for the fix!
Geert sent a similar patch earlier:
https://patchwork.kernel.org/project/linux-pm/patch/7b35a74f2c2ad19c8dc1ca60c59e48a14288677f.1632830348.git.geert+renesas@glider.be/
On Wed, Sep 29, 2021 at 01:02:18PM +0000, SeongJae Park wrote: > Commit 9ba533eb99bb ("power: supply: core: Add psy_has_property()") in -next > tree defines 'psy_has_property()' when 'CONFIG_THERMAL' is set. But, it is > also called from '__power_supply_register()', which is defined even if > 'CONFIG_THERMAL' is unset. As a result, the build fails when 'CONFIG_THERMAL' > is undefined as below. > > .../drivers/power/supply/power_supply_core.c: In function '__power_supply_register': > .../drivers/power/supply/power_supply_core.c:1137:6: error: implicit declaration of function 'psy_has_property' [-Werror=implicit-function-declaration] > 1137 | if (psy_has_property(desc, POWER_SUPPLY_PROP_USB_TYPE) && > | ^~~~~~~~~~~~~~~~ > cc1: some warnings being treated as errors > .../scripts/Makefile.build:288: recipe for target 'drivers/power/supply/power_supply_core.o' failed > make[4]: *** [drivers/power/supply/power_supply_core.o] Error 1 > > This commit fixes the issue by moving the definition out of the '#ifdef' block. > > Signed-off-by: SeongJae Park <sj@kernel.org> > --- > drivers/power/supply/power_supply_core.c | 32 ++++++++++++------------ > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/drivers/power/supply/power_supply_core.c b/drivers/power/supply/power_supply_core.c > index 75575ea45f21..fc12a4f407f4 100644 > --- a/drivers/power/supply/power_supply_core.c > +++ b/drivers/power/supply/power_supply_core.c > @@ -951,6 +951,22 @@ void power_supply_unreg_notifier(struct notifier_block *nb) > } > EXPORT_SYMBOL_GPL(power_supply_unreg_notifier); > > +static bool psy_has_property(const struct power_supply_desc *psy_desc, > + enum power_supply_property psp) > +{ > + bool found = false; > + int i; > + > + for (i = 0; i < psy_desc->num_properties; i++) { > + if (psy_desc->properties[i] == psp) { > + found = true; > + break; > + } > + } > + > + return found; > +} > + > #ifdef CONFIG_THERMAL > static int power_supply_read_temp(struct thermal_zone_device *tzd, > int *temp) > @@ -975,22 +991,6 @@ static struct thermal_zone_device_ops psy_tzd_ops = { > .get_temp = power_supply_read_temp, > }; > > -static bool psy_has_property(const struct power_supply_desc *psy_desc, > - enum power_supply_property psp) > -{ > - bool found = false; > - int i; > - > - for (i = 0; i < psy_desc->num_properties; i++) { > - if (psy_desc->properties[i] == psp) { > - found = true; > - break; > - } > - } > - > - return found; > -} > - > static int psy_register_thermal(struct power_supply *psy) > { > int ret; > -- > 2.17.1 >
| |