Defined in 3 files as a prototype:
- arch/arm64/include/asm/hugetlb.h, line 35 (as a prototype)
- arch/riscv/include/asm/hugetlb.h, line 50 (as a prototype)
- arch/sparc/include/asm/pgtable_64.h, line 393 (as a prototype)
Defined in 5 files as a macro:
- arch/arm64/include/asm/hugetlb.h, line 36 (as a macro)
- arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h, line 57 (as a macro)
- arch/powerpc/include/asm/nohash/hugetlb-e500.h, line 22 (as a macro)
- arch/riscv/include/asm/hugetlb.h, line 51 (as a macro)
- arch/sparc/include/asm/pgtable_64.h, line 394 (as a macro)
Defined in 6 files as a function:
- arch/arm64/mm/hugetlbpage.c, line 344 (as a function)
- arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h, line 48 (as a function)
- arch/powerpc/include/asm/nohash/hugetlb-e500.h, line 15 (as a function)
- arch/riscv/mm/hugetlbpage.c, line 187 (as a function)
- arch/sparc/mm/hugetlbpage.c, line 89 (as a function)
- include/linux/hugetlb.h, line 850 (as a function)
Referenced in 6 files:
- arch/powerpc/mm/nohash/8xx.c, line 91
- include/linux/hugetlb.h, line 849
- mm/debug_vm_pgtable.c, line 891
- mm/hugetlb.c
- mm/migrate.c, line 432
- mm/vmalloc.c, line 129
Smatch caller information:
mm/hugetlb.c copy_hugetlb_page_range() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| 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() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| 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() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| 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() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | flags | 1-u64max |
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hugetlb.c hugetlb_install_folio() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| 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 make_huge_pte() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r pte_mkyoung |
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | &state.ctx->map_changing_lock | ||
| HALF_LOCKED2 | src_ptl | ||
| HALF_LOCKED2 | vmf->ptl |
mm/hugetlb.c move_huge_pte() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | entry | r huge_pte_modify |
| 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 |
mm/vmalloc.c vmap_pte_range() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | flags | 0 |
| DATA_SOURCE | 0 | entry | r pfn_pte |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/debug_vm_pgtable.c hugetlb_basic_tests() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | shift | 21 |
| PARAM_VALUE | 2 | flags | 7 |
| DATA_SOURCE | 0 | entry | r pfn_pte |
mm/migrate.c remove_migration_pte() -> arch_make_huge_pte()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 1 | shift | r huge_page_shift |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |