On Wed, Dec 30, 2020 at 4:38 PM Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote: > > 32 bits architectures do not support u64 division, so the macro > DIV_ROUND_CLOSEST is not adequate as the compiler will replace the > call to an unexisting function for the platform, leading to an > unresolved symbols. > > Fix this by using the compatible macros: > > DIV64_U64_ROUND_CLOSEST and DIV_ROUND_CLOSEST_ULL. > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> Applied and pushed into the linux-next branch, thanks! > --- > drivers/powercap/dtpm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/powercap/dtpm.c b/drivers/powercap/dtpm.c > index 5b6857e9b064..0abcc439d728 100644 > --- a/drivers/powercap/dtpm.c > +++ b/drivers/powercap/dtpm.c > @@ -99,8 +99,8 @@ static void __dtpm_rebalance_weight(struct dtpm *dtpm) > pr_debug("Setting weight '%d' for '%s'\n", > child->weight, child->zone.name); > > - child->weight = DIV_ROUND_CLOSEST(child->power_max * 1024, > - dtpm->power_max); > + child->weight = DIV64_U64_ROUND_CLOSEST( > + child->power_max * 1024, dtpm->power_max); > > __dtpm_rebalance_weight(child); > } > @@ -272,7 +272,7 @@ static int __set_power_limit_uw(struct dtpm *dtpm, int cid, u64 power_limit) > } else if (power_limit == dtpm->power_min) { > power = child->power_min; > } else { > - power = DIV_ROUND_CLOSEST( > + power = DIV_ROUND_CLOSEST_ULL( > power_limit * child->weight, 1024); > } > > -- > 2.17.1 >