kuap.c (26e041208291bfdea1cb9e26bc94a0f9499efe15) kuap.c (5222a1d5142ec4f9ec063b274b80e20639584dbc)
1// SPDX-License-Identifier: GPL-2.0-or-later
2
3#include <asm/kup.h>
4#include <asm/smp.h>
5
1// SPDX-License-Identifier: GPL-2.0-or-later
2
3#include <asm/kup.h>
4#include <asm/smp.h>
5
6void kuap_lock_all_ool(void)
7{
8 kuap_lock_all();
9}
10EXPORT_SYMBOL(kuap_lock_all_ool);
11
12void kuap_unlock_all_ool(void)
13{
14 kuap_unlock_all();
15}
16EXPORT_SYMBOL(kuap_unlock_all_ool);
17
18void setup_kuap(bool disabled)
19{
20 if (!disabled) {
6void setup_kuap(bool disabled)
7{
8 if (!disabled) {
21 kuap_lock_all_ool();
9 update_user_segments(mfsr(0) | SR_KS);
10 isync(); /* Context sync required after mtsr() */
22 init_mm.context.sr0 |= SR_KS;
23 current->thread.sr0 |= SR_KS;
24 }
25
26 if (smp_processor_id() != boot_cpuid)
27 return;
28
29 if (disabled)
30 cur_cpu_spec->mmu_features &= ~MMU_FTR_KUAP;
31 else
32 pr_info("Activating Kernel Userspace Access Protection\n");
33}
11 init_mm.context.sr0 |= SR_KS;
12 current->thread.sr0 |= SR_KS;
13 }
14
15 if (smp_processor_id() != boot_cpuid)
16 return;
17
18 if (disabled)
19 cur_cpu_spec->mmu_features &= ~MMU_FTR_KUAP;
20 else
21 pr_info("Activating Kernel Userspace Access Protection\n");
22}