代码拉取完成,页面将自动刷新
diff --git a/arch/arm/include/asm/virt.h b/arch/arm/include/asm/virt.h
index dd9697b2b..47600a589 100644
--- a/arch/arm/include/asm/virt.h
+++ b/arch/arm/include/asm/virt.h
@@ -39,6 +39,8 @@ static inline void sync_boot_mode(void)
sync_cache_r(&__boot_cpu_mode);
}
+void __hyp_set_vectors(unsigned long phys_vector_base);
+void __hyp_reset_vectors(void);
#else
#define __boot_cpu_mode (SVC_MODE)
#define sync_boot_mode()
@@ -73,6 +75,9 @@ static inline bool is_kernel_in_hyp_mode(void)
#define HVC_SET_VECTORS 0
#define HVC_SOFT_RESTART 1
+#define HVC_RESET_VECTORS 2
+
+#define HVC_STUB_HCALL_NR 3
#endif /* __ASSEMBLY__ */
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 82e96ac83..354ab3e4e 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -16,6 +16,7 @@
#include <asm/checksum.h>
#include <asm/ftrace.h>
+#include <asm/virt.h>
/*
* libgcc functions - functions that are used internally by the
@@ -175,3 +176,7 @@ EXPORT_SYMBOL(__pv_offset);
EXPORT_SYMBOL(__arm_smccc_smc);
EXPORT_SYMBOL(__arm_smccc_hvc);
#endif
+
+#ifdef CONFIG_ARM_VIRT_EXT
+EXPORT_SYMBOL_GPL(__boot_cpu_mode);
+#endif
diff --git a/arch/arm64/kernel/hyp-stub.S b/arch/arm64/kernel/hyp-stub.S
index 160f5881a..a055e28be 100644
--- a/arch/arm64/kernel/hyp-stub.S
+++ b/arch/arm64/kernel/hyp-stub.S
@@ -10,6 +10,7 @@
#include <linux/linkage.h>
#include <linux/irqchip/arm-gic-v3.h>
+#include <asm-generic/export.h>
#include <asm/assembler.h>
#include <asm/kvm_arm.h>
#include <asm/kvm_asm.h>
@@ -42,6 +43,7 @@ SYM_CODE_START(__hyp_stub_vectors)
ventry el1_fiq_invalid // FIQ 32-bit EL1
ventry el1_error_invalid // Error 32-bit EL1
SYM_CODE_END(__hyp_stub_vectors)
+EXPORT_SYMBOL_GPL(__hyp_stub_vectors)
.align 11
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 1c96f2425..3cda1c592 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -197,6 +197,7 @@ static struct resource lapic_resource = {
};
unsigned int lapic_timer_period = 0;
+EXPORT_SYMBOL_GPL(lapic_timer_period);
static void apic_pm_activate(void);
diff --git a/mm/ioremap.c b/mm/ioremap.c
index 8ee0136f8..637fd1523 100644
--- a/mm/ioremap.c
+++ b/mm/ioremap.c
@@ -33,6 +33,7 @@ int ioremap_page_range(unsigned long addr,
{
return vmap_range(addr, end, phys_addr, prot, iomap_max_page_shift);
}
+EXPORT_SYMBOL_GPL(ioremap_page_range);
#ifdef CONFIG_GENERIC_IOREMAP
void __iomem *ioremap_prot(phys_addr_t addr, size_t size, unsigned long prot)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。