aboutsummaryrefslogtreecommitdiff
path: root/emulators/xen-kernel
diff options
context:
space:
mode:
authorRoger Pau Monné <royger@FreeBSD.org>2021-01-29 14:21:41 +0000
committerRoger Pau Monné <royger@FreeBSD.org>2021-01-29 14:21:41 +0000
commit835ba0b2560a5fb657b2e157fec5251eb54c4453 (patch)
tree86167d59e729bb0d73924fde205cc8047ae868ea /emulators/xen-kernel
parent7f4532864b0a50b4c670c35e441b7600e6d36c0a (diff)
downloadports-835ba0b2560a5fb657b2e157fec5251eb54c4453.tar.gz
ports-835ba0b2560a5fb657b2e157fec5251eb54c4453.zip
emulators/xen-kernel,sysutils/xen-tools: update to 4.14.1
Sponsored by: Citrix Systems R&D Approved by: bapt (implicit)
Notes
Notes: svn path=/head/; revision=563208
Diffstat (limited to 'emulators/xen-kernel')
-rw-r--r--emulators/xen-kernel/Makefile6
-rw-r--r--emulators/xen-kernel/distinfo6
-rw-r--r--emulators/xen-kernel/files/0001-x86-pvh-pass-module-command-line-to-dom0.patch54
-rw-r--r--emulators/xen-kernel/files/0001-x86-use-constant-flags-for-section-.init.rodata.patch62
4 files changed, 60 insertions, 68 deletions
diff --git a/emulators/xen-kernel/Makefile b/emulators/xen-kernel/Makefile
index decaae7778ea..0e47261e8de5 100644
--- a/emulators/xen-kernel/Makefile
+++ b/emulators/xen-kernel/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= xen
-PORTVERSION= 4.14.0
+PORTVERSION= 4.14.1
PORTREVISION= 0
CATEGORIES= emulators
MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/
@@ -25,8 +25,8 @@ STRIP= #
PLIST_FILES= /boot/xen \
lib/debug/boot/xen.debug
-# Fix build with clang 11
-EXTRA_PATCHES+= ${PATCHDIR}/0001-x86-use-constant-flags-for-section-.init.rodata.patch:-p1
+# Propagate module command line passed by the loader.
+EXTRA_PATCHES+= ${PATCHDIR}/0001-x86-pvh-pass-module-command-line-to-dom0.patch:-p1
.include <bsd.port.options.mk>
diff --git a/emulators/xen-kernel/distinfo b/emulators/xen-kernel/distinfo
index 77df637dea61..ab008f378c59 100644
--- a/emulators/xen-kernel/distinfo
+++ b/emulators/xen-kernel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1598458426
-SHA256 (xen-4.14.0.tar.gz) = 06839f68ea7620669dbe8b67861213223cc2a7d02ced61b56e5249c50e87f035
-SIZE (xen-4.14.0.tar.gz) = 39950576
+TIMESTAMP = 1611929407
+SHA256 (xen-4.14.1.tar.gz) = cf0d7316ad674491f49b7ef0518cb1d906a2e3bfad639deef0ef2343b119ac0c
+SIZE (xen-4.14.1.tar.gz) = 39970115
diff --git a/emulators/xen-kernel/files/0001-x86-pvh-pass-module-command-line-to-dom0.patch b/emulators/xen-kernel/files/0001-x86-pvh-pass-module-command-line-to-dom0.patch
new file mode 100644
index 000000000000..2bb2993bb096
--- /dev/null
+++ b/emulators/xen-kernel/files/0001-x86-pvh-pass-module-command-line-to-dom0.patch
@@ -0,0 +1,54 @@
+From ddc03f91858b21a1641909d1a1f55604be627d82 Mon Sep 17 00:00:00 2001
+From: Roger Pau Monne <roger.pau@citrix.com>
+Date: Fri, 29 Jan 2021 09:59:03 +0100
+Subject: [PATCH] x86/pvh: pass module command line to dom0
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Both the multiboot and the HVM start info structures allow passing a
+string together with a module. Implement the missing support in
+pvh_load_kernel so that module strings found in the multiboot
+structure are forwarded to dom0.
+
+Fixes: 62ba982424 ('x86: parse Dom0 kernel for PVHv2')
+Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
+---
+NB: str cannot be made const because __hvm_copy buf parameter (that
+maps to str in the added code) is bi-directional depending on the
+flags passed to the function.
+---
+ xen/arch/x86/hvm/dom0_build.c | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
+index 12a82c9d7c..28c29d2669 100644
+--- a/xen/arch/x86/hvm/dom0_build.c
++++ b/xen/arch/x86/hvm/dom0_build.c
+@@ -617,7 +617,22 @@ static int __init pvh_load_kernel(struct domain *d, const module_t *image,
+
+ mod.paddr = last_addr;
+ mod.size = initrd->mod_end;
+- last_addr += ROUNDUP(initrd->mod_end, PAGE_SIZE);
++ last_addr += ROUNDUP(initrd->mod_end, elf_64bit(&elf) ? 8 : 4);
++ if ( initrd->string )
++ {
++ char *str = __va(initrd->string);
++ unsigned int len = strlen(str) + 1;
++
++ rc = hvm_copy_to_guest_phys(last_addr, str, len, v);
++ if ( rc )
++ {
++ printk("Unable to copy module command line\n");
++ return rc;
++ }
++ mod.cmdline_paddr = last_addr;
++ last_addr += len;
++ }
++ last_addr = ROUNDUP(last_addr, PAGE_SIZE);
+ }
+
+ /* Free temporary buffers. */
+--
+2.29.2
+
diff --git a/emulators/xen-kernel/files/0001-x86-use-constant-flags-for-section-.init.rodata.patch b/emulators/xen-kernel/files/0001-x86-use-constant-flags-for-section-.init.rodata.patch
deleted file mode 100644
index 17630f77fef3..000000000000
--- a/emulators/xen-kernel/files/0001-x86-use-constant-flags-for-section-.init.rodata.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 40a95cf571242cffed8b35a7301730e2b45c217d Mon Sep 17 00:00:00 2001
-From: Roger Pau Monne <roger.pau@citrix.com>
-To: xen-devel@lists.xenproject.org
-Cc: Jan Beulich <jbeulich@suse.com>
-Cc: Andrew Cooper <andrew.cooper3@citrix.com>
-Cc: Wei Liu <wl@xen.org>
-Cc: "Roger Pau Monné" <roger.pau@citrix.com>
-Date: Wed, 26 Aug 2020 15:37:24 +0200
-Subject: [PATCH] x86: use constant flags for section .init.rodata
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-LLVM 11 complains with:
-
-<instantiation>:1:1: error: changed section flags for .init.rodata, expected: 0x2
-.pushsection .init.rodata
-^
-<instantiation>:30:9: note: while in macro instantiation
- entrypoint 0
- ^
-entry.S:979:9: note: while in macro instantiation
- .rept 256
- ^
-
-And:
-
-entry.S:1015:9: error: changed section flags for .init.rodata, expected: 0x2
- .section .init.rodata
- ^
-
-Fix it by explicitly using the same flags and type in all the
-instances.
-
-Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
----
- xen/arch/x86/x86_64/entry.S | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S
-index 8b57a00040..1e880eb9f6 100644
---- a/xen/arch/x86/x86_64/entry.S
-+++ b/xen/arch/x86/x86_64/entry.S
-@@ -967,7 +967,7 @@ GLOBAL(trap_nop)
- GLOBAL(autogen_entrypoints)
- /* pop into the .init.rodata section and record an entry point. */
- .macro entrypoint ent
-- .pushsection .init.rodata
-+ .pushsection .init.rodata, "a", @progbits
- .quad \ent
- .popsection
- .endm
-@@ -1012,5 +1012,5 @@ autogen_stubs: /* Automatically generated stubs. */
- vec = vec + 1
- .endr
-
-- .section .init.rodata
-+ .section .init.rodata, "a", @progbits
- .size autogen_entrypoints, . - autogen_entrypoints
---
-2.28.0
-