[PATCH] remoteproc: qcom: pil-info: avoid 64-bit division on 32-bit architectures

From: Arnd Bergmann
Date: Mon Mar 08 2021 - 10:33:01 EST


From: Arnd Bergmann <arnd@xxxxxxxx>

In some randconfig builds, a 64-bit resource_size_t is used even on
32-bit architectures, which now leads to a link-time error:

ERROR: modpost: "__aeabi_uldivmod" [drivers/remoteproc/qcom_pil_info.ko] undefined!

Using the div_u64() helper here. A cast to 32 bits length would also
work, but for a constant divider there should not be much difference.

Fixes: 549b67da660d ("remoteproc: qcom: Introduce helper to store pil info in IMEM")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
drivers/remoteproc/qcom_pil_info.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/remoteproc/qcom_pil_info.c b/drivers/remoteproc/qcom_pil_info.c
index 5521c4437ffa..95b6b7609a87 100644
--- a/drivers/remoteproc/qcom_pil_info.c
+++ b/drivers/remoteproc/qcom_pil_info.c
@@ -56,7 +56,8 @@ static int qcom_pil_info_init(void)
memset_io(base, 0, resource_size(&imem));

_reloc.base = base;
- _reloc.num_entries = resource_size(&imem) / PIL_RELOC_ENTRY_SIZE;
+ _reloc.num_entries = div_u64(resource_size(&imem),
+ PIL_RELOC_ENTRY_SIZE);

return 0;
}
--
2.29.2