UPSTREAM: powercap/drivers/dtpm: Fix __udivdi3 and __aeabi_uldivmod unresolved symbols
32-bit architectures do not support u64 divisions, 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 unresolved references to symbols. Fix this by using the compatible macros: DIV64_U64_ROUND_CLOSEST and DIV_ROUND_CLOSEST_ULL. Fixes: a20d0ef97abf ("powercap/drivers/dtpm: Add API for dynamic thermal power management") Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Link: https://lkml.org/lkml/2020/12/30/304 Bug: 182396925 Change-Id: I1a67791b071acb2fe6ed0d348f4462985ebabdc3 (cherry picked from commit 8f50db4b5c79af2ba54f5fbe8a5173fd7f37a493) Signed-off-by: Ram Chandrasekar <quic_rkumbako@quicinc.com>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
7f17016dc8
commit
578572c48c
@@ -99,8 +99,8 @@ static void __dtpm_rebalance_weight(struct dtpm *dtpm)
|
|||||||
pr_debug("Setting weight '%d' for '%s'\n",
|
pr_debug("Setting weight '%d' for '%s'\n",
|
||||||
child->weight, child->zone.name);
|
child->weight, child->zone.name);
|
||||||
|
|
||||||
child->weight = DIV_ROUND_CLOSEST(child->power_max * 1024,
|
child->weight = DIV64_U64_ROUND_CLOSEST(
|
||||||
dtpm->power_max);
|
child->power_max * 1024, dtpm->power_max);
|
||||||
|
|
||||||
__dtpm_rebalance_weight(child);
|
__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) {
|
} else if (power_limit == dtpm->power_min) {
|
||||||
power = child->power_min;
|
power = child->power_min;
|
||||||
} else {
|
} else {
|
||||||
power = DIV_ROUND_CLOSEST(
|
power = DIV_ROUND_CLOSEST_ULL(
|
||||||
power_limit * child->weight, 1024);
|
power_limit * child->weight, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user