Defined in 2 files as a function:

Referenced in 14 files:

Smatch caller information:

lib/iov_iter.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

lib/iov_iter.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
RX_PATH
TASK_NOT_RUNNING

mm/huge_memory.c do_huge_pmd_device_private() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r softleaf_to_page
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &pool->lock

fs/dax.c dax_folio_reset_order() -> page_pgmap()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq

lib/test_hmm.c dmirror_devmem_alloc_page() -> page_pgmap()

Type Parameter Key Value
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

lib/test_hmm.c dmirror_page_to_chunk() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
BUF_SIZE 0 page s32min-(-1),1-s32max
BUF_SIZE 0 page s32min-(-1),1-s32max
CAPPED_DATA 0 page 1
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &mdevice->devmem_lock
HALF_LOCKED2 &mdevice->lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_get_pages() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r hmm_pfn_to_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_get_pages() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r hmm_pfn_to_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gpusvm->notifier_lock
TYPE_LOCK (struct drm_gpusvm)->notifier_lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_scan_mm() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r hmm_pfn_to_page
LOCK2 &(range->gpusvm)->notifier_lock
HALF_LOCKED2 &range->lock

drivers/pci/p2pdma.c __pci_p2pdma_update_state() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 0,4-u64max
DATA_SOURCE 0 page $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

drivers/pci/p2pdma.c p2pdma_folio_free() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
BUF_SIZE 0 page 64
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/drm_pagemap.c __drm_pagemap_migrate_to_ram() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &mm->mmap_lock

drivers/gpu/drm/drm_pagemap.c drm_pagemap_migrate_to_devmem() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r migrate_pfn_to_page
LOCK2 &driver_migrate_lock
LOCK2 &mm->mmap_lock
LOCK2 &vm->lock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/drm_pagemap.c drm_pagemap_migrate_to_devmem() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r migrate_pfn_to_page
LOCK2 &driver_migrate_lock
LOCK2 &mm->mmap_lock
LOCK2 &vm->lock
LOCK2 global &drm_unplug_srcu
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct xe_vm)->lock

block/bio-integrity.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

block/bio-integrity.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_get_vram_page() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
PARAM_VALUE 0 page->zone_device_data 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mm->mmap_lock
LOCK2 &prange->migrate_mutex
LOCK2 &svms->lock
HALF_LOCKED2 &process_info->lock
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct svm_range)->migrate_mutex
TYPE_LOCK (struct svm_range_list)->lock

mm/migrate_device.c migrate_vma_collect_pmd() -> page_pgmap()

Type Parameter Key Value
DATA_SOURCE 0 page r softleaf_to_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

mm/migrate_device.c migrate_vma_collect_pmd() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r vm_normal_page
RX_PATH
TASK_NOT_RUNNING
LOCK2 ptl
HALF_LOCKED2 &mm->mmap_lock

block/blk-mq-dma.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

block/blk-mq-dma.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

mm/memory.c do_swap_page() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page r softleaf_to_page
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &mm->mmap_lock

lib/scatterlist.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING

lib/scatterlist.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

block/bio.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &cache->writeback_lock
HALF_LOCKED2 &log->io_mutex
HALF_LOCKED2 &pool->lock

block/bio.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &cache->writeback_lock
HALF_LOCKED2 &log->io_mutex
HALF_LOCKED2 &pool->lock

block/blk-merge.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

block/blk-merge.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

drivers/gpu/drm/nouveau/nouveau_dmem.c nouveau_dmem_page_alloc_locked() -> page_pgmap()

Type Parameter Key Value
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

drivers/gpu/drm/nouveau/nouveau_dmem.c nouveau_page_to_chunk() -> page_pgmap()

Type Parameter Key Value
BUF_SIZE 0 page (-1),64
BUF_SIZE 0 page (-1),64
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page
HALF_LOCKED2 &drm->dmem->lock
HALF_LOCKED2 &mm->mmap_lock

drivers/md/dm-pcache/cache_writeback.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
LOCK2 &cache->writeback_lock
LOCK2 &pool->lock
TYPE_LOCK (struct pcache_cache)->writeback_lock

drivers/md/dm-pcache/cache_writeback.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
LOCK2 &cache->writeback_lock
LOCK2 &pool->lock
TYPE_LOCK (struct pcache_cache)->writeback_lock

block/blk-integrity.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

block/blk-integrity.c zone_device_pages_have_same_pgmap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 4096-ptr_max
DATA_SOURCE 0 page $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 page unit_page

mm/memremap.c zone_device_page_init() -> page_pgmap()

Type Parameter Key Value
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mm->mmap_lock
HALF_LOCKED2 &driver_migrate_lock
HALF_LOCKED2 &prange->migrate_mutex
HALF_LOCKED2 &svms->lock
HALF_LOCKED2 &vm->lock
HALF_LOCKED2 global &drm_unplug_srcu
TYPE_LOCK (struct mm_struct)->mmap_lock

drivers/gpu/drm/xe/xe_svm.c xe_page_to_pagemap() -> page_pgmap()

Type Parameter Key Value
PARAM_VALUE 0 page 1-u64max
DATA_SOURCE 0 page $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &driver_migrate_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &drm_unplug_srcu

mm/hmm.c hmm_vma_handle_pte() -> page_pgmap()

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