Defined in 8 files as a macro:
- arch/arm/include/asm/pgtable.h, line 147 (as a macro)
- arch/arm64/include/asm/pgtable.h, line 638 (as a macro)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 906 (as a macro)
- arch/powerpc/include/asm/nohash/64/pgtable.h, line 140 (as a macro)
- arch/riscv/include/asm/pgtable.h, line 823 (as a macro)
- arch/s390/include/asm/pgtable.h, line 797 (as a macro)
- arch/sparc/include/asm/pgtable_64.h, line 701 (as a macro)
- arch/x86/include/asm/pgtable.h, line 224 (as a macro)
Defined in 4 files as a function:
- arch/riscv/include/asm/pgtable.h, line 824 (as a function)
- arch/s390/include/asm/pgtable.h, line 798 (as a function)
- arch/x86/include/asm/pgtable.h, line 225 (as a function)
- include/linux/pgtable.h, line 2082 (as a function)
Referenced in 9 files:
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 1198
- include/linux/pgtable.h
- mm/debug_vm_pgtable.c
- mm/gup.c
- mm/hmm.c, line 486
- mm/huge_memory.c, line 2055
- mm/mapping_dirty_helpers.c, line 156
- mm/memory.c
- mm/page_table_check.c, line 270
Smatch caller information:
mm/huge_memory.c copy_huge_pud() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| 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/page_table_check.c __page_table_check_puds_set() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | $3 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | old_ptl | ||
| HALF_LOCKED2 | ptl |
mm/memory.c __handle_mm_fault() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c follow_pfnmap_start() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | r pudp_get |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &iommu->lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c can_follow_write_pud() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c follow_huge_pud() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/gup.c gup_fast_pud_leaf() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | flags |
mm/debug_vm_pgtable.c pud_advanced_tests() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | r pudp_get |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pud_advanced_tests() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | r pudp_get |
| PREEMPT_ADD |
mm/debug_vm_pgtable.c pud_basic_tests() -> pud_write()
| Type | Parameter | Key | Value |
|---|
mm/debug_vm_pgtable.c pud_basic_tests() -> pud_write()
| Type | Parameter | Key | Value |
|---|
mm/mapping_dirty_helpers.c wp_clean_pud_entry() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | r pudp_get |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/hmm.c pud_to_hmm_pfn_flags() -> pud_write()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | pud | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |