Lines Matching refs:kuap

117 	unsigned long kuap = current->thread.kuap;  in kuap_save_and_lock()  local
122 regs->kuap = kuap; in kuap_save_and_lock()
123 if (unlikely(kuap == KUAP_NONE)) in kuap_save_and_lock()
126 current->thread.kuap = KUAP_NONE; in kuap_save_and_lock()
127 kuap_lock(kuap, false); in kuap_save_and_lock()
134 static inline void kuap_kernel_restore(struct pt_regs *regs, unsigned long kuap) in kuap_kernel_restore() argument
139 if (unlikely(kuap != KUAP_NONE)) { in kuap_kernel_restore()
140 current->thread.kuap = KUAP_NONE; in kuap_kernel_restore()
141 kuap_lock(kuap, false); in kuap_kernel_restore()
144 if (likely(regs->kuap == KUAP_NONE)) in kuap_kernel_restore()
147 current->thread.kuap = regs->kuap; in kuap_kernel_restore()
149 kuap_unlock(regs->kuap, false); in kuap_kernel_restore()
154 unsigned long kuap = current->thread.kuap; in kuap_get_and_assert_locked() local
159 WARN_ON_ONCE(IS_ENABLED(CONFIG_PPC_KUAP_DEBUG) && kuap != KUAP_NONE); in kuap_get_and_assert_locked()
161 return kuap; in kuap_get_and_assert_locked()
180 current->thread.kuap = (__force u32)to; in allow_user_access()
186 u32 kuap = current->thread.kuap; in prevent_user_access() local
196 current->thread.kuap = KUAP_NONE; in prevent_user_access()
197 kuap_lock(kuap, true); in prevent_user_access()
202 unsigned long flags = current->thread.kuap; in prevent_user_access_return()
208 current->thread.kuap = KUAP_NONE; in prevent_user_access_return()
221 current->thread.kuap = flags; in restore_user_access()
229 unsigned long kuap = regs->kuap; in bad_kuap_fault() local
234 if (!is_write || kuap == KUAP_ALL) in bad_kuap_fault()
236 if (kuap == KUAP_NONE) in bad_kuap_fault()
240 if ((kuap ^ address) & 0xf0000000) in bad_kuap_fault()
241 regs->kuap = KUAP_ALL; in bad_kuap_fault()