next-20241028: gcc-8-defconfig : ERROR: modpost: "__aeabi_uldivmod" [drivers/media/dvb-frontends/cxd2841er.ko] undefined!
Arnd Bergmann
arnd at arndb.de
Fri Nov 1 02:22:30 PDT 2024
On Thu, Oct 31, 2024, at 12:27, Dan Carpenter wrote:
> Arnd, can you take a look at this?
>
> diff --git a/drivers/media/dvb-frontends/cxd2841er.c
> b/drivers/media/dvb-frontends/cxd2841er.c
> index d925ca24183b..e3131f5c6708 100644
> --- a/drivers/media/dvb-frontends/cxd2841er.c
> +++ b/drivers/media/dvb-frontends/cxd2841er.c
> @@ -314,7 +314,7 @@ static u32 cxd2841er_calc_iffreq_xtal(enum
> cxd2841er_xtal xtal, u32 ifhz)
> u64 tmp;
>
> tmp = (u64) ifhz * 16777216;
> - do_div(tmp, ((xtal == SONY_XTAL_24000) ? 48000000 : 41000000));
> +// do_div(tmp, ((xtal == SONY_XTAL_24000) ? 48000000 : 41000000));
>
> return (u32) tmp;
> }
Not sure what is happening exactly, probably something where
__builtin_constant_p() is inconclusive. The patch below seems
to address it without impairing readability.
Arnd
--- a/drivers/media/dvb-frontends/cxd2841er.c
+++ b/drivers/media/dvb-frontends/cxd2841er.c
@@ -311,12 +311,8 @@ static int cxd2841er_set_reg_bits(struct cxd2841er_priv *priv,
static u32 cxd2841er_calc_iffreq_xtal(enum cxd2841er_xtal xtal, u32 ifhz)
{
- u64 tmp;
-
- tmp = (u64) ifhz * 16777216;
- do_div(tmp, ((xtal == SONY_XTAL_24000) ? 48000000 : 41000000));
-
- return (u32) tmp;
+ return div_u64(ifhz * 16777216ull,
+ (xtal == SONY_XTAL_24000) ? 48000000 : 41000000);
}
static u32 cxd2841er_calc_iffreq(u32 ifhz)
More information about the linux-arm-kernel
mailing list