FAILED: patch "[PATCH] xen/pvh: correctly setup the PV EFI interface for dom0" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 72813bfbf0276a97c82af038efb5f02dcdd9e310 Mon Sep 17 00:00:00 2001
From: Roger Pau Monne <[email protected]>
Date: Tue, 23 Apr 2019 15:04:16 +0200
Subject: [PATCH] xen/pvh: correctly setup the PV EFI interface for dom0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This involves initializing the boot params EFI related fields and the efi global variable.
Without this fix a PVH dom0 doesn't detect when booted from EFI, and thus doesn't support accessing any of the EFI related data.
arch/x86/platform/pvh/enlighten.c +4 -4
@@ -44,8 +44,6 @@ void __init __weak mem_map_via_hcall(struct boot_params *ptr __maybe_unused)static void __init init_pvh_bootparams (bool xen_guest) { -memset (&pvh_bootparams,0 ,sizeof (pvh_bootparams)); -if ((pvh_start_info.version >0 ) && (pvh_start_info.memmap_entries)) {struct hvm_memmap_table_entry *ep;int i;
@@ -103,7 +101,7 @@ static void __init init_pvh_bootparams(bool xen_guest)* If we are trying to boot a Xen PVH guest, it is expected that the kernel * will have been configured to provide the required override for this routine. */ -void __init __weak xen_pvh_init (void ) +void __init __weak xen_pvh_init (struct boot_params *boot_params) {xen_raw_printk ("Error: Missing xen PVH initialization\n" );BUG ();
@@ -112,7 +110,7 @@ void __init __weak xen_pvh_init(void)static void hypervisor_specific_init (bool xen_guest) {if (xen_guest) -xen_pvh_init (); +xen_pvh_init (&pvh_bootparams); }/*
@@ -131,6 +129,8 @@ void __init xen_prepare_pvh(void)BUG (); } +memset (&pvh_bootparams,0 ,sizeof (pvh_bootparams)); +hypervisor_specific_init (xen_guest);init_pvh_bootparams (xen_guest);
arch/x86/xen/efi.c +6 -6
@@ -158,7 +158,7 @@ static enum efi_secureboot_mode xen_efi_get_secureboot(void)return efi_secureboot_mode_unknown; } -void __init xen_efi_init (void ) +void __init xen_efi_init (struct boot_params *boot_params) {efi_system_table_t *efi_systab_xen;
@@ -167,12 +167,12 @@ void __init xen_efi_init(void)if (efi_systab_xen ==NULL )return ; -strncpy ((char *)&boot_params.efi_info.efi_loader_signature,"Xen" , -sizeof (boot_params.efi_info.efi_loader_signature)); - boot_params.efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); - boot_params.efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); +strncpy ((char *)&boot_params->efi_info.efi_loader_signature,"Xen" , +sizeof (boot_params->efi_info.efi_loader_signature)); + boot_params->efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); + boot_params->efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); - boot_params.secure_boot =xen_efi_get_secureboot (); + boot_params->secure_boot =xen_efi_get_secureboot ();set_bit (EFI_BOOT , &efi.flags);set_bit (EFI_PARAVIRT , &efi.flags);
arch/x86/xen/enlighten_pv.c +1 -1
@@ -1403,7 +1403,7 @@ asmlinkage __visible void __init xen_start_kernel(void)/* We need this for printk timestamps */ xen_setup_runstate_info (0 ); -xen_efi_init (); +xen_efi_init (&boot_params);/* Start the world */ #ifdef CONFIG_X86_32
arch/x86/xen/enlighten_pvh.c +5 -1
@@ -13,6 +13,8 @@#include <xen/interface/memory.h> +#include "xen-ops.h" +/* * PVH variables. *
@@ -21,7 +23,7 @@*/ bool xen_pvh __attribute__((section(".data"))) = 0; -void __init xen_pvh_init (void ) +void __init xen_pvh_init (struct boot_params *boot_params) {u32 msr;u64 pfn;
@@ -33,6 +35,8 @@ void __init xen_pvh_init(void) msr =cpuid_ebx (xen_cpuid_base () +2 ); pfn =__pa (hypercall_page);wrmsr_safe (msr, (u32 )pfn, (u32)(pfn >>32 )); + +xen_efi_init (boot_params); }void __init mem_map_via_hcall (struct boot_params *boot_params_p)
arch/x86/xen/xen-ops.h +2 -2
@@ -122,9 +122,9 @@ static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,void __init xen_init_apic (void );#ifdef CONFIG_XEN_EFI -extern void xen_efi_init (void ); +extern void xen_efi_init (struct boot_params *boot_params);#else -static inline void __init xen_efi_init (void ) +static inline void __init xen_efi_init (struct boot_params *boot_params) { }#endif
[BACKPORT] xen/pvh: correctly setup the PV EFI interface for dom0
commit 72813bfbf0276a97c82af038efb5f02dcdd9e310 upstream
This involves initializing the boot params EFI related fields and the efi global variable.
Without this fix a PVH dom0 doesn't detect when booted from EFI, and thus doesn't support accessing any of the EFI related data.
--- arch/x86/xen/efi.c | 12 ++++++------ arch/x86/xen/enlighten_pv.c | 2 +- arch/x86/xen/enlighten_pvh.c | 4 ++++ arch/x86/xen/xen-ops.h | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-)
arch/x86/xen/efi.c +6 -6
@@ -170,7 +170,7 @@ static enum efi_secureboot_mode xen_efi_get_secureboot(void)return efi_secureboot_mode_unknown; } -void __init xen_efi_init (void ) +void __init xen_efi_init (struct boot_params *boot_params) {efi_system_table_t *efi_systab_xen;
@@ -179,12 +179,12 @@ void __init xen_efi_init(void)if (efi_systab_xen ==NULL )return ; -strncpy ((char *)&boot_params.efi_info.efi_loader_signature,"Xen" , -sizeof (boot_params.efi_info.efi_loader_signature)); - boot_params.efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); - boot_params.efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); +strncpy ((char *)&boot_params->efi_info.efi_loader_signature,"Xen" , +sizeof (boot_params->efi_info.efi_loader_signature)); + boot_params->efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); + boot_params->efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); - boot_params.secure_boot =xen_efi_get_secureboot (); + boot_params->secure_boot =xen_efi_get_secureboot ();set_bit (EFI_BOOT , &efi.flags);set_bit (EFI_PARAVIRT , &efi.flags);
arch/x86/xen/enlighten_pv.c +1 -1
@@ -1399,7 +1399,7 @@ asmlinkage __visible void __init xen_start_kernel(void)/* We need this for printk timestamps */ xen_setup_runstate_info (0 ); -xen_efi_init (); +xen_efi_init (&boot_params);/* Start the world */ #ifdef CONFIG_X86_32
arch/x86/xen/enlighten_pvh.c +4 -0
@@ -14,6 +14,8 @@#include <xen/interface/memory.h> #include <xen/interface/hvm/start_info.h> +#include "xen-ops.h" +/* * PVH variables. *
@@ -79,6 +81,8 @@ static void __init init_pvh_bootparams(void) pvh_bootparams.hdr.type_of_loader = (9 <<4 ) |0 ;/* Xen loader */ x86_init.acpi.get_root_pointer = pvh_get_root_pointer; + +xen_efi_init (&pvh_bootparams); }/*
arch/x86/xen/xen-ops.h +2 -2
@@ -122,9 +122,9 @@ static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,void __init xen_init_apic (void );#ifdef CONFIG_XEN_EFI -extern void xen_efi_init (void ); +extern void xen_efi_init (struct boot_params *boot_params);#else -static inline void __init xen_efi_init (void ) +static inline void __init xen_efi_init (struct boot_params *boot_params) { }#endif
Signature · 7 lines
2.20.1 (Apple Git-117) _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
Jinoh Kang
Reviewed-by Boris OstrovskyRe: [BACKPORT] xen/pvh: correctly setup the PV EFI interface for dom0
This patch had slipped through the cracks, yet it still applies cleanly to v4.19.165.
It would be much appreciated to have this patch queued.
------------------ original patch ------------------
Quoted 1 line
From - Mon Sep 17 00:00:00 2001
Subject: [BACKPORT] xen/pvh: correctly setup the PV EFI interface for dom0
Date: Mon, 27 May 2019 14:11:38 +0200
From: Roger Pau Monne <[email protected]>
commit 72813bfbf0276a97c82af038efb5f02dcdd9e310 upstream
This involves initializing the boot params EFI related fields and the efi global variable.
Without this fix a PVH dom0 doesn't detect when booted from EFI, and thus doesn't support accessing any of the EFI related data.
--- arch/x86/xen/efi.c | 12 ++++++------ arch/x86/xen/enlighten_pv.c | 2 +- arch/x86/xen/enlighten_pvh.c | 4 ++++ arch/x86/xen/xen-ops.h | 4 ++-- 4 files changed, 13 insertions(+), 9 deletions(-)
arch/x86/xen/efi.c +6 -6
@@ -170,7 +170,7 @@ static enum efi_secureboot_mode xen_efi_get_secureboot(void)return efi_secureboot_mode_unknown; } -void __init xen_efi_init (void ) +void __init xen_efi_init (struct boot_params *boot_params) {efi_system_table_t *efi_systab_xen;
@@ -179,12 +179,12 @@ void __init xen_efi_init(void)if (efi_systab_xen ==NULL )return ; -strncpy ((char *)&boot_params.efi_info.efi_loader_signature,"Xen" , -sizeof (boot_params.efi_info.efi_loader_signature)); - boot_params.efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); - boot_params.efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); +strncpy ((char *)&boot_params->efi_info.efi_loader_signature,"Xen" , +sizeof (boot_params->efi_info.efi_loader_signature)); + boot_params->efi_info.efi_systab = (__u32 )__pa (efi_systab_xen); + boot_params->efi_info.efi_systab_hi = (__u32)(__pa (efi_systab_xen) >>32 ); - boot_params.secure_boot =xen_efi_get_secureboot (); + boot_params->secure_boot =xen_efi_get_secureboot ();set_bit (EFI_BOOT , &efi.flags);set_bit (EFI_PARAVIRT , &efi.flags);
arch/x86/xen/enlighten_pv.c +1 -1
@@ -1399,7 +1399,7 @@ asmlinkage __visible void __init xen_start_kernel(void)/* We need this for printk timestamps */ xen_setup_runstate_info (0 ); -xen_efi_init (); +xen_efi_init (&boot_params);/* Start the world */ #ifdef CONFIG_X86_32
arch/x86/xen/enlighten_pvh.c +4 -0
@@ -14,6 +14,8 @@#include <xen/interface/memory.h> #include <xen/interface/hvm/start_info.h> +#include "xen-ops.h" +/* * PVH variables. *
@@ -79,6 +81,8 @@ static void __init init_pvh_bootparams(void) pvh_bootparams.hdr.type_of_loader = (9 <<4 ) |0 ;/* Xen loader */ x86_init.acpi.get_root_pointer = pvh_get_root_pointer; + +xen_efi_init (&pvh_bootparams); }/*
arch/x86/xen/xen-ops.h +2 -2
@@ -122,9 +122,9 @@ static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,void __init xen_init_apic (void );#ifdef CONFIG_XEN_EFI -extern void xen_efi_init (void ); +extern void xen_efi_init (struct boot_params *boot_params);#else -static inline void __init xen_efi_init (void ) +static inline void __init xen_efi_init (struct boot_params *boot_params) { }#endif
Signature · 1 line
2.20.1 (Apple Git-117)
Greg KH
maintainerRe: [BACKPORT] xen/pvh: correctly setup the PV EFI interface for dom0
Quoted 4 lines · Jinoh Kang
This patch had slipped through the cracks, yet it still applies cleanly to v4.19.165.
It would be much appreciated to have this patch queued.
Odd, I don't know how I missed this, thanks for noticing. I'll queue this up after this next round of releases.
thanks,
greg k-h