Defined in 1 files as a function:

Referenced in 22 files:

Smatch caller information:

drivers/vdpa/vdpa_user/iova_domain.c do_bounce() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1 [m]
FUZZY_MAX 2 offset 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &domain->bounce_lock
TYPE_LOCK (struct vduse_iova_domain)->bounce_lock

drivers/vdpa/vdpa_user/iova_domain.c vduse_domain_remove_user_bounce_pages() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 18379471554275704832,18446612682070032384
PARAM_VALUE 1 page 1-u64max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 4096
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 &domain->bounce_lock
HALF_LOCKED2 &dev->domain_lock
HALF_LOCKED2 &domain->iotlb_lock
TYPE_LOCK (struct vduse_iova_domain)->bounce_lock

net/ceph/messenger_v2.c process_v2_sparse_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 0 *to 0-255
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
NOCHECK_CALL
USER_DATA 3 len 1-4095[c]
LOCK2 &con->mutex
LOCK2 &pool->lock
TYPE_LOCK (struct ceph_connection)->mutex

net/9p/trans_virtio.c handle_rerror() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 2 offset $2
FUZZY_MAX 2 offset 0
PARAM_COMPARE 2 offset == $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 offset 0-4095[c]
USER_DATA 3 len 1-4096[c]
UNITS 0 to unit_byte
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
HALF_LOCKED2 &inode->i_rwsem

net/9p/trans_virtio.c handle_rerror() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 0-2147483646
CAPPED_DATA 3 len 1
DATA_SOURCE 2 offset $2 [m]
FUZZY_MAX 2 offset 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 offset 0-4095[c]
USER_DATA 3 len 1-2147483646[c][u]
UNITS 0 to unit_byte
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
HALF_LOCKED2 &inode->i_rwsem

drivers/block/floppy.c memcpy_from_bvec() -> memcpy_from_page()

Type Parameter Key Value
DATA_SOURCE 0 to $0
NOCHECK_CALL
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
HALF_LOCKED2 &pool->lock

drivers/md/dm-log-writes.c memcpy_from_bvec() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 18379471554275704832,18446612682070032384
DATA_SOURCE 0 to $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
LOCK2 &md->io_barrier
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock
HALF_LOCKED2 &md->swap_bios_semaphore
TYPE_LOCK (struct mapped_device)->io_barrier

drivers/block/brd.c brd_rw_bvec() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 1 page 4096-ptr_max
PARAM_VALUE 2 offset 0,512-3584
PARAM_VALUE 3 len 0-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to r bvec_kmap_local
BIT_INFO 2 offset 0x0,0xe00
NOSPEC 3 len
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 2 offset 0,512-3584[c]
HOST_DATA 3 len 512-3584,4096[c]
USER_DATA 2 offset 0,512-3584[c]
USER_DATA 3 len 512-3584,4096[c]
UNITS 3 len unit_byte
HALF_LOCKED2 &bio->bi_bdev->bd_queue->queue_lock

fs/cramfs/inode.c cramfs_blkdev_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 1 page 1-u64max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 4096
BUF_SIZE 0 to (-1),16384
BUF_SIZE 0 to (-1),16384
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 global &read_mutex

lib/test_hmm.c dmirror_do_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 1 page 4-u64max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 4096
DATA_SOURCE 1 page r xa_untag_pointer
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 &dmirror->mutex
TYPE_LOCK (struct dmirror)->mutex

fs/hfsplus/bnode.c hfsplus_bnode_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 0-4096
BUF_SIZE 0 to (-1),2,4,14,32,64,80,268,510,520
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1
DATA_SOURCE 2 offset $2 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 offset 0,21-3819[c]
USER_DATA 3 len 1-4096[c]
UNITS 0 to unit_byte
UNITS 2 offset unit_byte
UNITS 3 len unit_byte

fs/hfsplus/bnode.c hfsplus_bnode_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-u64max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 3 len 1-4095[c]
UNITS 0 to unit_byte
UNITS 3 len unit_byte

fs/ntfs/compress.c ntfs_read_compressed_block() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 1 page 4096-ptr_max
PARAM_VALUE 2 offset 0-4095
BUF_SIZE 1 page (-1),64
BUF_SIZE 1 page (-1),64
DATA_SOURCE 1 page r read_mapping_page
DATA_SOURCE 2 offset r ntfs_cluster_to_poff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 global &ntfs_cb_lock
HALF_LOCKED2 &mapping->invalidate_lock
HALF_LOCKED2 &ni->runlist.lock

drivers/base/firmware_loader/sysfs.c firmware_rw() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1 [m]
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 to 4096-ptr_max[c][u]
USER_DATA 2 offset 1-4095[c]
USER_DATA 3 len 2-4096[c]
UNITS 3 len unit_byte
LOCK2 &of->mutex
LOCK2 global &fw_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/android/binder_alloc.c binder_alloc_do_buffer_copy() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-40
BUF_SIZE 0 to (-1),4,8
CAPPED_DATA 3 len 1
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $4 [m]
DATA_SOURCE 1 page r binder_alloc_get_page
PARAM_COMPARE 2 offset >= $3
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 3 len 1-39[c]
UNITS 0 to unit_byte
UNITS 3 len unit_byte

block/blk-map.c memcpy_from_bvec() -> memcpy_from_page()

Type Parameter Key Value
BUF_SIZE 0 to (-1)-s32max
BUF_SIZE 0 to (-1)-s32max
DATA_SOURCE 0 to $0
STR_LEN 0 to (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
STR_LEN 0 to (-1),8,11-12,14,17,19-20,23,26-27,29,31-32
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte

fs/hfs/bnode.c hfs_bnode_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
CAPPED_DATA 3 len 1
DATA_SOURCE 2 offset $2 [m]
FUZZY_MAX 2 offset 0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 to unit_byte
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
HALF_LOCKED2 &((inode->i_sb)->s_fs_info)->cat_tree->tree_lock
HALF_LOCKED2 &((main_inode->i_sb)->s_fs_info)->cat_tree->tree_lock
HALF_LOCKED2 &(sb->s_fs_info)->cat_tree->tree_lock

drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c chcr_short_record_handler() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0-u32max
PARAM_VALUE 3 len 1-4294967293
BUF_SIZE 0 to 16
CAPPED_DATA 3 len 1
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
LOCK2 &tx_ctx->lock
HALF_LOCKED2 &adap->ptp_lock
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct tls_offload_context_tx)->lock

drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c chcr_short_record_handler() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0-u32max
PARAM_VALUE 3 len 0-s32max,18446744071562067968-18446744073709551612
BUF_SIZE 0 to 16
CAPPED_DATA 3 len 1
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
LOCK2 &tx_ctx->lock
HALF_LOCKED2 &adap->ptp_lock
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct tls_offload_context_tx)->lock

drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c chcr_short_record_handler() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0-u32max
PARAM_VALUE 3 len 1-u32max
CAPPED_DATA 3 len 1
PREEMPT_ADD
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 to unit_byte
UNITS 3 len unit_byte
LOCK2 &tx_ctx->lock
HALF_LOCKED2 &adap->ptp_lock
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct tls_offload_context_tx)->lock

drivers/block/null_blk/main.c copy_from_nullb() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 0-4096
CAPPED_DATA 3 len 1
CAPPED_DATA 3 len 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 to unit_byte
UNITS 3 len unit_byte
LOCK2 &nullb->lock
LOCK2 irq
TYPE_LOCK (struct nullb)->lock

fs/gfs2/lops.c gfs2_before_commit() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 18379471554275704832,18446612682070032384
CAPPED_DATA 2 offset 1
DATA_SOURCE 0 to r lowmem_page_address
DATA_SOURCE 1 page r mempool_alloc_noprof
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 &sdp->sd_log_flush_lock
TYPE_LOCK (struct gfs2_sbd)->sd_log_flush_lock

drivers/gpu/drm/i915/gt/uc/intel_uc_fw.c intel_uc_fw_copy_rsa() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 1 page 1-u64max
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 0-4096
BUF_SIZE 0 to (-1)-s32max
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 3 len
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
HALF_LOCKED2 __flags

drivers/net/ethernet/sun/cassini.c cas_xmit_tx_ringN() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0-u32max
PARAM_VALUE 3 len 32
DATA_SOURCE 3 len r cas_calc_tabort
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 offset unit_byte
UNITS 3 len unit_byte
LOCK2 flags
HALF_LOCKED2 &dev->tx_global_lock
HALF_LOCKED2 &txq->_xmit_lock
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

fs/f2fs/verity.c pagecache_read() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 16,4096-u64max
PARAM_VALUE 1 page 0-ptr_max
PARAM_VALUE 2 offset 0-4095
PARAM_VALUE 3 len 1-4096
BUF_SIZE 0 to (-1)-16384
BUF_SIZE 1 page (-1),64
BUF_SIZE 1 page (-1),64
CAPPED_DATA 3 len 1
CAPPED_DATA 3 len 1
DATA_SOURCE 0 to $1 [m]
DATA_SOURCE 1 page r read_mapping_page
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 3 len

drivers/block/zram/zram_drv.c memcpy_from_bvec() -> memcpy_from_page()

Type Parameter Key Value
DATA_SOURCE 0 to $0
NOCHECK_CALL
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte

drivers/gpu/drm/i915/gem/i915_gem_phys.c i915_gem_object_get_pages_phys() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 1 page 4096-ptr_max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 4096
DATA_SOURCE 1 page r shmem_read_mapping_page
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 obj->base.resv

drivers/md/dm-vdo/data-vio.c memcpy_from_bvec() -> memcpy_from_page()

Type Parameter Key Value
DATA_SOURCE 0 to $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 page unit_page
UNITS 2 offset unit_byte
UNITS 3 len unit_byte

mm/zsmalloc.c zs_obj_read_begin() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 1 page 4096-ptr_max
PARAM_VALUE 2 offset 0-4103
PARAM_VALUE 3 len 0-4096,18446744073709551609-u64max
BUF_SIZE 0 to (-1),4096
DATA_SOURCE 0 to $3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 offset unit_byte
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 _T->lock

mm/zsmalloc.c zs_obj_read_begin() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 0-8198,18446744073709547521-u64max
DATA_SOURCE 1 page r get_next_zpdesc
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 _T->lock

drivers/gpu/drm/gma500/gma_display.c gma_crtc_cursor_set() -> memcpy_from_page()

Type Parameter Key Value
PARAM_VALUE 2 offset 0
PARAM_VALUE 3 len 4096
RX_PATH
NOCHECK_CALL
UNITS 3 len unit_byte
LOCK2 &crtc->mutex
TYPE_LOCK (struct drm_crtc)->mutex