Documented in 1 files:

Defined in 19 files as a macro:

Defined in 10 files as a function:

Referenced in 19 files:

Smatch caller information:

mm/userfaultfd.c mfill_establish_pmd() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd r pmdp_get_lockless
LOCK2 &state.ctx->map_changing_lock
HALF_LOCKED2 &state->ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

mm/page_table_check.c __page_table_check_pte_clear_range() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock

mm/memory.c apply_to_pmd_range() -> pmd_bad()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags

mm/memory.c pmd_none_or_clear_bad() -> pmd_bad()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock

mm/pgtable-generic.c __pte_offset_map() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd r pmdp_get_lockless
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 flags

mm/vmalloc.c pmd_none_or_clear_bad() -> pmd_bad()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

mm/vmalloc.c vmalloc_to_page() -> pmd_bad()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &bo->mutex
HALF_LOCKED2 &cache->writeback_lock
HALF_LOCKED2 &fbdefio_state->lock
HALF_LOCKED2 &hw->hw_info.lock
HALF_LOCKED2 &idev->info_lock
HALF_LOCKED2 &pds_vfio->state_mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rproc->lock
HALF_LOCKED2 &runtime->buffer_mutex
HALF_LOCKED2 &service->bulk_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &page_offline_rwsem
HALF_LOCKED2 global &pcpu_alloc_mutex
HALF_LOCKED2 global &report_lock
HALF_LOCKED2 sk

mm/vmalloc.c vunmap_pmd_range() -> pmd_bad()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &pcpu_alloc_mutex

mm/debug_vm_pgtable.c pmd_basic_tests() -> pmd_bad()

Type Parameter Key Value

mm/debug_vm_pgtable.c pmd_populate_tests() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd r pmdp_get
PREEMPT_ADD

mm/hmm.c hmm_vma_walk_pmd() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd r pmdp_get_lockless
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

mm/khugepaged.c check_pmd_state() -> pmd_bad()

Type Parameter Key Value
DATA_SOURCE 0 pmd r pmdp_get_lockless
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &mm->mmap_lock