Defined in 2 files as a function:
- arch/s390/include/asm/hugetlb.h, line 93 (as a function)
- include/asm-generic/hugetlb.h, line 55 (as a function)
Referenced in 3 files:
Smatch caller information:
mm/userfaultfd.c userfaultfd_huge_must_wait() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
fs/proc/task_mmu.c pagemap_hugetlb_category() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $1 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &vma->vm_file->f_mapping->i_mmap_rwsem |
fs/proc/task_mmu.c pagemap_hugetlb_range() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/hugetlb.c __unmap_hugepage_range() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get_and_clear |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/hugetlb.c copy_hugetlb_page_range() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/hugetlb.c hugetlb_change_protection() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem |
mm/hugetlb.c hugetlb_change_protection() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem |
mm/hugetlb.c hugetlb_fault() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c hugetlb_fault() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c hugetlb_fault() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c hugetlb_install_folio() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | $4 |
| BIT_INFO | 0 | pte | 0x0,0x7fffffffffffffff |
| BIT_INFO | 0 | pte | 0x0,0x7fffffffffffffff |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | &oldmm->mmap_lock | ||
| LOCK2 | src_ptl | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/hugetlb.c hugetlb_wp() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/hugetlb.c hugetlb_wp() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | vmf->ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &pool->lock |
mm/hugetlb.c move_huge_pte() -> huge_pte_uffd()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pte | r huge_ptep_get_and_clear |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &mapping->i_mmap_rwsem | ||
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| HALF_LOCKED2 | src_ptl | ||
| TYPE_LOCK | (struct address_space)->i_mmap_rwsem | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |