Lines Matching +full:support +full:- +full:nesting
1 /* SPDX-License-Identifier: GPL-2.0 */
102 * save AMR -> stack;
105 * KUAP_BLOCKED -> AMR;
108 * save IAMR -> stack;
110 * KUEP_BLOCKED ->IAMR
118 * save AMR -> stack;
120 * KUAP_BLOCKED -> AMR;
212 * thread-specific and we inherit the address space and not thread
218 if (current->thread.regs) in current_thread_amr()
219 return current->thread.regs->amr; in current_thread_amr()
225 if (current->thread.regs) in current_thread_iamr()
226 return current->thread.regs->iamr; in current_thread_iamr()
243 if (amr != regs->amr) in kuap_user_restore()
251 if (iamr != regs->iamr) in kuap_user_restore()
261 mtspr(SPRN_AMR, regs->amr); in kuap_user_restore()
263 mtspr(SPRN_IAMR, regs->iamr); in kuap_user_restore()
274 if (likely(regs->amr == amr)) in __kuap_kernel_restore()
278 mtspr(SPRN_AMR, regs->amr); in __kuap_kernel_restore()
301 * We support individually allowing read or write, but we don't support nesting
308 * We return AMR_KUAP_BLOCKED when we don't support KUAP because in get_kuap()
351 return (regs->amr & AMR_KUAP_BLOCK_WRITE) == AMR_KUAP_BLOCK_WRITE; in __bad_kuap_fault()
353 return (regs->amr & AMR_KUAP_BLOCK_READ) == AMR_KUAP_BLOCK_READ; in __bad_kuap_fault()