Module Name: src Committed By: maxv Date: Sun Jul 2 09:02:06 UTC 2017
Modified Files: src/sys/arch/i386/i386: gdt.c mptramp.S src/sys/arch/i386/include: gdt.h Log Message: Define MINGDTSIZ/MAXGDTSIZ in bytes, not in number of slots; same as amd64. To generate a diff of this commit: cvs rdiff -u -r1.61 -r1.62 src/sys/arch/i386/i386/gdt.c cvs rdiff -u -r1.29 -r1.30 src/sys/arch/i386/i386/mptramp.S cvs rdiff -u -r1.15 -r1.16 src/sys/arch/i386/include/gdt.h 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/i386/i386/gdt.c diff -u src/sys/arch/i386/i386/gdt.c:1.61 src/sys/arch/i386/i386/gdt.c:1.62 --- src/sys/arch/i386/i386/gdt.c:1.61 Sat Jun 17 09:32:53 2017 +++ src/sys/arch/i386/i386/gdt.c Sun Jul 2 09:02:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: gdt.c,v 1.61 2017/06/17 09:32:53 maxv Exp $ */ +/* $NetBSD: gdt.c,v 1.62 2017/07/02 09:02:06 maxv Exp $ */ /* * Copyright (c) 1996, 1997, 2009 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.61 2017/06/17 09:32:53 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.62 2017/07/02 09:02:06 maxv Exp $"); #include "opt_multiprocessor.h" #include "opt_xen.h" @@ -110,10 +110,10 @@ gdt_init(void) vaddr_t va; struct cpu_info *ci = &cpu_info_primary; - max_len = MAXGDTSIZ * sizeof(gdtstore[0]); - min_len = MINGDTSIZ * sizeof(gdtstore[0]); + max_len = MAXGDTSIZ; + min_len = MINGDTSIZ; - gdt_size = MINGDTSIZ; + gdt_size = (MINGDTSIZ / sizeof(gdtstore[0])); gdt_count = NGDT; gdt_next = NGDT; gdt_free = GNULL_SEL; @@ -146,8 +146,8 @@ gdt_init(void) void gdt_alloc_cpu(struct cpu_info *ci) { - int max_len = MAXGDTSIZ * sizeof(gdtstore[0]); - int min_len = MINGDTSIZ * sizeof(gdtstore[0]); + int max_len = MAXGDTSIZ; + int min_len = MINGDTSIZ; struct vm_page *pg; vaddr_t va; @@ -180,7 +180,7 @@ gdt_init_cpu(struct cpu_info *ci) struct region_descriptor region; size_t max_len; - max_len = MAXGDTSIZ * sizeof(gdtstore[0]); + max_len = MAXGDTSIZ; setregion(®ion, ci->ci_gdt, max_len - 1); lgdt(®ion); #else @@ -273,7 +273,7 @@ gdt_get_slot(void) if (gdt_next != gdt_count + offset) panic("gdt_get_slot botch 1"); if (gdt_next - offset >= gdt_size) { - if (gdt_size >= MAXGDTSIZ) + if (gdt_size >= (MAXGDTSIZ / sizeof(gdtstore[0]))) panic("gdt_get_slot botch 2"); gdt_grow(); } Index: src/sys/arch/i386/i386/mptramp.S diff -u src/sys/arch/i386/i386/mptramp.S:1.29 src/sys/arch/i386/i386/mptramp.S:1.30 --- src/sys/arch/i386/i386/mptramp.S:1.29 Sat May 14 08:34:00 2016 +++ src/sys/arch/i386/i386/mptramp.S Sun Jul 2 09:02:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: mptramp.S,v 1.29 2016/05/14 08:34:00 maxv Exp $ */ +/* $NetBSD: mptramp.S,v 1.30 2017/07/02 09:02:06 maxv Exp $ */ /* * Copyright (c) 2000, 2016 The NetBSD Foundation, Inc. @@ -75,7 +75,7 @@ */ #include <machine/asm.h> -__KERNEL_RCSID(0, "$NetBSD: mptramp.S,v 1.29 2016/05/14 08:34:00 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mptramp.S,v 1.30 2017/07/02 09:02:06 maxv Exp $"); #include "opt_mpbios.h" /* for MPDEBUG */ @@ -223,7 +223,7 @@ no_NOX: /* %ecx points at our cpu_info structure. */ - movw $((MAXGDTSIZ*8) - 1), 6(%esp) /* prepare segment descriptor */ + movw $(MAXGDTSIZ-1), 6(%esp) /* prepare segment descriptor */ movl CPU_INFO_GDT(%ecx), %eax /* for our real gdt */ movl %eax, 8(%esp) lgdt 6(%esp) Index: src/sys/arch/i386/include/gdt.h diff -u src/sys/arch/i386/include/gdt.h:1.15 src/sys/arch/i386/include/gdt.h:1.16 --- src/sys/arch/i386/include/gdt.h:1.15 Wed Feb 8 10:08:26 2017 +++ src/sys/arch/i386/include/gdt.h Sun Jul 2 09:02:06 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: gdt.h,v 1.15 2017/02/08 10:08:26 maxv Exp $ */ +/* $NetBSD: gdt.h,v 1.16 2017/07/02 09:02:06 maxv Exp $ */ /*- * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc. @@ -44,5 +44,5 @@ void ldt_free(int); #endif /* LOCORE */ -#define MINGDTSIZ 512 -#define MAXGDTSIZ 8192 +#define MINGDTSIZ PAGE_SIZE +#define MAXGDTSIZ 65536