Lines Matching +full:reset +full:- +full:synchronized

1 // SPDX-License-Identifier: GPL-2.0-only
69 * tagged, return non-zero to avoid KSM merging. If only one of the in memcmp_pages()
154 * (per ARM DDI 0487F.c table D13-1). in mte_check_tfsr_el1()
176 unsigned long sctlr = task->thread.sctlr_user; in mte_update_sctlr_user()
177 unsigned long mte_ctrl = task->thread.mte_ctrl; in mte_update_sctlr_user()
198 task->thread.sctlr_user = sctlr; in mte_update_sctlr_user()
204 * SYS_GCR_EL1 will be set to current->thread.mte_ctrl value by in mte_update_gcr_excl()
211 ((task->thread.mte_ctrl >> MTE_CTRL_GCR_USER_EXCL_SHIFT) & in mte_update_gcr_excl()
224 BUG_ON(nr_inst != 1); /* Branch -> NOP */ in kasan_hw_tags_enable()
240 /* disable tag checking and reset tag generation mask */ in mte_thread_init_user()
260 * are synchronized before this point. in mte_thread_switch()
274 * CPU power-up. in mte_cpu_setup()
292 * RGSR_EL1.SEED must be non-zero for IRG to produce in mte_cpu_setup()
293 * pseudorandom numbers. As RGSR_EL1 is UNKNOWN out of reset, we in mte_cpu_setup()
316 * to TFSR_EL1 are synchronized before we report the state. in mte_suspend_enter()
357 task->thread.mte_ctrl = mte_ctrl; in set_mte_ctrl()
362 update_sctlr_el1(task->thread.sctlr_user); in set_mte_ctrl()
372 u64 mte_ctrl = task->thread.mte_ctrl; in get_mte_ctrl()
396 void __user *buf = kiov->iov_base; in __access_remote_tags()
397 size_t len = kiov->iov_len; in __access_remote_tags()
402 return -EFAULT; in __access_remote_tags()
405 return -EIO; in __access_remote_tags()
426 if (!(vma->vm_flags & VM_MTE)) { in __access_remote_tags()
427 err = -EOPNOTSUPP; in __access_remote_tags()
435 tags = min(len, (PAGE_SIZE - offset) / MTE_GRANULE_SIZE); in __access_remote_tags()
450 len -= tags; in __access_remote_tags()
457 kiov->iov_len = buf - kiov->iov_base; in __access_remote_tags()
458 if (!kiov->iov_len) { in __access_remote_tags()
461 return -EIO; in __access_remote_tags()
463 return -EFAULT; in __access_remote_tags()
481 return -EPERM; in access_remote_tags()
483 if (!tsk->ptrace || (current != tsk->parent) || in access_remote_tags()
485 !ptracer_capable(tsk, mm->user_ns))) { in access_remote_tags()
487 return -EPERM; in access_remote_tags()
505 return -EIO; in mte_ptrace_copy_tags()
507 if (get_user(kiov.iov_base, &uiov->iov_base) || in mte_ptrace_copy_tags()
508 get_user(kiov.iov_len, &uiov->iov_len)) in mte_ptrace_copy_tags()
509 return -EFAULT; in mte_ptrace_copy_tags()
519 ret = put_user(kiov.iov_len, &uiov->iov_len); in mte_ptrace_copy_tags()
527 switch (per_cpu(mte_tcf_preferred, dev->id)) { in mte_tcf_preferred_show()
552 return -EINVAL; in mte_tcf_preferred_store()
555 per_cpu(mte_tcf_preferred, dev->id) = tcf; in mte_tcf_preferred_store()
600 return end - uaddr; in mte_probe_user_range()