Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
emulators/xen-kernel: add fix for fetching video mode
Sponsored by: Citrix Systems R&D Approved by: bapt (implicit)
- Loading branch information
Roger Pau Monné
authored and
Roger Pau Monné
committed
Mar 14, 2023
1 parent
0df5691
commit 7326a17
Showing
2 changed files
with
61 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
58 changes: 58 additions & 0 deletions
58
emulators/xen-kernel/files/0001-x86-platform-make-XENPF_get_dom0_console-actually-us.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
|