Module Name: src Committed By: bouyer Date: Wed Sep 6 12:39:18 UTC 2017
Modified Files: src/sys/arch/amd64/amd64: gdt.c src/sys/arch/i386/i386: gdt.c Log Message: The last GDT slots are reserved for Xen, so use FIRST_RESERVED_GDT_BYTE instead of MAXGDTSIZ for gdt_size. Xen kernels should boot again. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/amd64/amd64/gdt.c cvs rdiff -u -r1.66 -r1.67 src/sys/arch/i386/i386/gdt.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/amd64/amd64/gdt.c diff -u src/sys/arch/amd64/amd64/gdt.c:1.41 src/sys/arch/amd64/amd64/gdt.c:1.42 --- src/sys/arch/amd64/amd64/gdt.c:1.41 Sat Sep 2 12:57:03 2017 +++ src/sys/arch/amd64/amd64/gdt.c Wed Sep 6 12:39:18 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: gdt.c,v 1.41 2017/09/02 12:57:03 maxv Exp $ */ +/* $NetBSD: gdt.c,v 1.42 2017/09/06 12:39:18 bouyer Exp $ */ /* * Copyright (c) 1996, 1997, 2009 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.41 2017/09/02 12:57:03 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.42 2017/09/06 12:39:18 bouyer Exp $"); #include "opt_multiprocessor.h" #include "opt_xen.h" @@ -130,7 +130,11 @@ gdt_init(void) struct cpu_info *ci = &cpu_info_primary; /* Initialize the global values */ +#ifdef XEN + gdt_size = FIRST_RESERVED_GDT_BYTE; +#else gdt_size = MAXGDTSIZ; +#endif memset(&gdt_bitmap.busy, 0, sizeof(gdt_bitmap.busy)); gdt_bitmap.nslots = NSLOTS(gdt_size); Index: src/sys/arch/i386/i386/gdt.c diff -u src/sys/arch/i386/i386/gdt.c:1.66 src/sys/arch/i386/i386/gdt.c:1.67 --- src/sys/arch/i386/i386/gdt.c:1.66 Sat Sep 2 12:57:03 2017 +++ src/sys/arch/i386/i386/gdt.c Wed Sep 6 12:39:18 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: gdt.c,v 1.66 2017/09/02 12:57:03 maxv Exp $ */ +/* $NetBSD: gdt.c,v 1.67 2017/09/06 12:39:18 bouyer 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.66 2017/09/02 12:57:03 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: gdt.c,v 1.67 2017/09/06 12:39:18 bouyer Exp $"); #include "opt_multiprocessor.h" #include "opt_xen.h" @@ -119,7 +119,11 @@ gdt_init(void) struct cpu_info *ci = &cpu_info_primary; /* Initialize the global values */ +#ifdef XEN + gdt_size = FIRST_RESERVED_GDT_BYTE; +#else gdt_size = MAXGDTSIZ; +#endif memset(&gdt_bitmap.busy, 0, sizeof(gdt_bitmap.busy)); gdt_bitmap.nslots = NSLOTS(gdt_size);