Module Name:    src
Committed By:   phx
Date:           Mon Nov  1 19:00:09 UTC 2010

Modified Files:
        src/sys/arch/amigappc/amigappc: machdep.c

Log Message:
Fixed overflow in cpu clock calculation and printing of the cpu revision.


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/sys/arch/amigappc/amigappc/machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amigappc/amigappc/machdep.c
diff -u src/sys/arch/amigappc/amigappc/machdep.c:1.43 src/sys/arch/amigappc/amigappc/machdep.c:1.44
--- src/sys/arch/amigappc/amigappc/machdep.c:1.43	Fri May 21 12:52:14 2010
+++ src/sys/arch/amigappc/amigappc/machdep.c	Mon Nov  1 19:00:08 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.43 2010/05/21 12:52:14 phx Exp $ */
+/* $NetBSD: machdep.c,v 1.44 2010/11/01 19:00:08 phx Exp $ */
 
 /*
  * Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.43 2010/05/21 12:52:14 phx Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.44 2010/11/01 19:00:08 phx Exp $");
 
 #include <sys/param.h>
 #include <sys/mount.h>
@@ -259,16 +259,17 @@
 amigappc_identify(void)
 {
 	extern u_long ns_per_tick, ticks_per_sec;
-	static const char pll603[] = {
+	static const unsigned char pll603[] = {
 		10, 10, 10, 10, 20, 20, 25, 00,
 		30, 00, 40, 00, 15, 00, 35, 00
 	};
-	static const char pll604[] = {
+	static const unsigned char pll604[] = {
 		10, 10, 70, 10, 20, 65, 25, 45,
 		30, 55, 40, 50, 15, 60, 35, 00
 	};
 	const char *cpuname, *mach, *p5type_p, *pup;
-	int busclock, cpu, cpuclock;
+	u_long busclock, cpuclock;
+	int cpu;
 	register int pvr, hid1;
 
 	/* PowerUp ROM id location */
@@ -353,8 +354,9 @@
 		cpuclock = busclock * pll604[hid1>>28 & 0xf] / 10;
 
 	snprintf(model, sizeof(model),
-	    "%s %s (%s v%d.%d %d MHz, busclk %d MHz)", mach, pup, cpuname,
-	    pvr>>8 & 0xff, pvr & 0xff, cpuclock/1000000, busclock/1000000);
+	    "%s %s (%s v%d.%d %lu MHz, busclk %lu MHz)",
+	    mach, pup, cpuname, (pvr>>8) & 0xf, (pvr >> 0) & 0xf,
+	    cpuclock / 1000000, busclock / 1000000);
 
 	/* set timebase */
 	ticks_per_sec = busclock / 4;

Reply via email to