Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 28 files:
- arch/powerpc/kvm/book3s_hv_uvmem.c, line 574
- drivers/char/virtio_console.c, line 902
- drivers/gpu/drm/amd/amdkfd/kfd_migrate.c
- drivers/gpu/drm/i915/gem/i915_gem_userptr.c, line 200
- drivers/gpu/drm/nouveau/nouveau_dmem.c, line 435
- drivers/mtd/devices/block2mtd.c
- drivers/mtd/nand/raw/nandsim.c, line 1333
- drivers/target/target_core_user.c, line 1692
- fs/btrfs/free-space-cache.c, line 436
- fs/btrfs/tests/extent-io-tests.c
- fs/buffer.c
- fs/ceph/addr.c
- fs/f2fs/compress.c
- fs/f2fs/data.c, line 2476
- fs/fuse/readdir.c
- fs/isofs/compress.c, line 358
- fs/ntfs/compress.c
- fs/ntfs/dir.c, line 644
- fs/ntfs3/frecord.c
- fs/ntfs3/fsntfs.c, line 1668
- fs/proc/vmcore.c
- fs/ramfs/file-nommu.c, line 119
- fs/squashfs/file.c
- fs/squashfs/file_direct.c
- lib/test_hmm.c, line 1175
- mm/folio-compat.c, line 18
- mm/memory-failure.c
- mm/memory.c, line 6045
Smatch caller information:
lib/test_hmm.c dmirror_devmem_fault_alloc_and_copy() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | page | r migrate_pfn_to_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mm->mmap_lock |
fs/ntfs3/frecord.c ni_decompress_file() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ntfs3/frecord.c ni_decompress_file() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ntfs3/frecord.c ni_read_folio_cmpr() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
drivers/mtd/devices/block2mtd.c _block2mtd_erase() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 0 | page | (-1),64 |
| DATA_SOURCE | 0 | page | r page_read |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &dev->write_mutex | ||
| HALF_LOCKED2 | &dev->lock | ||
| HALF_LOCKED2 | &ftl->mutex | ||
| HALF_LOCKED2 | &master->master.chrdev_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | global &mtd_table_mutex | ||
| TYPE_LOCK | (struct block2mtd_dev)->write_mutex |
drivers/mtd/devices/block2mtd.c _block2mtd_write() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 0 | page | (-1),64 |
| DATA_SOURCE | 0 | page | r page_read |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &dev->write_mutex | ||
| HALF_LOCKED2 | &dev->lock | ||
| HALF_LOCKED2 | &ftl->mutex | ||
| HALF_LOCKED2 | &master->master.chrdev_lock | ||
| HALF_LOCKED2 | &mbd->lock | ||
| TYPE_LOCK | (struct block2mtd_dev)->write_mutex |
fs/ntfs/compress.c ntfs_decompress() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | 64 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | 64 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | 64 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 0 | page | (-1),64 |
| DATA_SOURCE | 0 | page | r read_mapping_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &ntfs_cb_lock | ||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/ntfs/compress.c ntfs_read_compressed_block() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &ni->runlist.lock |
fs/fuse/readdir.c fuse_add_dirent_to_cache() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &dir_fp->readdir_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/fuse/readdir.c fuse_readdir_cached() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_get_page_flags |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dir_fp->readdir_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/fuse/readdir.c fuse_readdir_cached() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_get_page_flags |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dir_fp->readdir_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/fuse/readdir.c fuse_readdir_cached() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_get_page_flags |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &dir_fp->readdir_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem |
fs/ntfs/dir.c ntfs_filldir() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | page | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &ndir->mrec_lock | ||
| HALF_LOCKED2 | &dir_fp->readdir_lock | ||
| HALF_LOCKED2 | &inode->i_rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct inode)->i_rwsem | ||
| TYPE_LOCK | (struct ntfs_inode)->mrec_lock |
fs/f2fs/data.c f2fs_read_multi_pages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/btrfs/tests/extent-io-tests.c test_find_delalloc() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_or_create_page |
| NOCHECK_CALL |
fs/btrfs/tests/extent-io-tests.c test_find_delalloc() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| NOCHECK_CALL |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_put_sys_page() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &prange->migrate_mutex | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &p->svms.lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &process_info->lock | ||
| HALF_LOCKED2 | &svms->lock | ||
| TYPE_LOCK | (struct svm_range)->migrate_mutex |
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_put_vram_page() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| 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 |
fs/isofs/compress.c zisofs_read_folio() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
drivers/mtd/nand/raw/nandsim.c ns_get_pages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| DATA_SOURCE | 0 | page | r find_or_create_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/gpu/drm/i915/gem/i915_gem_userptr.c i915_gem_userptr_put_pages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | page | unit_page |
| HALF_LOCKED2 | obj->base.resv |
drivers/target/target_core_user.c tcmu_blocks_release() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &udev->cmdr_lock | ||
| HALF_LOCKED2 | global &root_udev_mutex | ||
| TYPE_LOCK | (struct tcmu_dev)->cmdr_lock |
fs/squashfs/file.c squashfs_readahead() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/squashfs/file.c squashfs_readahead() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/squashfs/file.c squashfs_readahead_fragment() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
mm/memory.c do_cow_fault() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | page | unit_page |
| HALF_LOCKED2 | &mm->mmap_lock |
fs/btrfs/free-space-cache.c io_ctl_drop_pages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &caching_ctl->mutex | ||
| HALF_LOCKED2 | &fs_info->commit_root_sem | ||
| HALF_LOCKED2 | &pool->lock |
drivers/gpu/drm/nouveau/nouveau_dmem.c nouveau_dmem_page_free_locked() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | (-1),64 |
| BUF_SIZE | 0 | page | (-1),64 |
| DATA_SOURCE | 0 | page | $1 |
| NOCHECK_CALL | |||
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/memory-failure.c me_unknown() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mf_mutex | ||
| HALF_LOCKED2 | &attr->mutex | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &pool->lock |
mm/memory-failure.c try_to_split_thp_page() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->flags.f | 0-18446744073709551614 |
| CAPPED_DATA | 0 | page | 1 |
| DATA_SOURCE | 0 | page | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | global &mf_mutex | ||
| HALF_LOCKED2 | &of->mutex |
drivers/char/virtio_console.c pipe_to_sg() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->memcg_data | 0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/ceph/addr.c ceph_filemap_fault() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| DATA_SOURCE | 0 | page | r find_or_create_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| LOCK2 | &mapping->invalidate_lock | ||
| TYPE_LOCK | (struct address_space)->invalidate_lock |
fs/ceph/addr.c ceph_fill_inline_data() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_or_create_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mdsc->snap_rwsem |
fs/ceph/addr.c ceph_fill_inline_data() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| DATA_SOURCE | 0 | page | r find_or_create_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mdsc->snap_rwsem |
fs/ceph/addr.c ceph_submit_write() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| BUF_SIZE | 0 | page | 64 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ceph/addr.c ceph_submit_write() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock |
fs/ceph/addr.c writepages_finish() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &pool->lock |
fs/ntfs3/fsntfs.c ntfs_bio_fill_1() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| PARAM_VALUE | 0 | page->_refcount.counter | 1 |
| DATA_SOURCE | 0 | page | r alloc_pages_noprof |
| PREEMPT_ADD | <- disables preempt | ||
| NOCHECK_CALL |
fs/f2fs/compress.c f2fs_decompress_end_io() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/f2fs/compress.c f2fs_drop_rpages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 1-u64max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
fs/f2fs/compress.c f2fs_write_raw_pages() -> unlock_page()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | page | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HALF_LOCKED2 | &mapping->invalidate_lock | ||
| HALF_LOCKED2 | &sbi->writepages |