// SPDX-License-Identifier: GPL-2.0-or-later /* * This file contains the routines for initializing kernel userspace protection */ #include <linux/export.h> #include <linux/init.h> #include <linux/jump_label.h> #include <linux/printk.h> #include <linux/smp.h> #include <asm/kup.h> #include <asm/smp.h> #ifdef CONFIG_PPC_KUAP struct static_key_false disable_kuap_key; EXPORT_SYMBOL(disable_kuap_key); void setup_kuap(bool disabled) { if (disabled) { if (IS_ENABLED(CONFIG_40x)) disable_kuep = true; if (smp_processor_id() == boot_cpuid) static_branch_enable(&disable_kuap_key); return; } pr_info("Activating Kernel Userspace Access Protection\n"); __prevent_user_access(KUAP_READ_WRITE); } #endif