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

Jan Beulich posted 1 patch 2 years, 2 months ago
Failed in applying to current master (apply log)
[PATCH] xen/x86: obtain full video frame buffer address for Dom0 also under EFI
Posted by Jan Beulich 2 years, 2 months ago
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>

--- 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;
 	}
 }
Re: [PATCH] xen/x86: obtain full video frame buffer address for Dom0 also under EFI
Posted by Juergen Gross 2 years, 2 months ago
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