Il 29/02/2012 22:30, Geert Uytterhoeven ha scritto:
> http://kisskb.ellerman.id.au/kisskb/buildresult/5759200/ ERROR:
> "__udivdi3" [drivers/media/dvb/frontends/rtl2830.ko] undefined!
> 
> I didn't look too deeply into it, but I think it's caused by the
> "num /= priv->cfg.xtal" in rtl2830_init() (with num being u64).
> 
> Can't it use do_div() instead?
> 
> Gr{oetje,eeting}s,
> 
> Geert
> 
> -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 --
> [email protected]
> 
> In personal conversations with technical people, I call myself a
> hacker. But when I'm talking to journalists I just say "programmer"
> or something like that. -- Linus Torvalds -- To unsubscribe from this
> list: send the line "unsubscribe linux-media" in the body of a
> message to [email protected] More majordomo info at
> http://vger.kernel.org/majordomo-info.html
> 

Probably the best solution is to use div_u64.
The following patch fixed the warning on my 32 bit system.

Signed-off-by: Gianluca Gennari <[email protected]>
---
 drivers/media/dvb/frontends/rtl2830.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/dvb/frontends/rtl2830.c
b/drivers/media/dvb/frontends/rtl2830.c
index f971d94..45196c5 100644
--- a/drivers/media/dvb/frontends/rtl2830.c
+++ b/drivers/media/dvb/frontends/rtl2830.c
@@ -244,7 +244,7 @@ static int rtl2830_init(struct dvb_frontend *fe)

        num = priv->cfg.if_dvbt % priv->cfg.xtal;
        num *= 0x400000;
-       num /= priv->cfg.xtal;
+       num = div_u64(num, priv->cfg.xtal);
        num = -num;
        if_ctl = num & 0x3fffff;
        dbg("%s: if_ctl=%08x", __func__, if_ctl);
-- 
1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to