// SPDX-License-Identifier: GPL-2.0-or-later #include #include struct static_key_false disable_kuap_key; EXPORT_SYMBOL(disable_kuap_key); void kuap_lock_all_ool(void) { kuap_lock_all(); } EXPORT_SYMBOL(kuap_lock_all_ool); void kuap_unlock_all_ool(void) { kuap_unlock_all(); } EXPORT_SYMBOL(kuap_unlock_all_ool); void setup_kuap(bool disabled) { if (!disabled) { kuap_lock_all_ool(); init_mm.context.sr0 |= SR_KS; current->thread.sr0 |= SR_KS; } if (smp_processor_id() != boot_cpuid) return; if (disabled) static_branch_enable(&disable_kuap_key); else pr_info("Activating Kernel Userspace Access Protection\n"); }