From: Andrew Morton <akpm@linux-foundation.org>
To: Adrian Bunk <bunk@kernel.org>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
Martin Michlmayr <tbm@cyrius.com>,
linux-kernel@vger.kernel.org,
Herbert Xu <herbert@gondor.apana.org.au>,
Ralf Baechle <ralf@linux-mips.org>,
linux-crypto@vger.kernel.org
Subject: Re: [2.6.25 patch] drivers/crypto/hifn_795x.c: fix 64bit division
Date: Tue, 26 Feb 2008 22:47:19 -0800 [thread overview]
Message-ID: <20080226224719.6994a3bf.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080227062207.GB10603@cs181133002.pp.htv.fi>
On Wed, 27 Feb 2008 08:22:07 +0200 Adrian Bunk <bunk@kernel.org> wrote:
> On Tue, Feb 26, 2008 at 04:04:39PM -0800, Andrew Morton wrote:
> > On Tue, 26 Feb 2008 21:52:40 +0300 Evgeniy Polyakov <johnpol@2ka.mipt.ru> wrote:
> >
> > > Hi Adrian.
> > >
> > > On Tue, Feb 26, 2008 at 05:34:21PM +0200, Adrian Bunk (bunk@kernel.org) wrote:
> > > > Using ndelay() with a 64bit variable as parameter can result in build
> > > > errors like the following on some 32bit systems when it results in a
> > > > 64bit division:
> > > >
> > > > <-- snip -->
> > > >
> > > > ...
> > > > MODPOST 759 modules
> > > > ERROR: "__divdi3" [drivers/crypto/hifn_795x.ko] undefined!
> > > >
> > > > <-- snip -->
> > > >
> > > > Reported by Martin Michlmayr.
> > > >
> > > > Signed-off-by: Adrian Bunk <bunk@kernel.org>
> > >
> > > Yep, ndelay() uses division, thanks a lot Adrian for spotting this.
> >
> > hm. Where?
> >...
>
> include/linux/delay.h:35
>
well found.
Something like this:
--- a/include/linux/delay.h~a
+++ a/include/linux/delay.h
@@ -7,10 +7,12 @@
* Delay routines, using a pre-computed "loops_per_jiffy" value.
*/
-extern unsigned long loops_per_jiffy;
+#include <linux/kernel.h>
#include <asm/delay.h>
+extern unsigned long loops_per_jiffy;
+
/*
* Using udelay() for intervals greater than a few milliseconds can
* risk overflow for high loops_per_jiffy (high bogomips) machines. The
@@ -32,7 +34,11 @@ extern unsigned long loops_per_jiffy;
#endif
#ifndef ndelay
-#define ndelay(x) udelay(((x)+999)/1000)
+static inline void ndelay(unsigned long x)
+{
+ udelay(DIV_ROUND_UP(x, 1000));
+}
+#define ndelay(x) ndelay(x)
#endif
void calibrate_delay(void);
_
next prev parent reply other threads:[~2008-02-27 6:47 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-26 12:21 2.6.25-rc3: "__divdi3" [drivers/crypto/hifn_795x.ko] undefined! Martin Michlmayr
2008-02-26 12:28 ` Patrick McHardy
2008-02-26 13:39 ` Martin Michlmayr
2008-02-26 15:34 ` [2.6.25 patch] drivers/crypto/hifn_795x.c: fix 64bit division Adrian Bunk
2008-02-26 17:20 ` Martin Michlmayr
2008-02-26 18:52 ` Evgeniy Polyakov
2008-02-27 0:04 ` Andrew Morton
2008-02-27 6:22 ` Adrian Bunk
2008-02-27 6:47 ` Andrew Morton [this message]
2008-02-28 8:02 ` Adrian Bunk
2008-02-27 15:59 ` Evgeniy Polyakov
2008-02-27 3:46 ` 2.6.25-rc3: "__divdi3" [drivers/crypto/hifn_795x.ko] undefined! David Rientjes
2008-02-27 11:29 ` Patrick McHardy
2008-02-28 19:40 ` Andrew Morton
2008-02-27 14:53 ` Ralf Baechle
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080226224719.6994a3bf.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=bunk@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=johnpol@2ka.mipt.ru \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ralf@linux-mips.org \
--cc=tbm@cyrius.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.