Defined in 2 files as a function:

Referenced in 11 files:

Smatch caller information:

mm/huge_memory.c folio_check_splittable() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
CAPPED_DATA 0 folio 1
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

mm/huge_memory.c insert_pmd() -> is_huge_zero_folio()

Type Parameter Key Value
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING

mm/huge_memory.c is_transparent_hugepage() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $0
LOCK2 &mm->mmap_lock
LOCK2 &split_debug_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/userfaultfd.c move_pages() -> is_huge_zero_folio()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
LOCK2 &ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/page_table_check.c page_table_check_huge_zero_pmd() -> is_huge_zero_folio()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ptl

mm/folio.c folios_put_refs() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
RX_PATH
TASK_NOT_RUNNING

mm/migrate_device.c migrate_vma_collect_huge_pmd() -> is_huge_zero_folio()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

block/bio.c bio_free_folios() -> is_huge_zero_folio()

Type Parameter Key Value
DATA_SOURCE 0 folio r bvec_folio
RX_PATH
TASK_NOT_RUNNING

mm/memory-failure.c unpoison_memory() -> is_huge_zero_folio()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
CAPABLE 0 21
LOCK2 &attr->mutex
LOCK2 global &mf_mutex
TYPE_LOCK (struct simple_attr)->mutex

mm/mempolicy.c queue_folios_pmd() -> is_huge_zero_folio()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/migrate.c __add_folio_for_migration() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
DATA_SOURCE 0 folio $0
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/migrate.c do_pages_stat_array() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
DATA_SOURCE 0 folio r folio_walk_start
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/swap_state.c free_folio_and_swap_cache() -> is_huge_zero_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &anon_vma->root->rwsem