mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-29 07:04:10 +08:00
powerpc/44x: Activate KUEP at all time
On 44x, KUEP is implemented by clearing SX bit during TLB miss for user pages. The impact is minimal and not worth neither boot time nor build time selection. Activate it at all time. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/2414d662558e7fb27d1ed41c8e47c591d576acac.1634627931.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
13dac4e31e
commit
ee2631603f
@ -113,7 +113,6 @@ typedef struct {
|
||||
|
||||
/* patch sites */
|
||||
extern s32 patch__tlb_44x_hwater_D, patch__tlb_44x_hwater_I;
|
||||
extern s32 patch__tlb_44x_kuep, patch__tlb_47x_kuep;
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
@ -532,10 +532,7 @@ finish_tlb_load_44x:
|
||||
andi. r10,r12,_PAGE_USER /* User page ? */
|
||||
beq 1f /* nope, leave U bits empty */
|
||||
rlwimi r11,r11,3,26,28 /* yes, copy S bits to U */
|
||||
#ifdef CONFIG_PPC_KUEP
|
||||
0: rlwinm r11,r11,0,~PPC44x_TLB_SX /* Clear SX if User page */
|
||||
patch_site 0b, patch__tlb_44x_kuep
|
||||
#endif
|
||||
rlwinm r11,r11,0,~PPC44x_TLB_SX /* Clear SX if User page */
|
||||
1: tlbwe r11,r13,PPC44x_TLB_ATTRIB /* Write ATTRIB */
|
||||
|
||||
/* Done...restore registers and get out of here.
|
||||
@ -747,10 +744,7 @@ finish_tlb_load_47x:
|
||||
andi. r10,r12,_PAGE_USER /* User page ? */
|
||||
beq 1f /* nope, leave U bits empty */
|
||||
rlwimi r11,r11,3,26,28 /* yes, copy S bits to U */
|
||||
#ifdef CONFIG_PPC_KUEP
|
||||
0: rlwinm r11,r11,0,~PPC47x_TLB2_SX /* Clear SX if User page */
|
||||
patch_site 0b, patch__tlb_47x_kuep
|
||||
#endif
|
||||
rlwinm r11,r11,0,~PPC47x_TLB2_SX /* Clear SX if User page */
|
||||
1: tlbwe r11,r13,2
|
||||
|
||||
/* Done...restore registers and get out of here.
|
||||
|
@ -247,12 +247,6 @@ void setup_kuep(bool disabled)
|
||||
if (smp_processor_id() != boot_cpuid)
|
||||
return;
|
||||
|
||||
if (disabled)
|
||||
patch_instruction_site(&patch__tlb_44x_kuep, ppc_inst(PPC_RAW_NOP()));
|
||||
else
|
||||
pr_info("Activating Kernel Userspace Execution Prevention\n");
|
||||
|
||||
if (IS_ENABLED(CONFIG_PPC_47x) && disabled)
|
||||
patch_instruction_site(&patch__tlb_47x_kuep, ppc_inst(PPC_RAW_NOP()));
|
||||
pr_info("Activating Kernel Userspace Execution Prevention\n");
|
||||
}
|
||||
#endif
|
||||
|
@ -63,6 +63,7 @@ config 44x
|
||||
select HAVE_PCI
|
||||
select PHYS_64BIT
|
||||
select PPC_HAVE_KUEP
|
||||
select PPC_KUEP
|
||||
|
||||
endchoice
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user