From 36040a754a763af63d8b77e2d402d5196d0f7114 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 20 May 2019 12:52:43 +0200 Subject: [PATCH] 5.1-stable patches added patches: kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch libnvdimm-namespace-fix-label-tracking-error.patch powerpc-32s-fix-flush_hash_pages-on-smp.patch smb3-display-session-id-in-debug-data.patch xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch --- ...nf.cmd-into-a-mandatory-include-file.patch | 92 ++++++++++ ...m-namespace-fix-label-tracking-error.patch | 158 ++++++++++++++++++ ...erpc-32s-fix-flush_hash_pages-on-smp.patch | 35 ++++ queue-5.1/series | 6 + ...mb3-display-session-id-in-debug-data.patch | 34 ++++ ...-setup-the-pv-efi-interface-for-dom0.patch | 154 +++++++++++++++++ ...n_domain_type-to-hvm-in-xen_pvh_init.patch | 34 ++++ 7 files changed, 513 insertions(+) create mode 100644 queue-5.1/kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch create mode 100644 queue-5.1/libnvdimm-namespace-fix-label-tracking-error.patch create mode 100644 queue-5.1/powerpc-32s-fix-flush_hash_pages-on-smp.patch create mode 100644 queue-5.1/smb3-display-session-id-in-debug-data.patch create mode 100644 queue-5.1/xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch create mode 100644 queue-5.1/xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch diff --git a/queue-5.1/kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch b/queue-5.1/kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch new file mode 100644 index 00000000000..eaadc83ea12 --- /dev/null +++ b/queue-5.1/kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch @@ -0,0 +1,92 @@ +From d2f8ae0e4c5c754f1b2a7b8388d19a1a977e698a Mon Sep 17 00:00:00 2001 +From: Masahiro Yamada +Date: Sun, 12 May 2019 11:13:48 +0900 +Subject: kbuild: turn auto.conf.cmd into a mandatory include file + +From: Masahiro Yamada + +commit d2f8ae0e4c5c754f1b2a7b8388d19a1a977e698a upstream. + +syncconfig is responsible for keeping auto.conf up-to-date, so if it +fails for any reason, the build must be terminated immediately. + +However, since commit 9390dff66a52 ("kbuild: invoke syncconfig if +include/config/auto.conf.cmd is missing"), Kbuild continues running +even after syncconfig fails. + +You can confirm this by intentionally making syncconfig error out: + +# diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c +# index 08ba146..307b9de 100644 +# --- a/scripts/kconfig/confdata.c +# +++ b/scripts/kconfig/confdata.c +# @@ -1023,6 +1023,9 @@ int conf_write_autoconf(int overwrite) +# FILE *out, *tristate, *out_h; +# int i; +# +# + if (overwrite) +# + return 1; +# + +# if (!overwrite && is_present(autoconf_name)) +# return 0; + +Then, syncconfig fails, but Make would not stop: + + $ make -s mrproper allyesconfig defconfig + $ make + scripts/kconfig/conf --syncconfig Kconfig + + *** Error during sync of the configuration. + + make[2]: *** [scripts/kconfig/Makefile;69: syncconfig] Error 1 + make[1]: *** [Makefile;557: syncconfig] Error 2 + make: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf' + make: Failed to remake makefile 'include/config/auto.conf'. + SYSTBL arch/x86/include/generated/asm/syscalls_32.h + SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h + SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h + SYSTBL arch/x86/include/generated/asm/syscalls_64.h + [ continue running ... ] + +The reason is in the behavior of a pattern rule with multi-targets. + + %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) + $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig + +GNU Make knows this rule is responsible for making all the three files +simultaneously. As far as examined, auto.conf.cmd is the target in +question when this rule is invoked. It is probably because auto.conf.cmd +is included below the inclusion of auto.conf. + +The inclusion of auto.conf is mandatory, while that of auto.conf.cmd +is optional. GNU Make does not care about the failure in the process +of updating optional include files. + +I filed this issue (https://savannah.gnu.org/bugs/?56301) in case this +behavior could be improved somehow in future releases of GNU Make. +Anyway, it is quite easy to fix our Makefile. + +Given that auto.conf is already a mandatory include file, there is no +reason to stick auto.conf.cmd optional. Make it mandatory as well. + +Cc: linux-stable # 5.0+ +Fixes: 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing") +Signed-off-by: Masahiro Yamada +[commented out diff above to keep patch happy - gregkh] +Signed-off-by: Greg Kroah-Hartman + +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/Makefile ++++ b/Makefile +@@ -636,7 +636,7 @@ ifeq ($(may-sync-config),1) + # Read in dependencies to all Kconfig* files, make sure to run syncconfig if + # changes are detected. This should be included after arch/$(SRCARCH)/Makefile + # because some architectures define CROSS_COMPILE there. +--include include/config/auto.conf.cmd ++include include/config/auto.conf.cmd + + $(KCONFIG_CONFIG): + @echo >&2 '***' diff --git a/queue-5.1/libnvdimm-namespace-fix-label-tracking-error.patch b/queue-5.1/libnvdimm-namespace-fix-label-tracking-error.patch new file mode 100644 index 00000000000..46527332ed0 --- /dev/null +++ b/queue-5.1/libnvdimm-namespace-fix-label-tracking-error.patch @@ -0,0 +1,158 @@ +From c4703ce11c23423d4b46e3d59aef7979814fd608 Mon Sep 17 00:00:00 2001 +From: Dan Williams +Date: Tue, 30 Apr 2019 21:51:21 -0700 +Subject: libnvdimm/namespace: Fix label tracking error + +From: Dan Williams + +commit c4703ce11c23423d4b46e3d59aef7979814fd608 upstream. + +Users have reported intermittent occurrences of DIMM initialization +failures due to duplicate allocations of address capacity detected in +the labels, or errors of the form below, both have the same root cause. + + nd namespace1.4: failed to track label: 0 + WARNING: CPU: 17 PID: 1381 at drivers/nvdimm/label.c:863 + + RIP: 0010:__pmem_label_update+0x56c/0x590 [libnvdimm] + Call Trace: + ? nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm] + nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm] + uuid_store+0x17e/0x190 [libnvdimm] + kernfs_fop_write+0xf0/0x1a0 + vfs_write+0xb7/0x1b0 + ksys_write+0x57/0xd0 + do_syscall_64+0x60/0x210 + +Unfortunately those reports were typically with a busy parallel +namespace creation / destruction loop making it difficult to see the +components of the bug. However, Jane provided a simple reproducer using +the work-in-progress sub-section implementation. + +When ndctl is reconfiguring a namespace it may take an existing defunct +/ disabled namespace and reconfigure it with a new uuid and other +parameters. Critically namespace_update_uuid() takes existing address +resources and renames them for the new namespace to use / reconfigure as +it sees fit. The bug is that this rename only happens in the resource +tracking tree. Existing labels with the old uuid are not reaped leading +to a scenario where multiple active labels reference the same span of +address range. + +Teach namespace_update_uuid() to flag any references to the old uuid for +reaping at the next label update attempt. + +Cc: +Fixes: bf9bccc14c05 ("libnvdimm: pmem label sets and namespace instantiation") +Link: https://github.com/pmem/ndctl/issues/91 +Reported-by: Jane Chu +Reported-by: Jeff Moyer +Reported-by: Erwin Tsaur +Cc: Johannes Thumshirn +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/nvdimm/label.c | 29 ++++++++++++++++------------- + drivers/nvdimm/namespace_devs.c | 15 +++++++++++++++ + drivers/nvdimm/nd.h | 4 ++++ + 3 files changed, 35 insertions(+), 13 deletions(-) + +--- a/drivers/nvdimm/label.c ++++ b/drivers/nvdimm/label.c +@@ -756,6 +756,17 @@ static const guid_t *to_abstraction_guid + return &guid_null; + } + ++static void reap_victim(struct nd_mapping *nd_mapping, ++ struct nd_label_ent *victim) ++{ ++ struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); ++ u32 slot = to_slot(ndd, victim->label); ++ ++ dev_dbg(ndd->dev, "free: %d\n", slot); ++ nd_label_free_slot(ndd, slot); ++ victim->label = NULL; ++} ++ + static int __pmem_label_update(struct nd_region *nd_region, + struct nd_mapping *nd_mapping, struct nd_namespace_pmem *nspm, + int pos, unsigned long flags) +@@ -763,9 +774,9 @@ static int __pmem_label_update(struct nd + struct nd_namespace_common *ndns = &nspm->nsio.common; + struct nd_interleave_set *nd_set = nd_region->nd_set; + struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); +- struct nd_label_ent *label_ent, *victim = NULL; + struct nd_namespace_label *nd_label; + struct nd_namespace_index *nsindex; ++ struct nd_label_ent *label_ent; + struct nd_label_id label_id; + struct resource *res; + unsigned long *free; +@@ -834,18 +845,10 @@ static int __pmem_label_update(struct nd + list_for_each_entry(label_ent, &nd_mapping->labels, list) { + if (!label_ent->label) + continue; +- if (memcmp(nspm->uuid, label_ent->label->uuid, +- NSLABEL_UUID_LEN) != 0) +- continue; +- victim = label_ent; +- list_move_tail(&victim->list, &nd_mapping->labels); +- break; +- } +- if (victim) { +- dev_dbg(ndd->dev, "free: %d\n", slot); +- slot = to_slot(ndd, victim->label); +- nd_label_free_slot(ndd, slot); +- victim->label = NULL; ++ if (test_and_clear_bit(ND_LABEL_REAP, &label_ent->flags) ++ || memcmp(nspm->uuid, label_ent->label->uuid, ++ NSLABEL_UUID_LEN) == 0) ++ reap_victim(nd_mapping, label_ent); + } + + /* update index */ +--- a/drivers/nvdimm/namespace_devs.c ++++ b/drivers/nvdimm/namespace_devs.c +@@ -1247,12 +1247,27 @@ static int namespace_update_uuid(struct + for (i = 0; i < nd_region->ndr_mappings; i++) { + struct nd_mapping *nd_mapping = &nd_region->mapping[i]; + struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); ++ struct nd_label_ent *label_ent; + struct resource *res; + + for_each_dpa_resource(ndd, res) + if (strcmp(res->name, old_label_id.id) == 0) + sprintf((void *) res->name, "%s", + new_label_id.id); ++ ++ mutex_lock(&nd_mapping->lock); ++ list_for_each_entry(label_ent, &nd_mapping->labels, list) { ++ struct nd_namespace_label *nd_label = label_ent->label; ++ struct nd_label_id label_id; ++ ++ if (!nd_label) ++ continue; ++ nd_label_gen_id(&label_id, nd_label->uuid, ++ __le32_to_cpu(nd_label->flags)); ++ if (strcmp(old_label_id.id, label_id.id) == 0) ++ set_bit(ND_LABEL_REAP, &label_ent->flags); ++ } ++ mutex_unlock(&nd_mapping->lock); + } + kfree(*old_uuid); + out: +--- a/drivers/nvdimm/nd.h ++++ b/drivers/nvdimm/nd.h +@@ -113,8 +113,12 @@ struct nd_percpu_lane { + spinlock_t lock; + }; + ++enum nd_label_flags { ++ ND_LABEL_REAP, ++}; + struct nd_label_ent { + struct list_head list; ++ unsigned long flags; + struct nd_namespace_label *label; + }; + diff --git a/queue-5.1/powerpc-32s-fix-flush_hash_pages-on-smp.patch b/queue-5.1/powerpc-32s-fix-flush_hash_pages-on-smp.patch new file mode 100644 index 00000000000..3652ea93cf1 --- /dev/null +++ b/queue-5.1/powerpc-32s-fix-flush_hash_pages-on-smp.patch @@ -0,0 +1,35 @@ +From 397d2300b08cdee052053e362018cdb6dd65eea2 Mon Sep 17 00:00:00 2001 +From: Christophe Leroy +Date: Thu, 9 May 2019 12:59:38 +0000 +Subject: powerpc/32s: fix flush_hash_pages() on SMP + +From: Christophe Leroy + +commit 397d2300b08cdee052053e362018cdb6dd65eea2 upstream. + +flush_hash_pages() runs with data translation off, so current +task_struct has to be accesssed using physical address. + +Fixes: f7354ccac844 ("powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU") +Cc: stable@vger.kernel.org # v5.1+ +Reported-by: Erhard F. +Signed-off-by: Christophe Leroy +Signed-off-by: Michael Ellerman +Signed-off-by: Greg Kroah-Hartman + +--- + arch/powerpc/mm/hash_low_32.S | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/powerpc/mm/hash_low_32.S ++++ b/arch/powerpc/mm/hash_low_32.S +@@ -539,7 +539,8 @@ _GLOBAL(flush_hash_pages) + #ifdef CONFIG_SMP + lis r9, (mmu_hash_lock - PAGE_OFFSET)@ha + addi r9, r9, (mmu_hash_lock - PAGE_OFFSET)@l +- lwz r8,TASK_CPU(r2) ++ tophys (r8, r2) ++ lwz r8, TASK_CPU(r8) + oris r8,r8,9 + 10: lwarx r0,0,r9 + cmpi 0,r0,0 diff --git a/queue-5.1/series b/queue-5.1/series index f3432db24c6..0897fda8c5d 100644 --- a/queue-5.1/series +++ b/queue-5.1/series @@ -116,3 +116,9 @@ revert-kvm-nvmx-expose-rdpmc-exiting-only-when-guest-supports-pmu.patch kvm-fix-the-bitmap-range-to-copy-during-clear-dirty.patch kvm-x86-skip-efer-vs.-guest-cpuid-checks-for-host-initiated-writes.patch kvm-lapic-busy-wait-for-timer-to-expire-when-using-hv_timer.patch +smb3-display-session-id-in-debug-data.patch +kbuild-turn-auto.conf.cmd-into-a-mandatory-include-file.patch +xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch +xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch +powerpc-32s-fix-flush_hash_pages-on-smp.patch +libnvdimm-namespace-fix-label-tracking-error.patch diff --git a/queue-5.1/smb3-display-session-id-in-debug-data.patch b/queue-5.1/smb3-display-session-id-in-debug-data.patch new file mode 100644 index 00000000000..3ec30f05a28 --- /dev/null +++ b/queue-5.1/smb3-display-session-id-in-debug-data.patch @@ -0,0 +1,34 @@ +From b63a9de02d64ecd5ff0749e90253f5b30ba5b9c0 Mon Sep 17 00:00:00 2001 +From: Steve French +Date: Wed, 8 May 2019 22:41:37 -0500 +Subject: smb3: display session id in debug data + +From: Steve French + +commit b63a9de02d64ecd5ff0749e90253f5b30ba5b9c0 upstream. + +Displaying the session id in /proc/fs/cifs/DebugData +is needed in order to correlate Linux client information +with network and server traces for many common support +scenarios. Turned out to be very important for debugging. + +Signed-off-by: Steve French +CC: Stable +Reviewed-by: Pavel Shilovsky +Signed-off-by: Greg Kroah-Hartman + +--- + fs/cifs/cifs_debug.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/fs/cifs/cifs_debug.c ++++ b/fs/cifs/cifs_debug.c +@@ -376,6 +376,8 @@ skip_rdma: + atomic_read(&server->in_send), + atomic_read(&server->num_waiters)); + #endif ++ /* dump session id helpful for use with network trace */ ++ seq_printf(m, " SessionId: 0x%llx", ses->Suid); + if (ses->session_flags & SMB2_SESSION_FLAG_ENCRYPT_DATA) + seq_puts(m, " encrypted"); + if (ses->sign) diff --git a/queue-5.1/xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch b/queue-5.1/xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch new file mode 100644 index 00000000000..16873696dc1 --- /dev/null +++ b/queue-5.1/xen-pvh-correctly-setup-the-pv-efi-interface-for-dom0.patch @@ -0,0 +1,154 @@ +From 72813bfbf0276a97c82af038efb5f02dcdd9e310 Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 23 Apr 2019 15:04:16 +0200 +Subject: 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 + +From: Roger Pau Monne + +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. + +Reported-by: PGNet Dev +Signed-off-by: Roger Pau Monné +Reviewed-by: Boris Ostrovsky +Signed-off-by: Boris Ostrovsky +Cc: stable@vger.kernel.org # 4.19+ +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/platform/pvh/enlighten.c | 8 ++++---- + arch/x86/xen/efi.c | 12 ++++++------ + arch/x86/xen/enlighten_pv.c | 2 +- + arch/x86/xen/enlighten_pvh.c | 6 +++++- + arch/x86/xen/xen-ops.h | 4 ++-- + 5 files changed, 18 insertions(+), 14 deletions(-) + +--- a/arch/x86/platform/pvh/enlighten.c ++++ b/arch/x86/platform/pvh/enlighten.c +@@ -44,8 +44,6 @@ void __init __weak mem_map_via_hcall(str + + 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(b + * 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); +--- a/arch/x86/xen/efi.c ++++ b/arch/x86/xen/efi.c +@@ -158,7 +158,7 @@ static enum efi_secureboot_mode xen_efi_ + 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); +--- a/arch/x86/xen/enlighten_pv.c ++++ b/arch/x86/xen/enlighten_pv.c +@@ -1403,7 +1403,7 @@ asmlinkage __visible void __init xen_sta + /* 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 +--- a/arch/x86/xen/enlighten_pvh.c ++++ b/arch/x86/xen/enlighten_pvh.c +@@ -13,6 +13,8 @@ + + #include + ++#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) +--- a/arch/x86/xen/xen-ops.h ++++ b/arch/x86/xen/xen-ops.h +@@ -122,9 +122,9 @@ static inline void __init xen_init_vga(c + 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 diff --git a/queue-5.1/xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch b/queue-5.1/xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch new file mode 100644 index 00000000000..b3349e81139 --- /dev/null +++ b/queue-5.1/xen-pvh-set-xen_domain_type-to-hvm-in-xen_pvh_init.patch @@ -0,0 +1,34 @@ +From c9f804d64bb93c8dbf957df1d7e9de11380e522d Mon Sep 17 00:00:00 2001 +From: Roger Pau Monne +Date: Tue, 23 Apr 2019 15:04:15 +0200 +Subject: xen/pvh: set xen_domain_type to HVM in xen_pvh_init +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Roger Pau Monne + +commit c9f804d64bb93c8dbf957df1d7e9de11380e522d upstream. + +Or else xen_domain() returns false despite xen_pvh being set. + +Signed-off-by: Roger Pau Monné +Reviewed-by: Boris Ostrovsky +Signed-off-by: Boris Ostrovsky +Cc: stable@vger.kernel.org # 4.19+ +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/xen/enlighten_pvh.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/x86/xen/enlighten_pvh.c ++++ b/arch/x86/xen/enlighten_pvh.c +@@ -27,6 +27,7 @@ void __init xen_pvh_init(void) + u64 pfn; + + xen_pvh = 1; ++ xen_domain_type = XEN_HVM_DOMAIN; + xen_start_flags = pvh_start_info.flags; + + msr = cpuid_ebx(xen_cpuid_base() + 2); -- 2.47.2