projects
/
coreboot.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1beabe1
)
prevent timer overflows in libpayload
author
Stefan Reinauer
<stepan@coresystems.de>
Thu, 25 Mar 2010 18:53:20 +0000
(18:53 +0000)
committer
Stefan Reinauer
<stepan@openbios.org>
Thu, 25 Mar 2010 18:53:20 +0000
(18:53 +0000)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi@coresystems.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5292
2b7e53f0
-3cfb-0310-b3e9-
8179ed1497e1
payloads/libpayload/arch/i386/timer.c
patch
|
blob
|
history
diff --git
a/payloads/libpayload/arch/i386/timer.c
b/payloads/libpayload/arch/i386/timer.c
index 3d8607b3cb43ff66193d959f483e9a0f9612284b..ae288eb94e4baad946b491ee5e71ba95b0aebb2c 100644
(file)
--- a/
payloads/libpayload/arch/i386/timer.c
+++ b/
payloads/libpayload/arch/i386/timer.c
@@
-88,7
+88,7
@@
static inline void _delay(unsigned long long delta)
*/
void ndelay(unsigned int n)
{
- _delay(n * cpu_khz / 1000000);
+ _delay(
(unsigned long long)
n * cpu_khz / 1000000);
}
/**
@@
-98,7
+98,7
@@
void ndelay(unsigned int n)
*/
void udelay(unsigned int n)
{
- _delay(n * cpu_khz / 1000);
+ _delay(
(unsigned long long)
n * cpu_khz / 1000);
}
/**
@@
-108,7
+108,7
@@
void udelay(unsigned int n)
*/
void mdelay(unsigned int m)
{
- _delay(m * cpu_khz);
+ _delay(
(unsigned long long)
m * cpu_khz);
}
/**
@@
-118,5
+118,7
@@
void mdelay(unsigned int m)
*/
void delay(unsigned int s)
{
- _delay(s * cpu_khz * 1000);
+ int i;
+ for (i=0; i<1000; i++)
+ _delay((unsigned long long)s * cpu_khz);
}