diff mbox series

xen/x86: obtain full video frame buffer address for Dom0 also under EFI

Message ID 2501ce9d-40e5-b49d-b0e5-435544d17d4a@suse.com (mailing list archive)
State Accepted
Commit f34c4f2dd2445ab89e5373fff2990fab36578bd3
Headers show
Series xen/x86: obtain full video frame buffer address for Dom0 also under EFI | expand

Commit Message

Jan Beulich Feb. 7, 2022, 7:41 a.m. UTC
The initial change would not work when Xen was booted from EFI: There is
an early exit from the case block in that case. Move the necessary code
ahead of that.

Fixes: 335e4dd67b48 ("xen/x86: obtain upper 32 bits of video frame buffer address for Dom0")
Signed-off-by: Jan Beulich <jbeulich@suse.com>

Comments

Jürgen Groß Feb. 7, 2022, 8:53 a.m. UTC | #1
On 07.02.22 08:41, Jan Beulich wrote:
> The initial change would not work when Xen was booted from EFI: There
> is an early exit from the case block in that case. Move the necessary
> code ahead of that.
> 
> Fixes: 335e4dd67b48 ("xen/x86: obtain upper 32 bits of video frame
> buffer address for Dom0") Signed-off-by: Jan Beulich
> <jbeulich@suse.com>

Reviewed-by: Juergen Gross <jgross@suse.com>


Juergen
diff mbox series

Patch

--- a/arch/x86/xen/vga.c
+++ b/arch/x86/xen/vga.c
@@ -57,6 +57,14 @@  void __init xen_init_vga(const struct do
 		screen_info->rsvd_size = info->u.vesa_lfb.rsvd_size;
 		screen_info->rsvd_pos = info->u.vesa_lfb.rsvd_pos;
 
+		if (size >= offsetof(struct dom0_vga_console_info,
+				     u.vesa_lfb.ext_lfb_base)
+		    + sizeof(info->u.vesa_lfb.ext_lfb_base)
+		    && info->u.vesa_lfb.ext_lfb_base) {
+			screen_info->ext_lfb_base = info->u.vesa_lfb.ext_lfb_base;
+			screen_info->capabilities |= VIDEO_CAPABILITY_64BIT_BASE;
+		}
+
 		if (info->video_type == XEN_VGATYPE_EFI_LFB) {
 			screen_info->orig_video_isVGA = VIDEO_TYPE_EFI;
 			break;
@@ -66,14 +74,6 @@  void __init xen_init_vga(const struct do
 				     u.vesa_lfb.mode_attrs)
 		    + sizeof(info->u.vesa_lfb.mode_attrs))
 			screen_info->vesa_attributes = info->u.vesa_lfb.mode_attrs;
-
-		if (size >= offsetof(struct dom0_vga_console_info,
-				     u.vesa_lfb.ext_lfb_base)
-		    + sizeof(info->u.vesa_lfb.ext_lfb_base)
-		    && info->u.vesa_lfb.ext_lfb_base) {
-			screen_info->ext_lfb_base = info->u.vesa_lfb.ext_lfb_base;
-			screen_info->capabilities |= VIDEO_CAPABILITY_64BIT_BASE;
-		}
 		break;
 	}
 }