Module Name:    src
Committed By:   christos
Date:           Mon Oct 16 11:37:20 UTC 2017

Modified Files:
        src/sys/dev/ic: spdmem.c

Log Message:
dedup


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/ic/spdmem.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/dev/ic/spdmem.c
diff -u src/sys/dev/ic/spdmem.c:1.25 src/sys/dev/ic/spdmem.c:1.26
--- src/sys/dev/ic/spdmem.c:1.25	Mon Oct 16 04:33:48 2017
+++ src/sys/dev/ic/spdmem.c	Mon Oct 16 07:37:20 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: spdmem.c,v 1.25 2017/10/16 08:33:48 msaitoh Exp $ */
+/* $NetBSD: spdmem.c,v 1.26 2017/10/16 11:37:20 christos Exp $ */
 
 /*
  * Copyright (c) 2007 Nicolas Joly
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spdmem.c,v 1.25 2017/10/16 08:33:48 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spdmem.c,v 1.26 2017/10/16 11:37:20 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -748,23 +748,30 @@ decode_ddr2(const struct sysctlnode *nod
 }
 
 static void
-decode_ddr3(const struct sysctlnode *node, device_t self, struct spdmem *s)
+print_part(const char *part, size_t pnsize)
 {
-	int dimm_size, cycle_time, bits;
-	unsigned char buf[sizeof(s->sm_ddr3.ddr3_part) + 1];
-	int i, pnsize;
+	char buf[64];	/* big enough */
+
+	KASSERT(pnsize < sizeof(buf));
 
-	pnsize = sizeof(s->sm_ddr3.ddr3_part);
-	memcpy(buf, s->sm_ddr3.ddr3_part, pnsize);
-	buf[pnsize] = 0; /* Terminate for full string */
-	for (i = pnsize - 1; i >= 0; i--) {
+	memcpy(buf, part, pnsize);
+	buf[pnsize] = '\0'; /* Terminate for full string */
+	for (size_t i = pnsize; i-- > 0;) {
 		if (buf[i] == 0x20) /* remove trailing spaces */
-			buf[i] = 0;
+			buf[i] = '\0';
 		else
 			break;
 	}
-	aprint_naive("\n");
 	aprint_normal(": %s\n", buf);
+}
+
+static void
+decode_ddr3(const struct sysctlnode *node, device_t self, struct spdmem *s)
+{
+	int dimm_size, cycle_time, bits;
+
+	aprint_naive("\n");
+	print_part(s->sm_ddr3.ddr3_part, sizeof(s->sm_ddr3.ddr3_part));
 	aprint_normal_dev(self, "%s", spdmem_basic_types[s->sm_type]);
 
 	if (s->sm_ddr3.ddr3_mod_type ==
@@ -873,21 +880,10 @@ decode_ddr4(const struct sysctlnode *nod
 {
 	int dimm_size, cycle_time;
 	int tAA_clocks, tRCD_clocks,tRP_clocks, tRAS_clocks;
-	unsigned char buf[sizeof(s->sm_ddr4.ddr4_part_number) + 1];
-	int i, pnsize;
-
-	pnsize = sizeof(s->sm_ddr4.ddr4_part_number);
-	memcpy(buf, s->sm_ddr4.ddr4_part_number, pnsize);
-	buf[pnsize] = 0; /* Terminate for full string */
-	for (i = pnsize - 1; i >= 0; i--) {
-		if (buf[i] == 0x20) /* remove trailing spaces */
-			buf[i] = 0;
-		else
-			break;
-	}
 
 	aprint_naive("\n");
-	aprint_normal(": %s\n", buf);
+	print_part(s->sm_ddr4.ddr4_part_number,
+	    sizeof(s->sm_ddr4.ddr4_part_number));
 	aprint_normal_dev(self, "%s", spdmem_basic_types[s->sm_type]);
 	if (s->sm_ddr4.ddr4_mod_type < __arraycount(spdmem_ddr4_module_types))
 		aprint_normal(" (%s)", 

Reply via email to