Loading Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 SUBLEVEL = 94 SUBLEVEL = 95 EXTRAVERSION = NAME = Petit Gorille Loading arch/arm64/include/asm/kvm_arm.h +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <asm/types.h> /* Hyp Configuration Register (HCR) bits */ #define HCR_API (UL(1) << 41) #define HCR_APK (UL(1) << 40) #define HCR_E2H (UL(1) << 34) #define HCR_ID (UL(1) << 33) #define HCR_CD (UL(1) << 32) Loading Loading @@ -82,6 +84,7 @@ HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW) #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF) #define HCR_INT_OVERRIDE (HCR_FMO | HCR_IMO) #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK) #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H) /* TCR_EL2 Registers bits */ Loading arch/arm64/kernel/head.S +2 −3 Original line number Diff line number Diff line Loading @@ -414,10 +414,9 @@ CPU_LE( bic x0, x0, #(1 << 25) ) // Clear the EE bit for EL2 #endif /* Hyp configuration. */ mov x0, #HCR_RW // 64-bit EL1 mov_q x0, HCR_HOST_NVHE_FLAGS cbz x2, set_hcr orr x0, x0, #HCR_TGE // Enable Host Extensions orr x0, x0, #HCR_E2H mov_q x0, HCR_HOST_VHE_FLAGS set_hcr: msr hcr_el2, x0 isb Loading arch/arm64/kernel/kaslr.c +6 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include <linux/sched.h> #include <linux/types.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> #include <asm/kernel-pgtable.h> #include <asm/memory.h> Loading Loading @@ -43,7 +44,7 @@ static __init u64 get_kaslr_seed(void *fdt) return ret; } static __init const u8 *get_cmdline(void *fdt) static __init const u8 *kaslr_get_cmdline(void *fdt) { static __initconst const u8 default_cmdline[] = CONFIG_CMDLINE; Loading Loading @@ -109,7 +110,7 @@ u64 __init kaslr_early_init(u64 dt_phys) * Check if 'nokaslr' appears on the command line, and * return 0 if that is the case. */ cmdline = get_cmdline(fdt); cmdline = kaslr_get_cmdline(fdt); str = strstr(cmdline, "nokaslr"); if (str == cmdline || (str > cmdline && *(str - 1) == ' ')) return 0; Loading Loading @@ -180,5 +181,8 @@ u64 __init kaslr_early_init(u64 dt_phys) module_alloc_base += (module_range * (seed & ((1 << 21) - 1))) >> 21; module_alloc_base &= PAGE_MASK; __flush_dcache_area(&module_alloc_base, sizeof(module_alloc_base)); __flush_dcache_area(&memstart_offset_seed, sizeof(memstart_offset_seed)); return offset; } arch/arm64/kvm/hyp/switch.c +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ static void __hyp_text __deactivate_traps_nvhe(void) mdcr_el2 |= MDCR_EL2_E2PB_MASK << MDCR_EL2_E2PB_SHIFT; write_sysreg(mdcr_el2, mdcr_el2); write_sysreg(HCR_RW, hcr_el2); write_sysreg(HCR_HOST_NVHE_FLAGS, hcr_el2); write_sysreg(CPTR_EL2_DEFAULT, cptr_el2); } Loading Loading
Makefile +1 −1 Original line number Diff line number Diff line # SPDX-License-Identifier: GPL-2.0 VERSION = 4 PATCHLEVEL = 14 SUBLEVEL = 94 SUBLEVEL = 95 EXTRAVERSION = NAME = Petit Gorille Loading
arch/arm64/include/asm/kvm_arm.h +3 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <asm/types.h> /* Hyp Configuration Register (HCR) bits */ #define HCR_API (UL(1) << 41) #define HCR_APK (UL(1) << 40) #define HCR_E2H (UL(1) << 34) #define HCR_ID (UL(1) << 33) #define HCR_CD (UL(1) << 32) Loading Loading @@ -82,6 +84,7 @@ HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW) #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF) #define HCR_INT_OVERRIDE (HCR_FMO | HCR_IMO) #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK) #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H) /* TCR_EL2 Registers bits */ Loading
arch/arm64/kernel/head.S +2 −3 Original line number Diff line number Diff line Loading @@ -414,10 +414,9 @@ CPU_LE( bic x0, x0, #(1 << 25) ) // Clear the EE bit for EL2 #endif /* Hyp configuration. */ mov x0, #HCR_RW // 64-bit EL1 mov_q x0, HCR_HOST_NVHE_FLAGS cbz x2, set_hcr orr x0, x0, #HCR_TGE // Enable Host Extensions orr x0, x0, #HCR_E2H mov_q x0, HCR_HOST_VHE_FLAGS set_hcr: msr hcr_el2, x0 isb Loading
arch/arm64/kernel/kaslr.c +6 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ #include <linux/sched.h> #include <linux/types.h> #include <asm/cacheflush.h> #include <asm/fixmap.h> #include <asm/kernel-pgtable.h> #include <asm/memory.h> Loading Loading @@ -43,7 +44,7 @@ static __init u64 get_kaslr_seed(void *fdt) return ret; } static __init const u8 *get_cmdline(void *fdt) static __init const u8 *kaslr_get_cmdline(void *fdt) { static __initconst const u8 default_cmdline[] = CONFIG_CMDLINE; Loading Loading @@ -109,7 +110,7 @@ u64 __init kaslr_early_init(u64 dt_phys) * Check if 'nokaslr' appears on the command line, and * return 0 if that is the case. */ cmdline = get_cmdline(fdt); cmdline = kaslr_get_cmdline(fdt); str = strstr(cmdline, "nokaslr"); if (str == cmdline || (str > cmdline && *(str - 1) == ' ')) return 0; Loading Loading @@ -180,5 +181,8 @@ u64 __init kaslr_early_init(u64 dt_phys) module_alloc_base += (module_range * (seed & ((1 << 21) - 1))) >> 21; module_alloc_base &= PAGE_MASK; __flush_dcache_area(&module_alloc_base, sizeof(module_alloc_base)); __flush_dcache_area(&memstart_offset_seed, sizeof(memstart_offset_seed)); return offset; }
arch/arm64/kvm/hyp/switch.c +1 −1 Original line number Diff line number Diff line Loading @@ -127,7 +127,7 @@ static void __hyp_text __deactivate_traps_nvhe(void) mdcr_el2 |= MDCR_EL2_E2PB_MASK << MDCR_EL2_E2PB_SHIFT; write_sysreg(mdcr_el2, mdcr_el2); write_sysreg(HCR_RW, hcr_el2); write_sysreg(HCR_HOST_NVHE_FLAGS, hcr_el2); write_sysreg(CPTR_EL2_DEFAULT, cptr_el2); } Loading