Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

mm/gup_test.c folio_is_longterm_pinnable() -> folio_is_device_coherent()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $0

lib/test_hmm.c is_device_coherent_page() -> folio_is_device_coherent()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dmirror->mutex

mm/rmap.c try_to_migrate() -> folio_is_device_coherent()

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

drivers/gpu/drm/drm_gpusvm.c is_device_coherent_page() -> folio_is_device_coherent()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &vm->lock
HALF_LOCKED2 &(range->gpusvm)->notifier_lock
HALF_LOCKED2 &gpusvm->notifier_lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct xe_vm)->lock

mm/hugetlb.c folio_is_longterm_pinnable() -> folio_is_device_coherent()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &hugetlb_lock
LOCK2 irq

mm/migrate_device.c __migrate_device_pages() -> folio_is_device_coherent()

Type Parameter Key Value
DATA_SOURCE 0 folio r _compound_head
RX_PATH
TASK_NOT_RUNNING

mm/migrate_device.c is_device_coherent_page() -> folio_is_device_coherent()

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

mm/migrate_device.c migrate_vma_insert_huge_pmd_page() -> folio_is_device_coherent()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio r _compound_head
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &drm->dmem->mutex

mm/migrate_device.c migrate_vma_insert_page() -> folio_is_device_coherent()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
DATA_SOURCE 0 folio r _compound_head
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &drm->dmem->mutex

mm/gup.c collect_longterm_unpinnable_folios() -> folio_is_device_coherent()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING

mm/gup.c folio_is_longterm_pinnable() -> folio_is_device_coherent()

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
HALF_LOCKED2 flags

mm/gup.c migrate_longterm_unpinnable_folios() -> folio_is_device_coherent()

Type Parameter Key Value
DATA_SOURCE 0 folio r pofs_get_folio
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING