From: Greg Kroah-Hartman Date: Mon, 22 May 2023 18:58:33 +0000 (+0100) Subject: 5.10-stable patches X-Git-Tag: v6.3.4~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=915ccea0a9706686aa010f5263df9d20d90d9400;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: kvm-arm64-link-position-independent-string-routines-into-.hyp.text.patch --- diff --git a/queue-5.10/kvm-arm64-link-position-independent-string-routines-into-.hyp.text.patch b/queue-5.10/kvm-arm64-link-position-independent-string-routines-into-.hyp.text.patch new file mode 100644 index 00000000000..2c5367a3961 --- /dev/null +++ b/queue-5.10/kvm-arm64-link-position-independent-string-routines-into-.hyp.text.patch @@ -0,0 +1,76 @@ +From f57cddd458d9d49e39c061960014ec6f09187ac0 Mon Sep 17 00:00:00 2001 +From: Will Deacon +Date: Fri, 19 Mar 2021 10:01:10 +0000 +Subject: KVM: arm64: Link position-independent string routines into .hyp.text + +From: Will Deacon + +commit 7b4a7b5e6fefd15f708f959dd43e188444e252ec upstream + +Pull clear_page(), copy_page(), memcpy() and memset() into the nVHE hyp +code and ensure that we always execute the '__pi_' entry point on the +offchance that it changes in future. + +[ qperret: Commit title nits and added linker script alias ] + +Signed-off-by: Will Deacon +Signed-off-by: Quentin Perret +Signed-off-by: Marc Zyngier +Link: https://lore.kernel.org/r/20210319100146.1149909-3-qperret@google.com +[sudip: adjust context] +Signed-off-by: Sudip Mukherjee +Signed-off-by: Greg Kroah-Hartman +--- + arch/arm64/include/asm/hyp_image.h | 3 +++ + arch/arm64/kernel/image-vars.h | 11 +++++++++++ + arch/arm64/kvm/hyp/nvhe/Makefile | 4 ++++ + 3 files changed, 18 insertions(+) + +--- a/arch/arm64/include/asm/hyp_image.h ++++ b/arch/arm64/include/asm/hyp_image.h +@@ -31,6 +31,9 @@ + */ + #define KVM_NVHE_ALIAS(sym) kvm_nvhe_sym(sym) = sym; + ++/* Defines a linker script alias for KVM nVHE hyp symbols */ ++#define KVM_NVHE_ALIAS_HYP(first, sec) kvm_nvhe_sym(first) = kvm_nvhe_sym(sec); ++ + #endif /* LINKER_SCRIPT */ + + #endif /* __ARM64_HYP_IMAGE_H__ */ +--- a/arch/arm64/kernel/image-vars.h ++++ b/arch/arm64/kernel/image-vars.h +@@ -103,6 +103,17 @@ KVM_NVHE_ALIAS(gic_nonsecure_priorities) + KVM_NVHE_ALIAS(__start___kvm_ex_table); + KVM_NVHE_ALIAS(__stop___kvm_ex_table); + ++/* Position-independent library routines */ ++KVM_NVHE_ALIAS_HYP(clear_page, __pi_clear_page); ++KVM_NVHE_ALIAS_HYP(copy_page, __pi_copy_page); ++KVM_NVHE_ALIAS_HYP(memcpy, __pi_memcpy); ++KVM_NVHE_ALIAS_HYP(memset, __pi_memset); ++ ++#ifdef CONFIG_KASAN ++KVM_NVHE_ALIAS_HYP(__memcpy, __pi_memcpy); ++KVM_NVHE_ALIAS_HYP(__memset, __pi_memset); ++#endif ++ + #endif /* CONFIG_KVM */ + + #endif /* __ARM64_KERNEL_IMAGE_VARS_H */ +--- a/arch/arm64/kvm/hyp/nvhe/Makefile ++++ b/arch/arm64/kvm/hyp/nvhe/Makefile +@@ -6,9 +6,13 @@ + asflags-y := -D__KVM_NVHE_HYPERVISOR__ + ccflags-y := -D__KVM_NVHE_HYPERVISOR__ + ++lib-objs := clear_page.o copy_page.o memcpy.o memset.o ++lib-objs := $(addprefix ../../../lib/, $(lib-objs)) ++ + obj-y := timer-sr.o sysreg-sr.o debug-sr.o switch.o tlb.o hyp-init.o host.o hyp-main.o + obj-y += ../vgic-v3-sr.o ../aarch32.o ../vgic-v2-cpuif-proxy.o ../entry.o \ + ../fpsimd.o ../hyp-entry.o ++obj-y += $(lib-objs) + + ## + ## Build rules for compiling nVHE hyp code diff --git a/queue-5.10/series b/queue-5.10/series index cdeb40be966..d0b634eff6d 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -150,3 +150,4 @@ nilfs2-fix-use-after-free-bug-of-nilfs_root-in-nilfs_evict_inode.patch hid-wacom-force-pen-out-of-prox-if-no-events-have-been-received-in-a-while.patch hid-wacom-add-new-intuos-pro-small-pth-460-device-ids.patch hid-wacom-add-three-styli-to-wacom_intuos_get_tool_type.patch +kvm-arm64-link-position-independent-string-routines-into-.hyp.text.patch