changes since Xen 4.6.5: mostly bug fixes, including security fixes for XSA206, XSA211 to XSA244. PKGREVISION set to 1 to account for the fact that it's not a stock Xen 4.6.6. Note that, unlike upstream, pv-linear-pt defaults to true, so that NetBSD PV guests (including dom0) will continue to boot without changes to boot.cfg
56 lines
2.2 KiB
Text
56 lines
2.2 KiB
Text
$NetBSD: patch-XSA240,v 1.1 2017/10/17 10:57:34 bouyer Exp $
|
|
|
|
From eeea00c427376c269ffa34587f16fa1182d8c29d Mon Sep 17 00:00:00 2001
|
|
From: George Dunlap <george.dunlap@citrix.com>
|
|
Date: Fri, 22 Sep 2017 11:46:55 +0100
|
|
Subject: [PATCH 2/2] x86/mm: Disable PV linear pagetables by default
|
|
|
|
Allowing pagetables to point to other pagetables of the same level
|
|
(often called 'linear pagetables') has been included in Xen since its
|
|
inception. But it is not used by the most common PV guests (Linux,
|
|
NetBSD, minios), and has been the source of a number of subtle
|
|
reference-counting bugs.
|
|
|
|
Add a command-line option to control whether PV linear pagetables are
|
|
allowed (disabled by default).
|
|
|
|
Reported-by: Jann Horn <jannh@google.com>
|
|
Signed-off-by: George Dunlap <george.dunlap@citrix.com>
|
|
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
|
---
|
|
Changes since v2:
|
|
- s/_/-/; in command-line option
|
|
- Added __read_mostly
|
|
---
|
|
docs/misc/xen-command-line.markdown | 15 +++++++++++++++
|
|
xen/arch/x86/mm.c | 9 +++++++++
|
|
2 files changed, 24 insertions(+)
|
|
|
|
diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
|
|
index d99a20a44b..c91acaa464 100644
|
|
--- ../docs/misc/xen-command-line.markdown.orig
|
|
+++ ../docs/misc/xen-command-line.markdown
|
|
@@ -1231,6 +1231,21 @@ The following resources are available:
|
|
the cache allocation.
|
|
* `cat` instructs Xen to enable/disable Cache Allocation Technology.
|
|
* `cos_max` indicates the max value for COS ID.
|
|
+
|
|
+### pv-linear-pt
|
|
+> `= <boolean>`
|
|
+
|
|
+> Default: `true`
|
|
+
|
|
+Allow PV guests to have pagetable entries pointing to other pagetables
|
|
+of the same level (i.e., allowing L2 PTEs to point to other L2 pages).
|
|
+This technique is often called "linear pagetables", and is sometimes
|
|
+used to allow operating systems a simple way to consistently map the
|
|
+current process's pagetables into its own virtual address space.
|
|
+
|
|
+None of the most common PV operating systems (Linux, MiniOS)
|
|
+use this technique, but NetBSD in PV mode, and maybe custom operating
|
|
+systems do.
|
|
|
|
### reboot
|
|
> `= t[riple] | k[bd] | a[cpi] | p[ci] | P[ower] | e[fi] | n[o] [, [w]arm | [c]old]`
|
|
diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
|
|
index 81074aa473..75dd077046 100644
|