NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

PR/51148 CVS commit: src/sys/arch/x86



The following reply was made to PR kern/51148; it has been noted by GNATS.

From: "Maxime Villard" <maxv%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/51148 CVS commit: src/sys/arch/x86
Date: Mon, 25 Jul 2016 12:11:40 +0000

 Module Name:	src
 Committed By:	maxv
 Date:		Mon Jul 25 12:11:40 UTC 2016
 
 Modified Files:
 	src/sys/arch/x86/include: pmap.h
 	src/sys/arch/x86/x86: lapic.c pmap.c
 
 Log Message:
 The L1 entry of the first page of the data segment is overwritten for the
 LAPIC page, and set as RWX+PG_N. The LAPIC pa is fixed, and its va resides
 in the data segment. Because of this error-prone design, the kernel image
 map is not linear, and I first thought it was a bug (as I vaguely said in
 PR/51148). Using large pages for the data segment is therefore wrong, since
 the first page does not actually belong to the data segment (even if its va
 is in the range). This bug is not triggered currently, since local_apic is
 not large-page-aligned.
 
 We will certainly have to allocate a va dynamically instead of using the
 first page of data; but for now, disable large pages on the data segment,
 and map the LAPIC as RW.
 
 This is the last x86-specific RWX page.
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.58 -r1.59 src/sys/arch/x86/include/pmap.h
 cvs rdiff -u -r1.51 -r1.52 src/sys/arch/x86/x86/lapic.c
 cvs rdiff -u -r1.216 -r1.217 src/sys/arch/x86/x86/pmap.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index