Module Name:    src
Committed By:   maxv
Date:           Sun Jul 17 10:46:43 UTC 2016

Modified Files:
        src/sys/arch/x86/x86: x86_machdep.c

Log Message:
Simplify x86_add_cluster.


To generate a diff of this commit:
cvs rdiff -u -r1.73 -r1.74 src/sys/arch/x86/x86/x86_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/x86/x86/x86_machdep.c
diff -u src/sys/arch/x86/x86/x86_machdep.c:1.73 src/sys/arch/x86/x86/x86_machdep.c:1.74
--- src/sys/arch/x86/x86/x86_machdep.c:1.73	Sat Jul 16 17:13:25 2016
+++ src/sys/arch/x86/x86/x86_machdep.c	Sun Jul 17 10:46:43 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: x86_machdep.c,v 1.73 2016/07/16 17:13:25 maxv Exp $	*/
+/*	$NetBSD: x86_machdep.c,v 1.74 2016/07/17 10:46:43 maxv Exp $	*/
 
 /*-
  * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi,
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.73 2016/07/16 17:13:25 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.74 2016/07/17 10:46:43 maxv Exp $");
 
 #include "opt_modular.h"
 #include "opt_physmem.h"
@@ -501,8 +501,7 @@ x86_select_freelist(uint64_t maxaddr)
 }
 
 static int
-x86_add_cluster(phys_ram_seg_t *seg_clusters, int seg_cluster_cnt,
-    struct extent *iomem_ex, uint64_t seg_start, uint64_t seg_end,
+x86_add_cluster(struct extent *iomem_ex, uint64_t seg_start, uint64_t seg_end,
     uint32_t type)
 {
 	uint64_t new_physmem = 0;
@@ -523,7 +522,7 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 		aprint_verbose("WARNING: skipping large memory map entry: "
 		    "0x%"PRIx64"/0x%"PRIx64"/0x%x\n",
 		    seg_start, (seg_end - seg_start), type);
-		return seg_cluster_cnt;
+		return 0;
 	}
 
 	/*
@@ -533,16 +532,16 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 		seg_end -= PAGE_SIZE;
 
 	if (seg_end <= seg_start)
-		return seg_cluster_cnt;
+		return 0;
 
-	for (i = 0; i < seg_cluster_cnt; i++) {
-		cluster = &seg_clusters[i];
+	for (i = 0; i < mem_cluster_cnt; i++) {
+		cluster = &mem_clusters[i];
 		if ((cluster->start == round_page(seg_start)) &&
 		    (cluster->size == trunc_page(seg_end) - cluster->start)) {
 #ifdef DEBUG_MEMLOAD
 			printf("WARNING: skipping duplicate segment entry\n");
 #endif
-			return seg_cluster_cnt;
+			return 0;
 		}
 	}
 
@@ -566,24 +565,22 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 			    "(0x%"PRIx64"/0x%"PRIx64"/0x%x) FROM "
 			    "IOMEM EXTENT MAP!\n",
 			    seg_start, seg_end - seg_start, type);
-			return seg_cluster_cnt;
+			return 0;
 		}
 	}
 
-	/*
-	 * If it's not free memory, skip it.
-	 */
+	/* If it's not free memory, skip it. */
 	if (type != BIM_Memory)
-		return seg_cluster_cnt;
+		return 0;
 
-	/* XXX XXX XXX */
-	if (seg_cluster_cnt >= VM_PHYSSEG_MAX)
+	if (mem_cluster_cnt >= VM_PHYSSEG_MAX) {
 		panic("%s: too many memory segments (increase VM_PHYSSEG_MAX)",
 			__func__);
+	}
 
 #ifdef PHYSMEM_MAX_ADDR
 	if (seg_start >= MBTOB(PHYSMEM_MAX_ADDR))
-		return seg_cluster_cnt;
+		return 0;
 	if (seg_end > MBTOB(PHYSMEM_MAX_ADDR))
 		seg_end = MBTOB(PHYSMEM_MAX_ADDR);
 #endif
@@ -592,9 +589,9 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 	seg_end = trunc_page(seg_end);
 
 	if (seg_start == seg_end)
-		return seg_cluster_cnt;
+		return 0;
 
-	cluster = &seg_clusters[seg_cluster_cnt];
+	cluster = &mem_clusters[mem_cluster_cnt];
 	cluster->start = seg_start;
 	if (iomem_ex != NULL)
 		new_physmem = physmem + atop(seg_end - seg_start);
@@ -602,7 +599,7 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 #ifdef PHYSMEM_MAX_SIZE
 	if (iomem_ex != NULL) {
 		if (physmem >= atop(MBTOB(PHYSMEM_MAX_SIZE)))
-			return seg_cluster_cnt;
+			return 0;
 		if (new_physmem > atop(MBTOB(PHYSMEM_MAX_SIZE))) {
 			seg_end = seg_start + MBTOB(PHYSMEM_MAX_SIZE) - ptoa(physmem);
 			new_physmem = atop(MBTOB(PHYSMEM_MAX_SIZE));
@@ -617,9 +614,9 @@ x86_add_cluster(phys_ram_seg_t *seg_clus
 			avail_end = seg_end;
 		physmem = new_physmem;
 	}
-	seg_cluster_cnt++;
+	mem_cluster_cnt++;
 
-	return seg_cluster_cnt;
+	return 0;
 }
 
 static int
@@ -680,16 +677,10 @@ x86_parse_clusters(struct btinfo_memmap 
 			    "0x%"PRIx64"/0x%"PRIx64"/0x%x\n", seg_start,
 			    seg_end - seg_start, type);
 
-			mem_cluster_cnt = x86_add_cluster(mem_clusters,
-			    mem_cluster_cnt, iomem_ex, seg_start, 0xa0000,
-			    type);
-			mem_cluster_cnt = x86_add_cluster(mem_clusters,
-			    mem_cluster_cnt, iomem_ex, 0x100000, seg_end,
-			    type);
+			x86_add_cluster(iomem_ex, seg_start, 0xa0000, type);
+			x86_add_cluster(iomem_ex, 0x100000, seg_end, type);
 		} else {
-			mem_cluster_cnt = x86_add_cluster(mem_clusters,
-			    mem_cluster_cnt, iomem_ex, seg_start, seg_end,
-			    type);
+			x86_add_cluster(iomem_ex, seg_start, seg_end, type);
 		}
 	}
 

Reply via email to