Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

mm/huge_memory.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock
HALF_LOCKED2 dst_ptl
HALF_LOCKED2 src_ptl

mm/kasan/init.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

mm/filemap.c replace_page_cache_folio() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 0
PARAM_VALUE 0 folio->mapping->a_ops 4096-ptr_max
PARAM_VALUE 1 idx 19
DATA_SOURCE 0 folio $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &((&xas)->xa)->xa_lock
LOCK2 irq

mm/filemap.c replace_page_cache_folio() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->mapping 0
PARAM_VALUE 0 folio->mapping->a_ops 4096-ptr_max
PARAM_VALUE 1 idx 22
DATA_SOURCE 0 folio $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &((&xas)->xa)->xa_lock
LOCK2 irq

mm/migrate_device.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &drm->dmem->mutex
HALF_LOCKED2 ptl

mm/mmu_gather.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

mm/memory.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mm->page_table_lock
HALF_LOCKED2 ptl

mm/pgtable-generic.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu

arch/x86/mm/pat/set_memory.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 global &cpa_lock

mm/debug_vm_pgtable.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
PREEMPT_ADD
NOCHECK_CALL

mm/hugetlb_vmemmap.c pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
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 pagetable_dtor() -> lruvec_stat_sub_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->page.page_type u32max
PARAM_VALUE 1 idx 38
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL