[coreboot] [commit] r5292 - trunk/payloads/libpayload/arch/i386

repository service svn at coreboot.org
Thu Mar 25 19:53:22 CET 2010


Author: stepan
Date: Thu Mar 25 19:53:20 2010
New Revision: 5292
URL: https://tracker.coreboot.org/trac/coreboot/changeset/5292

Log:
prevent timer overflows in libpayload

Signed-off-by: Stefan Reinauer <stepan at coresystems.de>
Acked-by: Patrick Georgi <patrick.georgi at coresystems.de>

Modified:
   trunk/payloads/libpayload/arch/i386/timer.c

Modified: trunk/payloads/libpayload/arch/i386/timer.c
==============================================================================
--- trunk/payloads/libpayload/arch/i386/timer.c	Thu Mar 25 19:52:24 2010	(r5291)
+++ trunk/payloads/libpayload/arch/i386/timer.c	Thu Mar 25 19:53:20 2010	(r5292)
@@ -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);
 }




More information about the coreboot mailing list