Defined in 1 files as a function:

Referenced in 7 files:

Smatch caller information:

mm/huge_memory.c pte_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 src_ptl

mm/kasan/init.c __p4d_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

mm/kasan/init.c __pud_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

mm/kasan/init.c pmd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

mm/kasan/init.c pte_free_kernel() -> pagetable_dtor_free()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

mm/migrate_device.c pte_free() -> pagetable_dtor_free()

Type Parameter Key Value
PARAM_VALUE 0 ptdesc 4096-ptr_max
DATA_SOURCE 0 ptdesc $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &drm->dmem->mutex

mm/mmu_gather.c __tlb_remove_table() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

mm/memory.c __p4d_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mm->page_table_lock
HALF_LOCKED2 &mm->context.ldt_usr_sem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct mm_struct)->page_table_lock

mm/memory.c __pud_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &mm->page_table_lock
HALF_LOCKED2 &mm->context.ldt_usr_sem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 irq
TYPE_LOCK (struct mm_struct)->page_table_lock

mm/memory.c pmd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->context.ldt_usr_sem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c pte_free() -> pagetable_dtor_free()

Type Parameter Key Value
PARAM_VALUE 0 ptdesc 1-u64max
DATA_SOURCE 0 ptdesc $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c pte_free_kernel() -> pagetable_dtor_free()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/pgtable-generic.c pte_free() -> pagetable_dtor_free()

Type Parameter Key Value
PARAM_VALUE 0 ptdesc 4096-ptr_max
DATA_SOURCE 0 ptdesc $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

arch/x86/mm/pat/set_memory.c __cpa_collapse_large_pages() -> pagetable_dtor_free()

Type Parameter Key Value
PARAM_VALUE 0 ptdesc 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &cpa_lock
LOCK2 global &init_mm.mmap_lock
HALF_LOCKED2 global &mem_enc_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

arch/x86/mm/pat/set_memory.c pmd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cpa_lock
HALF_LOCKED2 global &mem_enc_lock

arch/x86/mm/pat/set_memory.c pte_free_kernel() -> pagetable_dtor_free()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cpa_lock
HALF_LOCKED2 global &mem_enc_lock

mm/debug_vm_pgtable.c __p4d_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
NOCHECK_CALL

mm/debug_vm_pgtable.c __pud_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
NOCHECK_CALL

mm/debug_vm_pgtable.c pmd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
NOCHECK_CALL

mm/debug_vm_pgtable.c pte_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc $1
PREEMPT_ADD
NOCHECK_CALL

mm/hugetlb_vmemmap.c pte_free_kernel() -> pagetable_dtor_free()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &init_mm.page_table_lock
HALF_LOCKED2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->page_table_lock

arch/x86/mm/pgtable.c __pgd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock

arch/x86/mm/pgtable.c pmd_free() -> pagetable_dtor_free()

Type Parameter Key Value
DATA_SOURCE 0 ptdesc r virt_to_ptdesc
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

arch/x86/mm/pgtable.c pmd_free_pte_page() -> pagetable_dtor_free()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

arch/x86/mm/pgtable.c pud_free_pmd_page() -> pagetable_dtor_free()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL