Documented in 1 files:
Defined in 19 files as a macro:
- arch/arc/include/asm/pgtable-levels.h, line 156 (as a macro)
- arch/arm/include/asm/pgtable-2level.h, line 217 (as a macro)
- arch/arm/include/asm/pgtable-3level.h, line 140 (as a macro)
- arch/arm64/include/asm/pgtable.h, line 789 (as a macro)
- arch/csky/include/asm/pgtable.h, line 119 (as a macro)
- arch/m68k/include/asm/mcf_pgtable.h, line 136 (as a macro)
- arch/m68k/include/asm/motorola_pgtable.h, line 115 (as a macro)
- arch/m68k/include/asm/sun3_pgtable.h, line 116 (as a macro)
- arch/microblaze/include/asm/pgtable.h, line 216 (as a macro)
- arch/nios2/include/asm/pgtable.h, line 201 (as a macro)
- arch/openrisc/include/asm/pgtable.h, line 187 (as a macro)
- arch/parisc/include/asm/pgtable.h, line 278 (as a macro)
- arch/powerpc/include/asm/book3s/32/pgtable.h, line 217 (as a macro)
- arch/powerpc/include/asm/nohash/32/pgtable.h, line 153 (as a macro)
- arch/powerpc/include/asm/nohash/64/pgtable.h, line 102 (as a macro)
- arch/sh/include/asm/pgtable_32.h, line 330 (as a macro)
- arch/sparc/include/asm/pgtable_64.h, line 803 (as a macro)
- arch/um/include/asm/pgtable.h, line 77 (as a macro)
- arch/xtensa/include/asm/pgtable.h, line 243 (as a macro)
Defined in 10 files as a function:
- arch/alpha/include/asm/pgtable.h, line 218 (as a function)
- arch/hexagon/include/asm/pgtable.h, line 206 (as a function)
- arch/loongarch/include/asm/pgtable.h, line 246 (as a function)
- arch/mips/include/asm/pgtable-32.h, line 129 (as a function)
- arch/mips/include/asm/pgtable-64.h, line 245 (as a function)
- arch/powerpc/include/asm/book3s/64/pgtable.h, line 851 (as a function)
- arch/riscv/include/asm/pgtable.h, line 229 (as a function)
- arch/s390/include/asm/pgtable.h, line 757 (as a function)
- arch/sparc/include/asm/pgtable_32.h, line 160 (as a function)
- arch/x86/include/asm/pgtable.h, line 1021 (as a function)
Referenced in 19 files:
- arch/arm/lib/uaccess_with_memcpy.c, line 73
- arch/arm/mm/fault.c, line 85
- arch/arm/mm/mmu.c, line 744
- arch/arm64/mm/fault.c, line 185
- arch/arm64/mm/mmu.c, line 222
- arch/m68k/mm/kmap.c
- arch/parisc/kernel/pci-dma.c, line 162
- arch/riscv/mm/fault.c, line 65
- arch/sh/mm/fault.c, line 103
- arch/sparc/mm/fault_64.c, line 103
- include/linux/pgtable.h, line 1579
- mm/debug_vm_pgtable.c
- mm/hmm.c, line 458
- mm/khugepaged.c, line 1209
- mm/memory.c, line 3509
- mm/page_table_check.c, line 281
- mm/pgtable-generic.c, line 301
- mm/userfaultfd.c, line 328
- mm/vmalloc.c
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 |