emulators/xen-kernel: add fix for fetching video mode
Sponsored by: Citrix Systems R&D Approved by: bapt (implicit)
This commit is contained in:
parent
0df5691294
commit
7326a17b98
2 changed files with 61 additions and 2 deletions
|
@ -1,6 +1,6 @@
|
|||
PORTNAME= xen
|
||||
PORTVERSION= 4.17.0
|
||||
PORTREVISION= 0
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/
|
||||
PKGNAMESUFFIX= -kernel
|
||||
|
@ -34,7 +34,8 @@ EXTRA_PATCHES+= ${PATCHDIR}/xsa425.patch:-p1 \
|
|||
# clang build fixes
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/0001-xen-x86-Remove-the-use-of-K-R-functions.patch:-p1
|
||||
# Support for fetching video mode from PVH dom0
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/0001-x86-platform-introduce-hypercall-to-get-initial-vide.patch:-p1
|
||||
EXTRA_PATCHES+= ${PATCHDIR}/0001-x86-platform-introduce-hypercall-to-get-initial-vide.patch:-p1 \
|
||||
${PATCHDIR}/0001-x86-platform-make-XENPF_get_dom0_console-actually-us.patch:-p1
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
From 7d43e4b2aa42b826e3d373b8e802ba925cc73088 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Beulich <jbeulich@suse.com>
|
||||
Date: Mon, 13 Mar 2023 15:14:38 +0100
|
||||
Subject: [PATCH] x86/platform: make XENPF_get_dom0_console actually usable
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
struct dom0_vga_console_info has been extended in the past, and it may
|
||||
be extended again. The use in PV Dom0's start info already covers for
|
||||
that by supplying the size of the provided data. For the recently
|
||||
introduced platform-op size needs providing similarly. Go the easiest
|
||||
available route and simply supply size via the hypercall return value.
|
||||
|
||||
While there also add a build-time check that possibly future growth of
|
||||
the struct won't affect xen_platform_op_t's size.
|
||||
|
||||
Fixes: 4dd160583c79 ("x86/platform: introduce hypercall to get initial video console settings")
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
xen/arch/x86/platform_hypercall.c | 2 ++
|
||||
xen/include/public/platform.h | 6 +++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
|
||||
index 08ab2fea62..85c69c5be5 100644
|
||||
--- a/xen/arch/x86/platform_hypercall.c
|
||||
+++ b/xen/arch/x86/platform_hypercall.c
|
||||
@@ -841,6 +841,8 @@ ret_t do_platform_op(
|
||||
|
||||
#ifdef CONFIG_VIDEO
|
||||
case XENPF_get_dom0_console:
|
||||
+ BUILD_BUG_ON(sizeof(op->u.dom0_console) > sizeof(op->u.pad));
|
||||
+ ret = sizeof(op->u.dom0_console);
|
||||
if ( !fill_console_start_info(&op->u.dom0_console) )
|
||||
{
|
||||
ret = -ENODEV;
|
||||
diff --git a/xen/include/public/platform.h b/xen/include/public/platform.h
|
||||
index 14784dfa77..60caa5ce7e 100644
|
||||
--- a/xen/include/public/platform.h
|
||||
+++ b/xen/include/public/platform.h
|
||||
@@ -605,7 +605,11 @@ struct xenpf_symdata {
|
||||
typedef struct xenpf_symdata xenpf_symdata_t;
|
||||
DEFINE_XEN_GUEST_HANDLE(xenpf_symdata_t);
|
||||
|
||||
-/* Fetch the video console information and mode setup by Xen. */
|
||||
+/*
|
||||
+ * Fetch the video console information and mode setup by Xen. A non-
|
||||
+ * negative return value indicates the size of the (part of the) structure
|
||||
+ * which was filled.
|
||||
+ */
|
||||
#define XENPF_get_dom0_console 64
|
||||
typedef struct dom0_vga_console_info xenpf_dom0_console_t;
|
||||
DEFINE_XEN_GUEST_HANDLE(xenpf_dom0_console_t);
|
||||
--
|
||||
2.39.0
|
||||
|
Loading…
Reference in a new issue