Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

mm/gup.c __get_user_pages() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 1 refs 1
DATA_SOURCE 0 folio r _compound_head
DATA_SOURCE 2 flags $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 0-u32max
HALF_LOCKED2 &mm->mmap_lock

mm/gup.c gup_fast_pmd_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_pmd_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_pmd_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_pte_range() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
LOCK2 flags
LOCK2 rcu_read

mm/gup.c gup_fast_pte_range() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
LOCK2 flags
LOCK2 rcu_read

mm/gup.c gup_fast_pte_range() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
LOCK2 flags
LOCK2 rcu_read

mm/gup.c gup_fast_pud_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_pud_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_pud_leaf() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 2-2097150
DATA_SOURCE 0 folio r try_grab_folio_fast
DATA_SOURCE 2 flags $4
BIT_INFO 2 flags 0x0,0x18152b
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 flags 2-2097150
UNITS 1 refs unit_page
LOCK2 flags

mm/gup.c gup_fast_unpin_user_pages() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio r gup_folio_next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

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

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 0 folio->pgmap->type 2
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio r pofs_get_folio
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

mm/gup.c unpin_folio() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 _T->lock

mm/gup.c unpin_folios() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 1-u64max
PARAM_VALUE 2 flags 524288
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &inode->i_rwsem
HALF_LOCKED2 _T->lock

mm/gup.c unpin_user_folio() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio $0
DATA_SOURCE 1 refs $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 refs unit_page
HALF_LOCKED2 &ctx->uring_lock

mm/gup.c unpin_user_page() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 1 refs 1
PARAM_VALUE 2 flags 524288
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 folio unit_page
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &db_tab->mutex
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &vm->regions_mapping_lock
HALF_LOCKED2 ptl
HALF_LOCKED2 sk

mm/gup.c unpin_user_page_range_dirty_lock() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio r gup_folio_range_next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 refs 1-s32max[c]

mm/gup.c unpin_user_pages() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio r gup_folio_next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &STp->lock
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &ctx->uring_lock
HALF_LOCKED2 &dev->domain_lock
HALF_LOCKED2 &dev->mm->mmap_lock
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &etnaviv_obj->lock
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &itv->udma.lock
HALF_LOCKED2 &pages->mutex
HALF_LOCKED2 &service->bulk_mutex
HALF_LOCKED2 _T->lock

mm/gup.c unpin_user_pages_dirty_lock() -> gup_put_folio()

Type Parameter Key Value
PARAM_VALUE 0 folio 4096-ptr_max
PARAM_VALUE 2 flags 524288
DATA_SOURCE 0 folio r gup_folio_next
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &STp->lock
HALF_LOCKED2 &dev->domain_lock
HALF_LOCKED2 &mm->mm->mmap_lock
HALF_LOCKED2 &pipe->lock