Module Name:    src
Committed By:   snj
Date:           Tue Dec  6 06:46:02 UTC 2016

Modified Files:
        src/sys/arch/x68k/x68k [netbsd-7]: machdep.c

Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #1282):
        sys/arch/x68k/x68k/machdep.c: revision 1.194
Fix crashdump on machines with EXTENDED_MEMORY.
PR port-x68k/51663 from Rin Okuyama.


To generate a diff of this commit:
cvs rdiff -u -r1.191.4.1 -r1.191.4.2 src/sys/arch/x68k/x68k/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/x68k/x68k/machdep.c
diff -u src/sys/arch/x68k/x68k/machdep.c:1.191.4.1 src/sys/arch/x68k/x68k/machdep.c:1.191.4.2
--- src/sys/arch/x68k/x68k/machdep.c:1.191.4.1	Thu Nov  5 20:40:22 2015
+++ src/sys/arch/x68k/x68k/machdep.c	Tue Dec  6 06:46:02 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.191.4.1 2015/11/05 20:40:22 riz Exp $	*/
+/*	$NetBSD: machdep.c,v 1.191.4.2 2016/12/06 06:46:02 snj Exp $	*/
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.191.4.1 2015/11/05 20:40:22 riz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.191.4.2 2016/12/06 06:46:02 snj Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -553,7 +553,10 @@ cpu_init_kcore_hdr(void)
 {
 	cpu_kcore_hdr_t *h = &cpu_kcore_hdr;
 	struct m68k_kcore_hdr *m = &h->un._m68k;
-	int i;
+	psize_t size;
+#ifdef EXTENDED_MEMORY
+	int i, seg;
+#endif
 
 	memset(&cpu_kcore_hdr, 0, sizeof(cpu_kcore_hdr));
 
@@ -602,14 +605,20 @@ cpu_init_kcore_hdr(void)
 	/*
 	 * X68k has multiple RAM segments on some models.
 	 */
-	m->ram_segs[0].start = lowram;
-	m->ram_segs[0].size = mem_size - lowram;
-	for (i = 1; i < vm_nphysseg; i++) {
-		m->ram_segs[i].start =
-		    ctob(VM_PHYSMEM_PTR(i)->start);
-		m->ram_segs[i].size  =
-		    ctob(VM_PHYSMEM_PTR(i)->end - VM_PHYSMEM_PTR(i)->start);
+	size = phys_basemem_seg.end - phys_basemem_seg.start;
+	m->ram_segs[0].start = phys_basemem_seg.start;
+	m->ram_segs[0].size  = size;
+#ifdef EXTENDED_MEMORY
+	seg = 1;
+	for (i = 0; i < EXTMEM_SEGS; i++) {
+		size = phys_extmem_seg[i].end - phys_extmem_seg[i].start;
+		if (size == 0)
+			continue;
+		m->ram_segs[seg].start = phys_extmem_seg[i].start;
+		m->ram_segs[seg].size  = size;
+		seg++;
 	}
+#endif
 }
 
 /*

Reply via email to