- Upstream pygrub patches for grub2 support and fixes
23686-pygrub-solaris.patch 23697-pygrub-grub2.patch 23944-pygrub-debug.patch 23998-pygrub-GPT.patch 23999-pygrub-grub2.patch 24064-pygrub-HybridISO.patch 24401-pygrub-scrolling.patch 24402-pygrub-edit-fix.patch 24460-pygrub-extlinux.patch 24706-pygrub-extlinux.patch - Revised version of security patch and an additional patch for bnc#764077 x86_64-AMD-erratum-121.patch x86_64-allow-unsafe-adjust.patch - bnc#764077 - VUL-0: EMBARGOED: xen: XSA-9: denial of service on older AMD systems x86_64-AMD-erratum-121.patch - Revised version of security patch for bnc#757537 x86_64-sysret-canonical.patch - bnc#757537 - VUL-0: xen: CVE-2012-0217 PV guest escalation x86_64-sysret-canonical.patch - bnc#757970 - VUL-1: xen: guest denial of service on syscall GPF generation x86_64-trap-bounce-flags.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=190
This commit is contained in:
parent
0e9e131edf
commit
81501c15a5
43
23686-pygrub-solaris.patch
Normal file
43
23686-pygrub-solaris.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User tools/pygrub: fix solaris kernel sniff
|
||||||
|
# Date 1310663398 -3600
|
||||||
|
# Node ID 7c39a2c0d870f9a374f181b581bcf82a2a7ff364
|
||||||
|
# Parent 5239811f92e1ffb185a50172fdcf47372e71ba7e
|
||||||
|
tools/pygrub: fix solaris kernel sniff
|
||||||
|
|
||||||
|
Solaris 11 build 163+ removes '/platform/i86xpv/kernel/unix' and only the
|
||||||
|
64-bit PV kernel file '/platform/i86xpv/kernel/amd64/unix' exists.
|
||||||
|
|
||||||
|
This patch fixes the detection.
|
||||||
|
|
||||||
|
Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
|
||||||
|
Signed-off-by: Kurt Hackel <kurt.hackel@oracle.com>
|
||||||
|
Signed-off-by: Frank Che <frank.che@oracle.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r 5239811f92e1 -r 7c39a2c0d870 tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Thu Jul 14 15:49:49 2011 +0100
|
||||||
|
+++ b/tools/pygrub/src/pygrub Thu Jul 14 18:09:58 2011 +0100
|
||||||
|
@@ -594,7 +594,8 @@
|
||||||
|
# If nothing has been specified, look for a Solaris domU. If found, perform the
|
||||||
|
# necessary tweaks.
|
||||||
|
def sniff_solaris(fs, cfg):
|
||||||
|
- if not fs.file_exists("/platform/i86xpv/kernel/unix"):
|
||||||
|
+ if not fs.file_exists("/platform/i86xpv/kernel/unix") and \
|
||||||
|
+ not fs.file_exists("/platform/i86xpv/kernel/amd64/unix"):
|
||||||
|
return cfg
|
||||||
|
|
||||||
|
if not cfg["kernel"]:
|
||||||
|
@@ -602,9 +603,11 @@
|
||||||
|
fs.file_exists("/platform/i86xpv/kernel/amd64/unix"):
|
||||||
|
cfg["kernel"] = "/platform/i86xpv/kernel/amd64/unix"
|
||||||
|
cfg["ramdisk"] = "/platform/i86pc/amd64/boot_archive"
|
||||||
|
- else:
|
||||||
|
+ elif fs.file_exists("/platform/i86xpv/kernel/unix"):
|
||||||
|
cfg["kernel"] = "/platform/i86xpv/kernel/unix"
|
||||||
|
cfg["ramdisk"] = "/platform/i86pc/boot_archive"
|
||||||
|
+ else:
|
||||||
|
+ return cfg
|
||||||
|
|
||||||
|
# Unpleasant. Typically we'll have 'root=foo -k' or 'root=foo /kernel -k',
|
||||||
|
# and we need to maintain Xen properties (root= and ip=) and the kernel
|
36
23697-pygrub-grub2.patch
Normal file
36
23697-pygrub-grub2.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
# Date 1310749975 -3600
|
||||||
|
# Node ID 5e1032229546c2d5640dc05205303d91d78a92c3
|
||||||
|
# Parent c1d7fa123dae73708da7306c0ec611d6fa6a6140
|
||||||
|
pygrub: prefer Grub2 to Grub1
|
||||||
|
|
||||||
|
If a VM image has grub2 installed it is likely the one we need to be using.
|
||||||
|
|
||||||
|
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r c1d7fa123dae -r 5e1032229546 tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Fri Jul 15 18:09:49 2011 +0100
|
||||||
|
+++ b/tools/pygrub/src/pygrub Fri Jul 15 18:12:55 2011 +0100
|
||||||
|
@@ -385,14 +385,14 @@
|
||||||
|
# fallbacks
|
||||||
|
["/efi/boot/elilo.conf", "/elilo.conf",])
|
||||||
|
else:
|
||||||
|
- cfg_list = map(lambda x: (x,grub.GrubConf.GrubConfigFile),
|
||||||
|
- ["/boot/grub/menu.lst", "/boot/grub/grub.conf",
|
||||||
|
- "/grub/menu.lst", "/grub/grub.conf"]) + \
|
||||||
|
- map(lambda x: (x,grub.GrubConf.Grub2ConfigFile),
|
||||||
|
+ cfg_list = map(lambda x: (x,grub.GrubConf.Grub2ConfigFile),
|
||||||
|
["/boot/grub/grub.cfg", "/grub/grub.cfg"]) + \
|
||||||
|
map(lambda x: (x,grub.ExtLinuxConf.ExtLinuxConfigFile),
|
||||||
|
["/boot/isolinux/isolinux.cfg",
|
||||||
|
- "/boot/extlinux.conf"])
|
||||||
|
+ "/boot/extlinux.conf"]) + \
|
||||||
|
+ map(lambda x: (x,grub.GrubConf.GrubConfigFile),
|
||||||
|
+ ["/boot/grub/menu.lst", "/boot/grub/grub.conf",
|
||||||
|
+ "/grub/menu.lst", "/grub/grub.conf"])
|
||||||
|
|
||||||
|
if not fs:
|
||||||
|
# set the config file and parse it
|
72
23944-pygrub-debug.patch
Normal file
72
23944-pygrub-debug.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Guido Gunther <agx@sigxcpu.org>
|
||||||
|
# Date 1318330978 -3600
|
||||||
|
# Node ID 4b0907c6a08c348962bd976c2976257b412408be
|
||||||
|
# Parent 1185ae04b5aad429fd68d1872f404791df627965
|
||||||
|
pygrub: add debug flag
|
||||||
|
|
||||||
|
Debugging config file errors is tedious so help a bit by not silently
|
||||||
|
dropping parsing exceptions when --debug is given. Also intialize the
|
||||||
|
logging API at debug level in this case.
|
||||||
|
|
||||||
|
Signed-off-by: Guido Gunther <agx@sigxcpu.org>
|
||||||
|
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r 1185ae04b5aa -r 4b0907c6a08c tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Tue Oct 11 10:46:28 2011 +0100
|
||||||
|
+++ b/tools/pygrub/src/pygrub Tue Oct 11 12:02:58 2011 +0100
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
-import os, sys, string, struct, tempfile, re
|
||||||
|
+import os, sys, string, struct, tempfile, re, traceback
|
||||||
|
import copy
|
||||||
|
import logging
|
||||||
|
import platform
|
||||||
|
@@ -665,7 +665,7 @@
|
||||||
|
["quiet", "interactive", "not-really", "help",
|
||||||
|
"output=", "output-format=", "output-directory=",
|
||||||
|
"entry=", "kernel=",
|
||||||
|
- "ramdisk=", "args=", "isconfig"])
|
||||||
|
+ "ramdisk=", "args=", "isconfig", "debug"])
|
||||||
|
except getopt.GetoptError:
|
||||||
|
usage()
|
||||||
|
sys.exit(1)
|
||||||
|
@@ -679,6 +679,7 @@
|
||||||
|
entry = None
|
||||||
|
interactive = True
|
||||||
|
isconfig = False
|
||||||
|
+ debug = False
|
||||||
|
not_really = False
|
||||||
|
output_format = "sxp"
|
||||||
|
output_directory = "/var/run/xend/boot"
|
||||||
|
@@ -714,6 +715,8 @@
|
||||||
|
interactive = False
|
||||||
|
elif o in ("--isconfig",):
|
||||||
|
isconfig = True
|
||||||
|
+ elif o in ("--debug",):
|
||||||
|
+ debug = True
|
||||||
|
elif o in ("--output-format",):
|
||||||
|
if a not in ["sxp", "simple", "simple0"]:
|
||||||
|
print "unkonwn output format %s" % a
|
||||||
|
@@ -723,6 +726,9 @@
|
||||||
|
elif o in ("--output-directory",):
|
||||||
|
output_directory = a
|
||||||
|
|
||||||
|
+ if debug:
|
||||||
|
+ logging.basicConfig(level=logging.DEBUG)
|
||||||
|
+
|
||||||
|
if output is None or output == "-":
|
||||||
|
fd = sys.stdout.fileno()
|
||||||
|
else:
|
||||||
|
@@ -769,6 +775,8 @@
|
||||||
|
except:
|
||||||
|
# IOErrors raised by fsimage.open
|
||||||
|
# RuntimeErrors raised by run_grub if no menu.lst present
|
||||||
|
+ if debug:
|
||||||
|
+ traceback.print_exc()
|
||||||
|
fs = None
|
||||||
|
continue
|
||||||
|
|
53
23998-pygrub-GPT.patch
Normal file
53
23998-pygrub-GPT.patch
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Michael Young <m.a.young@durham.ac.uk>
|
||||||
|
# Date 1319566554 -3600
|
||||||
|
# Node ID 85d7b207fabcd1cbda8f93e3937c5990f42a2cf9
|
||||||
|
# Parent f273bce1fc265b9f71879705639a0b14da03f6e1
|
||||||
|
pygrub: check all GPT partitions
|
||||||
|
|
||||||
|
On Fedora 16 the first GPT partition is a boot partition for grub2 with
|
||||||
|
the grub2 configuration in the second partition.
|
||||||
|
Check all GPT partitions for grub configuration, not just the first.
|
||||||
|
|
||||||
|
[ Also remove now-inaccurate comment. -iwj ]
|
||||||
|
|
||||||
|
Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
|
||||||
|
Tested-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
|
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r f273bce1fc26 -r 85d7b207fabc tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Tue Oct 25 17:04:41 2011 +0100
|
||||||
|
+++ b/tools/pygrub/src/pygrub Tue Oct 25 19:15:54 2011 +0100
|
||||||
|
@@ -77,10 +77,17 @@
|
||||||
|
|
||||||
|
def get_fs_offset_gpt(file):
|
||||||
|
fd = os.open(file, os.O_RDONLY)
|
||||||
|
- # assume the first partition is an EFI system partition.
|
||||||
|
- os.lseek(fd, SECTOR_SIZE * 2, 0)
|
||||||
|
+ os.lseek(fd, SECTOR_SIZE, 0)
|
||||||
|
buf = os.read(fd, 512)
|
||||||
|
- return struct.unpack("<Q", buf[32:40])[0] * SECTOR_SIZE
|
||||||
|
+ partcount = struct.unpack("<L", buf[80:84])[0]
|
||||||
|
+ partsize = struct.unpack("<L", buf[84:88])[0]
|
||||||
|
+ i = partcount
|
||||||
|
+ offsets = []
|
||||||
|
+ while i>0:
|
||||||
|
+ buf = os.read(fd, partsize)
|
||||||
|
+ offsets.append(struct.unpack("<Q", buf[32:40])[0] * SECTOR_SIZE)
|
||||||
|
+ i -= 1
|
||||||
|
+ return offsets
|
||||||
|
|
||||||
|
FDISK_PART_SOLARIS=0xbf
|
||||||
|
FDISK_PART_SOLARIS_OLD=0x82
|
||||||
|
@@ -114,7 +121,9 @@
|
||||||
|
continue # no solaris magic at that offset, ignore partition
|
||||||
|
|
||||||
|
if type == FDISK_PART_GPT:
|
||||||
|
- offset = get_fs_offset_gpt(file)
|
||||||
|
+ for offset in get_fs_offset_gpt(file):
|
||||||
|
+ part_offs.append(offset)
|
||||||
|
+ break
|
||||||
|
|
||||||
|
# Active partition has 0x80 as the first byte.
|
||||||
|
# If active, prepend to front of list, otherwise append to back.
|
26
23999-pygrub-grub2.patch
Normal file
26
23999-pygrub-grub2.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Michael Young <m.a.young@durham.ac.uk>
|
||||||
|
# Date 1319566729 -3600
|
||||||
|
# Node ID 138f707fa598340749a70a79748b01dff850b8f2
|
||||||
|
# Parent 85d7b207fabcd1cbda8f93e3937c5990f42a2cf9
|
||||||
|
pygrub: look in /boot/grub2 (for eg Fedora 16)
|
||||||
|
|
||||||
|
Fedora 16 puts grub configuration files in /boot/grub2/grub.cfg so
|
||||||
|
pygrub should look there as well
|
||||||
|
|
||||||
|
Signed-off-by: Michael Young <m.a.young@durham.ac.uk>
|
||||||
|
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
|
||||||
|
diff -r 85d7b207fabc -r 138f707fa598 tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Tue Oct 25 19:15:54 2011 +0100
|
||||||
|
+++ b/tools/pygrub/src/pygrub Tue Oct 25 19:18:49 2011 +0100
|
||||||
|
@@ -395,7 +395,8 @@
|
||||||
|
["/efi/boot/elilo.conf", "/elilo.conf",])
|
||||||
|
else:
|
||||||
|
cfg_list = map(lambda x: (x,grub.GrubConf.Grub2ConfigFile),
|
||||||
|
- ["/boot/grub/grub.cfg", "/grub/grub.cfg"]) + \
|
||||||
|
+ ["/boot/grub/grub.cfg", "/grub/grub.cfg",
|
||||||
|
+ "/boot/grub2/grub.cfg", "/grub2/grub.cfg"]) + \
|
||||||
|
map(lambda x: (x,grub.ExtLinuxConf.ExtLinuxConfigFile),
|
||||||
|
["/boot/isolinux/isolinux.cfg",
|
||||||
|
"/boot/extlinux.conf"]) + \
|
72
24064-pygrub-HybridISO.patch
Normal file
72
24064-pygrub-HybridISO.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Philipp Hahn <hahn@univention.de>
|
||||||
|
# Date 1320251337 0
|
||||||
|
# Node ID 2d741388060df5bd2545f38a25278fb9a7fbb127
|
||||||
|
# Parent 6868855b6651639f02004a7e313fe7aaba522821
|
||||||
|
pygrub: Add HybridISO support for PyGrub2
|
||||||
|
|
||||||
|
grub-mkrescue internally uses xorriso, which generates a so-called
|
||||||
|
"Hybrid ISO": The ISO images also contains a DOS partition table,
|
||||||
|
which allows the identical ISO file to be stored on an USB stick for
|
||||||
|
booting from it. This breaks PyGrub, since it (wrongly) detects only
|
||||||
|
the DOS partition table and uses the first partition instead of the
|
||||||
|
complete ISO file.
|
||||||
|
|
||||||
|
Add a check to detect HybridISO files and use offset 0 in addition to
|
||||||
|
partition table parsing.
|
||||||
|
|
||||||
|
Signed-off-by: Philipp Hahn <hahn@univention.de>
|
||||||
|
Acked-by: Ian Campbell <ian.campbell@citrix.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r 6868855b6651 -r 2d741388060d tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Wed Nov 02 16:25:18 2011 +0000
|
||||||
|
+++ b/tools/pygrub/src/pygrub Wed Nov 02 16:28:57 2011 +0000
|
||||||
|
@@ -40,15 +40,20 @@
|
||||||
|
except _curses.error:
|
||||||
|
pass
|
||||||
|
|
||||||
|
-def is_disk_image(file):
|
||||||
|
+DISK_TYPE_RAW, DISK_TYPE_HYBRIDISO, DISK_TYPE_DOS = range(3)
|
||||||
|
+def identify_disk_image(file):
|
||||||
|
+ """Detect DOS partition table or HybridISO format."""
|
||||||
|
fd = os.open(file, os.O_RDONLY)
|
||||||
|
- buf = os.read(fd, 512)
|
||||||
|
+ buf = os.read(fd, 0x8006)
|
||||||
|
os.close(fd)
|
||||||
|
|
||||||
|
if len(buf) >= 512 and \
|
||||||
|
struct.unpack("H", buf[0x1fe: 0x200]) == (0xaa55,):
|
||||||
|
- return True
|
||||||
|
- return False
|
||||||
|
+ # HybridISO contains a DOS partition table for booting from USB devices, but really is an ISO image
|
||||||
|
+ if len(buf) >= 0x8006 and buf[0x8001:0x8006] == 'CD001':
|
||||||
|
+ return DISK_TYPE_HYBRIDISO
|
||||||
|
+ return DISK_TYPE_DOS
|
||||||
|
+ return DISK_TYPE_RAW
|
||||||
|
|
||||||
|
SECTOR_SIZE=512
|
||||||
|
DK_LABEL_LOC=1
|
||||||
|
@@ -94,12 +99,19 @@
|
||||||
|
FDISK_PART_GPT=0xee
|
||||||
|
|
||||||
|
def get_partition_offsets(file):
|
||||||
|
- if not is_disk_image(file):
|
||||||
|
+ image_type = identify_disk_image(file)
|
||||||
|
+ if image_type == DISK_TYPE_RAW:
|
||||||
|
# No MBR: assume whole disk filesystem, which is like a
|
||||||
|
# single partition starting at 0
|
||||||
|
return [0]
|
||||||
|
-
|
||||||
|
- part_offs = []
|
||||||
|
+ elif image_type == DISK_TYPE_HYBRIDISO:
|
||||||
|
+ # A HybridISO contains an ISO filesystem at 0 in addition
|
||||||
|
+ # to the DOS partition table
|
||||||
|
+ part_offs = [0]
|
||||||
|
+ elif image_type == DISK_TYPE_DOS:
|
||||||
|
+ part_offs = []
|
||||||
|
+ else:
|
||||||
|
+ raise ValueError('Unhandled image type returnd by identify_disk_image(): %d' % (image_type,))
|
||||||
|
|
||||||
|
fd = os.open(file, os.O_RDONLY)
|
||||||
|
buf = os.read(fd, 512)
|
87
24401-pygrub-scrolling.patch
Normal file
87
24401-pygrub-scrolling.patch
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
# Date 1323790700 0
|
||||||
|
# Node ID c04ec56f4a6d381bfacd31fbcaefdaa206a914f1
|
||||||
|
# Parent 63e5005d58ca5674e790ef627e7fb3c8c66c5374
|
||||||
|
pygrub: Allow scrolling of the list of entries
|
||||||
|
|
||||||
|
When user wants to change entry in grub2 menu in pygrub, there
|
||||||
|
may be crash of pygrub in case of editing item ('e' key).
|
||||||
|
|
||||||
|
Crash on editing is caused longer entry list in case of grub2. As entry
|
||||||
|
window is 10 lines high, it can hold only 8 entries (2 lines for border).
|
||||||
|
Adding line outside of windows high causes crash. Patch add handling
|
||||||
|
for longer lists and scrolling through them.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r 63e5005d58ca -r c04ec56f4a6d tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Tue Dec 13 15:31:12 2011 +0000
|
||||||
|
+++ b/tools/pygrub/src/pygrub Tue Dec 13 15:38:20 2011 +0000
|
||||||
|
@@ -221,6 +221,7 @@
|
||||||
|
|
||||||
|
|
||||||
|
class Grub:
|
||||||
|
+ ENTRY_WIN_LINES = 8
|
||||||
|
def __init__(self, file, fs = None):
|
||||||
|
self.screen = None
|
||||||
|
self.entry_win = None
|
||||||
|
@@ -238,7 +239,7 @@
|
||||||
|
except:
|
||||||
|
pass # Not important if we can't use colour
|
||||||
|
enable_cursor(False)
|
||||||
|
- self.entry_win = curses.newwin(10, 74, 2, 1)
|
||||||
|
+ self.entry_win = curses.newwin(Grub.ENTRY_WIN_LINES + 2, 74, 2, 1)
|
||||||
|
self.text_win = curses.newwin(10, 70, 12, 5)
|
||||||
|
curses.def_prog_mode()
|
||||||
|
|
||||||
|
@@ -287,12 +288,20 @@
|
||||||
|
self.text_win.noutrefresh()
|
||||||
|
|
||||||
|
curline = 0
|
||||||
|
+ pos = 0
|
||||||
|
img = copy.deepcopy(origimg)
|
||||||
|
while 1:
|
||||||
|
draw()
|
||||||
|
self.entry_win.erase()
|
||||||
|
- self.entry_win.box()
|
||||||
|
- for idx in range(0, len(img.lines)):
|
||||||
|
+
|
||||||
|
+ rs = 0
|
||||||
|
+ re = len(img.lines)
|
||||||
|
+ idp = 1
|
||||||
|
+ if re > Grub.ENTRY_WIN_LINES:
|
||||||
|
+ rs = curline - pos
|
||||||
|
+ re = rs + Grub.ENTRY_WIN_LINES
|
||||||
|
+
|
||||||
|
+ for idx in range(rs, re):
|
||||||
|
# current line should be highlighted
|
||||||
|
if idx == curline:
|
||||||
|
self.entry_win.attron(curses.A_REVERSE)
|
||||||
|
@@ -302,9 +311,11 @@
|
||||||
|
if len(l) > 70:
|
||||||
|
l = l[:69] + ">"
|
||||||
|
|
||||||
|
- self.entry_win.addstr(idx + 1, 2, l)
|
||||||
|
+ self.entry_win.addstr(idp, 2, l)
|
||||||
|
if idx == curline:
|
||||||
|
self.entry_win.attroff(curses.A_REVERSE)
|
||||||
|
+ idp += 1
|
||||||
|
+ self.entry_win.box()
|
||||||
|
self.entry_win.noutrefresh()
|
||||||
|
curses.doupdate()
|
||||||
|
|
||||||
|
@@ -313,8 +324,12 @@
|
||||||
|
break
|
||||||
|
elif c == curses.KEY_UP:
|
||||||
|
curline -= 1
|
||||||
|
+ if pos > 0:
|
||||||
|
+ pos -= 1
|
||||||
|
elif c == curses.KEY_DOWN:
|
||||||
|
curline += 1
|
||||||
|
+ if pos < Grub.ENTRY_WIN_LINES - 1:
|
||||||
|
+ pos += 1
|
||||||
|
elif c == ord('b'):
|
||||||
|
self.isdone = True
|
||||||
|
break
|
29
24402-pygrub-edit-fix.patch
Normal file
29
24402-pygrub-edit-fix.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
# Date 1323790768 0
|
||||||
|
# Node ID 983b551e44077ace454a397181c93533e0a534b5
|
||||||
|
# Parent c04ec56f4a6d381bfacd31fbcaefdaa206a914f1
|
||||||
|
pygrub: Fix "a" entry editing in grub2
|
||||||
|
|
||||||
|
When user wants to change entry in grub2 menu in pygrub, there's no
|
||||||
|
response in case of appending command line arguments ('a' key).
|
||||||
|
|
||||||
|
Append malfunction is caused by change of keyword used for kernel
|
||||||
|
record. Grub uses 'kernel' for line with linux kernel but grub2 uses
|
||||||
|
'linux' instead. This patch adds checking for both grub 1 and 2 keywords.
|
||||||
|
|
||||||
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r c04ec56f4a6d -r 983b551e4407 tools/pygrub/src/pygrub
|
||||||
|
--- a/tools/pygrub/src/pygrub Tue Dec 13 15:38:20 2011 +0000
|
||||||
|
+++ b/tools/pygrub/src/pygrub Tue Dec 13 15:39:28 2011 +0000
|
||||||
|
@@ -522,7 +522,7 @@
|
||||||
|
# find the kernel line, edit it and then boot
|
||||||
|
img = self.cf.images[self.selected_image]
|
||||||
|
for line in img.lines:
|
||||||
|
- if line.startswith("kernel"):
|
||||||
|
+ if line.startswith("kernel") or line.startswith("linux"):
|
||||||
|
l = self.edit_line(line)
|
||||||
|
if l is not None:
|
||||||
|
img.set_from_line(l, replace = True)
|
69
24460-pygrub-extlinux.patch
Normal file
69
24460-pygrub-extlinux.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Roger Pau Monne <roger.pau@entel.upc.edu>
|
||||||
|
# Date 1325592706 -3600
|
||||||
|
# Node ID ff0685e8419bc54b631f017c63a983362363c87a
|
||||||
|
# Parent caf9753d4cc100183eeda26d00c8c38f14215651
|
||||||
|
pygrub: fix extlinux parsing
|
||||||
|
|
||||||
|
pygrub was unable to parse extlinux config files correctly, exactly
|
||||||
|
the ones like:
|
||||||
|
|
||||||
|
LABEL grsec
|
||||||
|
KERNEL vmlinuz-3.0.10-grsec
|
||||||
|
APPEND initrd=initramfs-3.0.10-grsec
|
||||||
|
root=UUID=cfd4a7b4-8c40-4025-b877-8205f1c622ee
|
||||||
|
modules=sd-mod,usb-storage,ext4 xen quiet
|
||||||
|
|
||||||
|
This patch fixes it, adding a new case when parsing the "append" line,
|
||||||
|
that searches for the initrd image.
|
||||||
|
|
||||||
|
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
|
||||||
|
Acked-by: Ian Campbell <ian.campbell.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson.citrix.com>
|
||||||
|
|
||||||
|
diff -r caf9753d4cc1 -r ff0685e8419b tools/pygrub/examples/alpine-linux-2.3.2.extlinux
|
||||||
|
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
|
||||||
|
+++ b/tools/pygrub/examples/alpine-linux-2.3.2.extlinux Tue Jan 03 13:11:46 2012 +0100
|
||||||
|
@@ -0,0 +1,11 @@
|
||||||
|
+DEFAULT menu.c32
|
||||||
|
+PROMPT 0
|
||||||
|
+MENU TITLE Alpine/Linux Boot Menu
|
||||||
|
+MENU HIDDEN
|
||||||
|
+MENU AUTOBOOT Alpine will be booted automatically in # seconds.
|
||||||
|
+TIMEOUT 30
|
||||||
|
+LABEL grsec
|
||||||
|
+ MENU DEFAULT
|
||||||
|
+ MENU LABEL Linux 3.0.10-grsec
|
||||||
|
+ KERNEL vmlinuz-3.0.10-grsec
|
||||||
|
+ APPEND initrd=initramfs-3.0.10-grsec root=UUID=a97ffe64-430f-4fd3-830e-4736d9a27af0 modules=sd-mod,usb-storage,ext4 quiet
|
||||||
|
diff -r caf9753d4cc1 -r ff0685e8419b tools/pygrub/src/ExtLinuxConf.py
|
||||||
|
--- a/tools/pygrub/src/ExtLinuxConf.py Thu Jan 05 17:13:33 2012 +0000
|
||||||
|
+++ b/tools/pygrub/src/ExtLinuxConf.py Tue Jan 03 13:11:46 2012 +0100
|
||||||
|
@@ -60,6 +60,13 @@
|
||||||
|
|
||||||
|
# Bypass regular self.commands handling
|
||||||
|
com = None
|
||||||
|
+ elif arg.find("initrd="):
|
||||||
|
+ # find initrd image in append line
|
||||||
|
+ args = arg.strip().split(" ")
|
||||||
|
+ for a in args:
|
||||||
|
+ if a.lower().startswith("initrd="):
|
||||||
|
+ setattr(self, "initrd", a.replace("initrd=", ""))
|
||||||
|
+ arg = arg.replace(a, "")
|
||||||
|
|
||||||
|
if com is not None and self.commands.has_key(com):
|
||||||
|
if self.commands[com] is not None:
|
||||||
|
@@ -86,10 +93,12 @@
|
||||||
|
self._args = args
|
||||||
|
def get_kernel(self):
|
||||||
|
return self._kernel
|
||||||
|
+ def set_args(self, val):
|
||||||
|
+ self._args = val
|
||||||
|
def get_args(self):
|
||||||
|
return self._args
|
||||||
|
kernel = property(get_kernel, set_kernel)
|
||||||
|
- args = property(get_args)
|
||||||
|
+ args = property(get_args, set_args)
|
||||||
|
|
||||||
|
def set_initrd(self, val):
|
||||||
|
self._initrd = (None,val)
|
29
24706-pygrub-extlinux.patch
Normal file
29
24706-pygrub-extlinux.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# User Roger Pau Monne <roger.pau@entel.upc.edu>
|
||||||
|
# Date 1328635287 0
|
||||||
|
# Node ID f84f34ec5fc7613d7a6dd53d18218656c11f0daa
|
||||||
|
# Parent 7a58296824c3bf7a15d563a7a140d20c369c96c8
|
||||||
|
pygrub: extlinux parsing correctness
|
||||||
|
|
||||||
|
The "in" operator should be used instead of the find method, since
|
||||||
|
we are only interested in knowing whether the line contains "initrd=",
|
||||||
|
but we don't care about it's position. Also fixes an error that
|
||||||
|
happens when initrd= it's at the start of the line, since find returns
|
||||||
|
0 and is evaluated as False.
|
||||||
|
|
||||||
|
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
|
||||||
|
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||||
|
|
||||||
|
diff -r 7a58296824c3 -r f84f34ec5fc7 tools/pygrub/src/ExtLinuxConf.py
|
||||||
|
--- a/tools/pygrub/src/ExtLinuxConf.py Tue Feb 07 17:18:10 2012 +0000
|
||||||
|
+++ b/tools/pygrub/src/ExtLinuxConf.py Tue Feb 07 17:21:27 2012 +0000
|
||||||
|
@@ -60,7 +60,7 @@
|
||||||
|
|
||||||
|
# Bypass regular self.commands handling
|
||||||
|
com = None
|
||||||
|
- elif arg.find("initrd="):
|
||||||
|
+ elif "initrd=" in arg:
|
||||||
|
# find initrd image in append line
|
||||||
|
args = arg.strip().split(" ")
|
||||||
|
for a in args:
|
38
x86_64-AMD-erratum-121.patch
Normal file
38
x86_64-AMD-erratum-121.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
References: CVE-2012-2934, bnc#764077
|
||||||
|
|
||||||
|
--- a/xen/arch/x86/cpu/amd.c
|
||||||
|
+++ b/xen/arch/x86/cpu/amd.c
|
||||||
|
@@ -32,6 +32,9 @@
|
||||||
|
static char opt_famrev[14];
|
||||||
|
string_param("cpuid_mask_cpu", opt_famrev);
|
||||||
|
|
||||||
|
+static int opt_allow_unsafe;
|
||||||
|
+boolean_param("allow_unsafe", opt_allow_unsafe);
|
||||||
|
+
|
||||||
|
static inline void wrmsr_amd(unsigned int index, unsigned int lo,
|
||||||
|
unsigned int hi)
|
||||||
|
{
|
||||||
|
@@ -620,6 +623,11 @@ static void __devinit init_amd(struct cp
|
||||||
|
clear_bit(X86_FEATURE_MCE, c->x86_capability);
|
||||||
|
|
||||||
|
#ifdef __x86_64__
|
||||||
|
+ if (cpu_has_amd_erratum(c, AMD_ERRATUM_121) && !opt_allow_unsafe)
|
||||||
|
+ panic("Xen will not boot on this CPU for security reasons.\n"
|
||||||
|
+ "Pass \"allow_unsafe\" if you're trusting all your"
|
||||||
|
+ " (PV) guest kernels.\n");
|
||||||
|
+
|
||||||
|
/* AMD CPUs do not support SYSENTER outside of legacy mode. */
|
||||||
|
clear_bit(X86_FEATURE_SEP, c->x86_capability);
|
||||||
|
|
||||||
|
--- a/xen/include/asm-x86/amd.h
|
||||||
|
+++ b/xen/include/asm-x86/amd.h
|
||||||
|
@@ -127,6 +127,9 @@
|
||||||
|
#define AMD_MODEL_RANGE_START(range) (((range) >> 12) & 0xfff)
|
||||||
|
#define AMD_MODEL_RANGE_END(range) ((range) & 0xfff)
|
||||||
|
|
||||||
|
+#define AMD_ERRATUM_121 \
|
||||||
|
+ AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x0f, 0x0, 0x0, 0x3f, 0xf))
|
||||||
|
+
|
||||||
|
#define AMD_ERRATUM_170 \
|
||||||
|
AMD_LEGACY_ERRATUM(AMD_MODEL_RANGE(0x0f, 0x0, 0x0, 0x67, 0xf))
|
||||||
|
|
86
x86_64-allow-unsafe-adjust.patch
Normal file
86
x86_64-allow-unsafe-adjust.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
References: CVE-2012-2934, bnc#764077
|
||||||
|
|
||||||
|
Product management demanded that customer systems must continue to boot
|
||||||
|
irrespective of the presence of XSA-9. Rather than having our and
|
||||||
|
perhaps other distros carry non-trivial patches, allow for more fine
|
||||||
|
grained control (panic on boot, deny guest creation, or merely warn) by
|
||||||
|
means of a single line change.
|
||||||
|
|
||||||
|
--- a/xen/arch/x86/cpu/amd.c
|
||||||
|
+++ b/xen/arch/x86/cpu/amd.c
|
||||||
|
@@ -32,8 +32,11 @@
|
||||||
|
static char opt_famrev[14];
|
||||||
|
string_param("cpuid_mask_cpu", opt_famrev);
|
||||||
|
|
||||||
|
-static int opt_allow_unsafe;
|
||||||
|
+#ifdef __x86_64__
|
||||||
|
+/* 1 = allow, 0 = don't allow guest creation, -1 = don't allow boot */
|
||||||
|
+int __read_mostly opt_allow_unsafe;
|
||||||
|
boolean_param("allow_unsafe", opt_allow_unsafe);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
static inline void wrmsr_amd(unsigned int index, unsigned int lo,
|
||||||
|
unsigned int hi)
|
||||||
|
@@ -623,10 +626,19 @@ static void __devinit init_amd(struct cp
|
||||||
|
clear_bit(X86_FEATURE_MCE, c->x86_capability);
|
||||||
|
|
||||||
|
#ifdef __x86_64__
|
||||||
|
- if (cpu_has_amd_erratum(c, AMD_ERRATUM_121) && !opt_allow_unsafe)
|
||||||
|
+ if (!cpu_has_amd_erratum(c, AMD_ERRATUM_121))
|
||||||
|
+ opt_allow_unsafe = 1;
|
||||||
|
+ else if (opt_allow_unsafe < 0)
|
||||||
|
panic("Xen will not boot on this CPU for security reasons.\n"
|
||||||
|
"Pass \"allow_unsafe\" if you're trusting all your"
|
||||||
|
" (PV) guest kernels.\n");
|
||||||
|
+ else if (!opt_allow_unsafe && c == &boot_cpu_data)
|
||||||
|
+ printk(KERN_WARNING
|
||||||
|
+ "*** Xen will not allow creation of DomU-s on"
|
||||||
|
+ " this CPU for security reasons. ***\n"
|
||||||
|
+ KERN_WARNING
|
||||||
|
+ "*** Pass \"allow_unsafe\" if you're trusting"
|
||||||
|
+ " all your (PV) guest kernels. ***\n");
|
||||||
|
|
||||||
|
/* AMD CPUs do not support SYSENTER outside of legacy mode. */
|
||||||
|
clear_bit(X86_FEATURE_SEP, c->x86_capability);
|
||||||
|
--- a/xen/arch/x86/domain.c
|
||||||
|
+++ b/xen/arch/x86/domain.c
|
||||||
|
@@ -52,6 +52,7 @@
|
||||||
|
#include <asm/traps.h>
|
||||||
|
#include <asm/nmi.h>
|
||||||
|
#include <asm/mce.h>
|
||||||
|
+#include <asm/amd.h>
|
||||||
|
#include <xen/numa.h>
|
||||||
|
#include <xen/iommu.h>
|
||||||
|
#ifdef CONFIG_COMPAT
|
||||||
|
@@ -474,6 +475,20 @@ int arch_domain_create(struct domain *d,
|
||||||
|
|
||||||
|
#else /* __x86_64__ */
|
||||||
|
|
||||||
|
+ if ( d->domain_id && !is_idle_domain(d) &&
|
||||||
|
+ cpu_has_amd_erratum(&boot_cpu_data, AMD_ERRATUM_121) )
|
||||||
|
+ {
|
||||||
|
+ if ( !opt_allow_unsafe )
|
||||||
|
+ {
|
||||||
|
+ printk(XENLOG_G_ERR "Xen does not allow DomU creation on this CPU"
|
||||||
|
+ " for security reasons.\n");
|
||||||
|
+ return -EPERM;
|
||||||
|
+ }
|
||||||
|
+ printk(XENLOG_G_WARNING
|
||||||
|
+ "Dom%d may compromise security on this CPU.\n",
|
||||||
|
+ d->domain_id);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
BUILD_BUG_ON(PDPT_L2_ENTRIES * sizeof(*d->arch.mm_perdomain_pt_pages)
|
||||||
|
!= PAGE_SIZE);
|
||||||
|
pg = alloc_domheap_page(NULL, MEMF_node(domain_to_node(d)));
|
||||||
|
--- a/xen/include/asm-x86/amd.h
|
||||||
|
+++ b/xen/include/asm-x86/amd.h
|
||||||
|
@@ -151,6 +151,8 @@ struct cpuinfo_x86;
|
||||||
|
int cpu_has_amd_erratum(const struct cpuinfo_x86 *, int, ...);
|
||||||
|
|
||||||
|
#ifdef __x86_64__
|
||||||
|
+extern int opt_allow_unsafe;
|
||||||
|
+
|
||||||
|
void fam10h_check_enable_mmcfg(void);
|
||||||
|
void check_enable_amd_mmconf_dmi(void);
|
||||||
|
#endif
|
29
x86_64-sysret-canonical.patch
Normal file
29
x86_64-sysret-canonical.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
References: CVE-2012-0217, bnc#757537
|
||||||
|
|
||||||
|
--- a/xen/arch/x86/x86_64/entry.S
|
||||||
|
+++ b/xen/arch/x86/x86_64/entry.S
|
||||||
|
@@ -40,6 +40,13 @@ restore_all_guest:
|
||||||
|
testw $TRAP_syscall,4(%rsp)
|
||||||
|
jz iret_exit_to_guest
|
||||||
|
|
||||||
|
+ /* Don't use SYSRET path if the return address is not canonical. */
|
||||||
|
+ movq 8(%rsp),%rcx
|
||||||
|
+ sarq $47,%rcx
|
||||||
|
+ incl %ecx
|
||||||
|
+ cmpl $1,%ecx
|
||||||
|
+ ja .Lforce_iret
|
||||||
|
+
|
||||||
|
addq $8,%rsp
|
||||||
|
popq %rcx # RIP
|
||||||
|
popq %r11 # CS
|
||||||
|
@@ -50,6 +57,10 @@ restore_all_guest:
|
||||||
|
sysretq
|
||||||
|
1: sysretl
|
||||||
|
|
||||||
|
+.Lforce_iret:
|
||||||
|
+ /* Mimic SYSRET behavior. */
|
||||||
|
+ movq 8(%rsp),%rcx # RIP
|
||||||
|
+ movq 24(%rsp),%r11 # RFLAGS
|
||||||
|
ALIGN
|
||||||
|
/* No special register assumptions. */
|
||||||
|
iret_exit_to_guest:
|
41
xen.changes
41
xen.changes
@ -1,3 +1,26 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jun 11 10:32:42 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
|
- Upstream pygrub patches for grub2 support and fixes
|
||||||
|
23686-pygrub-solaris.patch
|
||||||
|
23697-pygrub-grub2.patch
|
||||||
|
23944-pygrub-debug.patch
|
||||||
|
23998-pygrub-GPT.patch
|
||||||
|
23999-pygrub-grub2.patch
|
||||||
|
24064-pygrub-HybridISO.patch
|
||||||
|
24401-pygrub-scrolling.patch
|
||||||
|
24402-pygrub-edit-fix.patch
|
||||||
|
24460-pygrub-extlinux.patch
|
||||||
|
24706-pygrub-extlinux.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 6 08:14:38 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
|
- Revised version of security patch and an additional patch for
|
||||||
|
bnc#764077
|
||||||
|
x86_64-AMD-erratum-121.patch
|
||||||
|
x86_64-allow-unsafe-adjust.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jun 6 10:21:03 CEST 2012 - ohering@suse.de
|
Wed Jun 6 10:21:03 CEST 2012 - ohering@suse.de
|
||||||
|
|
||||||
@ -11,6 +34,15 @@ Tue May 29 11:59:28 CEST 2012 - jsmeix@suse.de
|
|||||||
because "ps2pdf xenapi.ps xenapi.pdf" failed only for
|
because "ps2pdf xenapi.ps xenapi.pdf" failed only for
|
||||||
Ghostscript version 9.04 (now we have Ghostscript 9.05).
|
Ghostscript version 9.04 (now we have Ghostscript 9.05).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon May 25 08:02:13 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
|
- bnc#764077 - VUL-0: EMBARGOED: xen: XSA-9: denial of service on
|
||||||
|
older AMD systems
|
||||||
|
x86_64-AMD-erratum-121.patch
|
||||||
|
- Revised version of security patch for bnc#757537
|
||||||
|
x86_64-sysret-canonical.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue May 15 06:45:59 MDT 2012 - carnold@novell.com
|
Tue May 15 06:45:59 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
@ -42,6 +74,15 @@ Tue Apr 24 08:22:16 MDT 2012 - carnold@novell.com
|
|||||||
25196-x86-HAP-PAT-sr.patch
|
25196-x86-HAP-PAT-sr.patch
|
||||||
25200-x86_64-trap-bounce-flags.patch
|
25200-x86_64-trap-bounce-flags.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Apr 19 07:33:00 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
|
- bnc#757537 - VUL-0: xen: CVE-2012-0217 PV guest escalation
|
||||||
|
x86_64-sysret-canonical.patch
|
||||||
|
- bnc#757970 - VUL-1: xen: guest denial of service on syscall GPF
|
||||||
|
generation
|
||||||
|
x86_64-trap-bounce-flags.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Apr 3 08:33:36 MDT 2012 - carnold@novell.com
|
Tue Apr 3 08:33:36 MDT 2012 - carnold@novell.com
|
||||||
|
|
||||||
|
27
xen.spec
27
xen.spec
@ -15,7 +15,6 @@
|
|||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
Name: xen
|
Name: xen
|
||||||
ExclusiveArch: %ix86 x86_64
|
ExclusiveArch: %ix86 x86_64
|
||||||
%define xvers 4.1
|
%define xvers 4.1
|
||||||
@ -225,6 +224,8 @@ Patch23615: 23615-x86_64-EFI-runtime.patch
|
|||||||
Patch23616: 23616-x86_64-EFI-MPS.patch
|
Patch23616: 23616-x86_64-EFI-MPS.patch
|
||||||
Patch23643: 23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
|
Patch23643: 23643-xentrace_Allow_tracing_to_be_enabled_at_boot.patch
|
||||||
Patch23676: 23676-x86_64-image-map-bounds.patch
|
Patch23676: 23676-x86_64-image-map-bounds.patch
|
||||||
|
Patch23686: 23686-pygrub-solaris.patch
|
||||||
|
Patch23697: 23697-pygrub-grub2.patch
|
||||||
Patch23719: 23719-xentrace_update___trace_var_comment.patch
|
Patch23719: 23719-xentrace_update___trace_var_comment.patch
|
||||||
Patch23723: 23723-x86-CMOS-lock.patch
|
Patch23723: 23723-x86-CMOS-lock.patch
|
||||||
Patch23724: 23724-x86-smpboot-x2apic.patch
|
Patch23724: 23724-x86-smpboot-x2apic.patch
|
||||||
@ -260,6 +261,7 @@ Patch23908: 23908-p2m_query-modify_p2mt_with_p2m_lock_held.patch
|
|||||||
Patch23925: 23925-x86-AMD-ARAT-Fam12.patch
|
Patch23925: 23925-x86-AMD-ARAT-Fam12.patch
|
||||||
Patch23933: 23933-pt-bus2bridge-update.patch
|
Patch23933: 23933-pt-bus2bridge-update.patch
|
||||||
Patch23943: 23943-xenpaging_clear_page_content_after_evict.patch
|
Patch23943: 23943-xenpaging_clear_page_content_after_evict.patch
|
||||||
|
Patch23944: 23944-pygrub-debug.patch
|
||||||
Patch23949: 23949-constify_vcpu_set_affinitys_second_parameter.patch
|
Patch23949: 23949-constify_vcpu_set_affinitys_second_parameter.patch
|
||||||
Patch23953: 23953-xenpaging_handle_evict_failures.patch
|
Patch23953: 23953-xenpaging_handle_evict_failures.patch
|
||||||
Patch23955: 23955-x86-pv-cpuid-xsave.patch
|
Patch23955: 23955-x86-pv-cpuid-xsave.patch
|
||||||
@ -268,6 +270,9 @@ Patch23978: 23978-xenpaging_check_p2mt_in_p2m_mem_paging_functions.patch
|
|||||||
Patch23979: 23979-xenpaging_document_p2m_mem_paging_functions.patch
|
Patch23979: 23979-xenpaging_document_p2m_mem_paging_functions.patch
|
||||||
Patch23980: 23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
|
Patch23980: 23980-xenpaging_disallow_paging_in_a_PoD_guest.patch
|
||||||
Patch23993: 23993-x86-microcode-amd-fix-23871.patch
|
Patch23993: 23993-x86-microcode-amd-fix-23871.patch
|
||||||
|
Patch23998: 23998-pygrub-GPT.patch
|
||||||
|
Patch23999: 23999-pygrub-grub2.patch
|
||||||
|
Patch24064: 24064-pygrub-HybridISO.patch
|
||||||
Patch24104: 24104-waitqueue_Double_size_of_x86_shadow_stack..patch
|
Patch24104: 24104-waitqueue_Double_size_of_x86_shadow_stack..patch
|
||||||
Patch24105: 24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
|
Patch24105: 24105-xenpaging_compare_domain_pointer_in_p2m_mem_paging_populate.patch
|
||||||
Patch24106: 24106-mem_event_check_capabilities_only_once.patch
|
Patch24106: 24106-mem_event_check_capabilities_only_once.patch
|
||||||
@ -333,6 +338,8 @@ Patch24359: 24359-x86-domU-features.patch
|
|||||||
Patch24360: 24360-x86-pv-domU-no-PCID.patch
|
Patch24360: 24360-x86-pv-domU-no-PCID.patch
|
||||||
Patch24389: 24389-amd-fam10-gart-tlb-walk-err.patch
|
Patch24389: 24389-amd-fam10-gart-tlb-walk-err.patch
|
||||||
Patch24391: 24391-x86-pcpu-version.patch
|
Patch24391: 24391-x86-pcpu-version.patch
|
||||||
|
Patch24401: 24401-pygrub-scrolling.patch
|
||||||
|
Patch24402: 24402-pygrub-edit-fix.patch
|
||||||
Patch24411: 24411-x86-ucode-AMD-Fam15.patch
|
Patch24411: 24411-x86-ucode-AMD-Fam15.patch
|
||||||
Patch24412: 24412-x86-AMD-errata-model-shift.patch
|
Patch24412: 24412-x86-AMD-errata-model-shift.patch
|
||||||
Patch24417: 24417-amd-erratum-573.patch
|
Patch24417: 24417-amd-erratum-573.patch
|
||||||
@ -342,6 +349,7 @@ Patch24448: 24448-x86-pt-irq-leak.patch
|
|||||||
Patch24453: 24453-x86-vIRQ-IRR-TMR-race.patch
|
Patch24453: 24453-x86-vIRQ-IRR-TMR-race.patch
|
||||||
Patch24456: 24456-x86-emul-lea.patch
|
Patch24456: 24456-x86-emul-lea.patch
|
||||||
Patch24459: 24459-libxl-vifname.patch
|
Patch24459: 24459-libxl-vifname.patch
|
||||||
|
Patch24460: 24460-pygrub-extlinux.patch
|
||||||
Patch24466: 24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
|
Patch24466: 24466-libxc_Only_retry_mapping_pages_when_ENOENT_is_returned.patch
|
||||||
Patch24478: 24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
|
Patch24478: 24478-libxl_add_feature_flag_to_xenstore_for_XS_RESET_WATCHES.patch
|
||||||
Patch24517: 24517-VT-d-fault-softirq.patch
|
Patch24517: 24517-VT-d-fault-softirq.patch
|
||||||
@ -354,6 +362,7 @@ Patch24610: 24610-xenpaging_make_file_op_largefile_aware.patch
|
|||||||
Patch24615: 24615-VESA-lfb-flush.patch
|
Patch24615: 24615-VESA-lfb-flush.patch
|
||||||
Patch24690: 24690-x86-PCI-SERR-no-deadlock.patch
|
Patch24690: 24690-x86-PCI-SERR-no-deadlock.patch
|
||||||
Patch24701: 24701-gnttab-map-grant-ref-recovery.patch
|
Patch24701: 24701-gnttab-map-grant-ref-recovery.patch
|
||||||
|
Patch24706: 24706-pygrub-extlinux.patch
|
||||||
Patch24742: 24742-gnttab-misc.patch
|
Patch24742: 24742-gnttab-misc.patch
|
||||||
Patch24780: 24780-x86-paging-use-clear_guest.patch
|
Patch24780: 24780-x86-paging-use-clear_guest.patch
|
||||||
Patch24781: 24781-x86-vmce-mcg_ctl.patch
|
Patch24781: 24781-x86-vmce-mcg_ctl.patch
|
||||||
@ -518,6 +527,9 @@ Patch514: xen.sles11sp1.fate311487.xen_platform_pci.dmistring.patch
|
|||||||
Patch650: disable_emulated_device.diff
|
Patch650: disable_emulated_device.diff
|
||||||
Patch651: ioemu-disable-scsi.patch
|
Patch651: ioemu-disable-scsi.patch
|
||||||
Patch652: ioemu-disable-emulated-ide-if-pv.patch
|
Patch652: ioemu-disable-emulated-ide-if-pv.patch
|
||||||
|
Patch653: x86_64-sysret-canonical.patch
|
||||||
|
Patch654: x86_64-AMD-erratum-121.patch
|
||||||
|
Patch655: x86_64-allow-unsafe-adjust.patch
|
||||||
Patch700: hv_extid_compatibility.patch
|
Patch700: hv_extid_compatibility.patch
|
||||||
Patch701: xen.no-default-runlevel-4.patch
|
Patch701: xen.no-default-runlevel-4.patch
|
||||||
# FATE 310510
|
# FATE 310510
|
||||||
@ -960,6 +972,8 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch23616 -p1
|
%patch23616 -p1
|
||||||
%patch23643 -p1
|
%patch23643 -p1
|
||||||
%patch23676 -p1
|
%patch23676 -p1
|
||||||
|
%patch23686 -p1
|
||||||
|
%patch23697 -p1
|
||||||
%patch23719 -p1
|
%patch23719 -p1
|
||||||
%patch23723 -p1
|
%patch23723 -p1
|
||||||
%patch23724 -p1
|
%patch23724 -p1
|
||||||
@ -995,6 +1009,7 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch23925 -p1
|
%patch23925 -p1
|
||||||
%patch23933 -p1
|
%patch23933 -p1
|
||||||
%patch23943 -p1
|
%patch23943 -p1
|
||||||
|
%patch23944 -p1
|
||||||
%patch23949 -p1
|
%patch23949 -p1
|
||||||
%patch23953 -p1
|
%patch23953 -p1
|
||||||
%patch23955 -p1
|
%patch23955 -p1
|
||||||
@ -1003,6 +1018,9 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch23979 -p1
|
%patch23979 -p1
|
||||||
%patch23980 -p1
|
%patch23980 -p1
|
||||||
%patch23993 -p1
|
%patch23993 -p1
|
||||||
|
%patch23998 -p1
|
||||||
|
%patch23999 -p1
|
||||||
|
%patch24064 -p1
|
||||||
%patch24104 -p1
|
%patch24104 -p1
|
||||||
%patch24105 -p1
|
%patch24105 -p1
|
||||||
%patch24106 -p1
|
%patch24106 -p1
|
||||||
@ -1068,6 +1086,8 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch24360 -p1
|
%patch24360 -p1
|
||||||
%patch24389 -p1
|
%patch24389 -p1
|
||||||
%patch24391 -p1
|
%patch24391 -p1
|
||||||
|
%patch24401 -p1
|
||||||
|
%patch24402 -p1
|
||||||
%patch24411 -p1
|
%patch24411 -p1
|
||||||
%patch24412 -p1
|
%patch24412 -p1
|
||||||
%patch24417 -p1
|
%patch24417 -p1
|
||||||
@ -1077,6 +1097,7 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch24453 -p1
|
%patch24453 -p1
|
||||||
%patch24456 -p1
|
%patch24456 -p1
|
||||||
%patch24459 -p1
|
%patch24459 -p1
|
||||||
|
%patch24460 -p1
|
||||||
%patch24466 -p1
|
%patch24466 -p1
|
||||||
%patch24478 -p1
|
%patch24478 -p1
|
||||||
%patch24517 -p1
|
%patch24517 -p1
|
||||||
@ -1089,6 +1110,7 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch24615 -p1
|
%patch24615 -p1
|
||||||
%patch24690 -p1
|
%patch24690 -p1
|
||||||
%patch24701 -p1
|
%patch24701 -p1
|
||||||
|
%patch24706 -p1
|
||||||
%patch24742 -p1
|
%patch24742 -p1
|
||||||
%patch24780 -p1
|
%patch24780 -p1
|
||||||
%patch24781 -p1
|
%patch24781 -p1
|
||||||
@ -1247,6 +1269,9 @@ tar xfj %{SOURCE2} -C $RPM_BUILD_DIR/%{xen_build_dir}/tools
|
|||||||
%patch650 -p1
|
%patch650 -p1
|
||||||
%patch651 -p1
|
%patch651 -p1
|
||||||
%patch652 -p1
|
%patch652 -p1
|
||||||
|
%patch653 -p1
|
||||||
|
%patch654 -p1
|
||||||
|
%patch655 -p1
|
||||||
%patch700 -p1
|
%patch700 -p1
|
||||||
%patch701 -p1
|
%patch701 -p1
|
||||||
# FATE 310510
|
# FATE 310510
|
||||||
|
Loading…
Reference in New Issue
Block a user