See patch

-- 
coresystems GmbH . Brahmsstr. 16 . D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 . Fax: +49 761 7664613
Email: [email protected]  . http://www.coresystems.de/
Registergericht: Amtsgericht Freiburg . HRB 7656
Geschäftsführer: Stefan Reinauer . Ust-IdNr.: DE245674866

prevent timer overflows in libpayload

Signed-off-by: Stefan Reinauer <[email protected]>


--- arch/i386/timer.c   (revision 5280)
+++ arch/i386/timer.c   (working copy)
@@ -88,7 +88,7 @@
  */
 void ndelay(unsigned int n)
 {
-       _delay(n * cpu_khz / 1000000);
+       _delay((unsigned long long)n * cpu_khz / 1000000);
 }
 
 /**
@@ -98,7 +98,7 @@
  */
 void udelay(unsigned int n)
 {
-       _delay(n * cpu_khz / 1000);
+       _delay((unsigned long long)n * cpu_khz / 1000);
 }
 
 /**
@@ -108,7 +108,7 @@
  */
 void mdelay(unsigned int m)
 {
-       _delay(m * cpu_khz);
+       _delay((unsigned long long)m * cpu_khz);
 }
 
 /**
@@ -118,5 +118,7 @@
  */
 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);
 }
-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to