Documented in 1 files:
Defined in 1 files as a prototype:
Defined in 2 files as a macro:
- arch/powerpc/include/asm/uaccess.h, line 446 (as a macro)
- arch/x86/include/asm/uaccess.h, line 495 (as a macro)
Defined in 3 files as a function:
- arch/powerpc/include/asm/uaccess.h, line 442 (as a function)
- arch/x86/lib/copy_mc.c, line 63 (as a function)
- include/linux/uaccess.h, line 239 (as a function)
Referenced in 14 files:
- arch/x86/lib/copy_mc.c, line 82
- drivers/md/dm-pcache/cache_dev.c, line 134
- drivers/md/dm-pcache/cache_gc.c, line 40
- drivers/md/dm-pcache/cache_key.c
- drivers/md/dm-pcache/cache_writeback.c, line 52
- drivers/md/dm-pcache/pcache_internal.h
- drivers/md/dm-writecache.c
- drivers/nvdimm/claim.c, line 253
- drivers/nvdimm/pmem.c, line 152
- fs/coredump.c
- fs/dax.c
- include/linux/highmem.h
- include/linux/uaccess.h, line 233
- lib/iov_iter.c, line 219
Smatch caller information:
fs/coredump.c dump_page_copy() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 2 | len | unit_byte |
lib/iov_iter.c memcpy_to_iter_mc() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 2 | len | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HOST_DATA | 2 | len | 0-s32max[c] |
| USER_DATA | 2 | len | 0-s32max[c] |
| UNITS | 0 | dst | unit_byte |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | len | unit_byte |
| USER_PTR | 1 | src | |
| HALF_LOCKED2 | rcu_read |
drivers/nvdimm/pmem.c read_pmem() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 1 | src | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dst | unit_byte |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &pool->lock |
fs/dax.c dax_iomap_copy_around() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | $4 |
| DATA_SOURCE | 2 | len | $1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 1-s32max[c] |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | global &dax_srcu |
fs/dax.c dax_iomap_copy_around() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 2 | len | 1-2097151 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | $4 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 1-2097150[c] |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | global &dax_srcu |
fs/dax.c dax_iomap_copy_around() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | dst | unit_byte |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | global &dax_srcu |
fs/dax.c dax_unshare_iter() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 2 | len | 1-2147491836[c] |
| UNITS | 2 | len | unit_byte |
| LOCK2 | global &dax_srcu | ||
| HALF_LOCKED2 | &pool->lock |
drivers/md/dm-pcache/cache_segment.c pcache_meta_find_latest() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 16 |
| BUF_SIZE | 0 | dst | 16 |
| DATA_SOURCE | 0 | dst | $3 |
| DATA_SOURCE | 2 | len | $1 |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &cache_seg->info_lock | ||
| HALF_LOCKED2 | &md->type_lock |
drivers/md/dm-pcache/cache_segment.c pcache_meta_find_latest() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 16 |
| BUF_SIZE | 0 | dst | 16 |
| BUF_SIZE | 0 | dst | 16 |
| DATA_SOURCE | 0 | dst | $3 |
| DATA_SOURCE | 2 | len | $1 |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &cache_seg->info_lock | ||
| HALF_LOCKED2 | &md->type_lock |
drivers/nvdimm/claim.c nsio_rw_bytes() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| BUF_SIZE | 0 | dst | (-1),4,4096 |
| BUF_SIZE | 0 | dst | (-1),4,4096 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | $2 |
| DATA_SOURCE | 2 | len | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/util.c copy_mc_highpage() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING |
mm/ksm.c copy_mc_user_highpage() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
drivers/md/dm-pcache/cache_key.c cache_replay() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 0-5144 |
| BUF_SIZE | 0 | dst | 5144 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | r _kzalloc_noprof |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &md->type_lock |
drivers/md/dm-pcache/cache_key.c cache_verify_dirty_tail() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 0-5144 |
| BUF_SIZE | 0 | dst | 5144 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | r _kzalloc_noprof |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &md->type_lock |
drivers/md/dm-pcache/cache_dev.c sb_read() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 8097940799167340544 |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 24 |
| DATA_SOURCE | 0 | dst | $1 |
| UNITS | 2 | len | unit_byte |
drivers/md/dm-writecache.c bio_copy_block() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 0 | dst | r bvec_kmap_local |
| DATA_SOURCE | 1 | src | $2 [m] |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | len | unit_byte |
| LOCK2 | &md->io_barrier | ||
| LOCK2 | &wc->lock | ||
| HALF_LOCKED2 | &bio->bi_bdev->bd_queue->queue_lock | ||
| HALF_LOCKED2 | &md->swap_bios_semaphore | ||
| TYPE_LOCK | (struct dm_writecache)->lock | ||
| TYPE_LOCK | (struct mapped_device)->io_barrier |
drivers/md/dm-writecache.c writecache_resume() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 2341167470629638144 |
| PARAM_VALUE | 2 | len | 8 |
| BUF_SIZE | 0 | dst | 8 |
| BUF_SIZE | 1 | src | 8 |
| UNITS | 2 | len | unit_byte |
| LOCK2 | &md->suspend_lock | ||
| LOCK2 | &wc->lock | ||
| TYPE_LOCK | (struct dm_writecache)->lock | ||
| TYPE_LOCK | (struct mapped_device)->suspend_lock |
drivers/md/dm-writecache.c writecache_resume() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 3049741945174179840 |
| PARAM_VALUE | 2 | len | 16 |
| BUF_SIZE | 0 | dst | 16 |
| UNITS | 2 | len | unit_byte |
| LOCK2 | &md->suspend_lock | ||
| LOCK2 | &wc->lock | ||
| TYPE_LOCK | (struct dm_writecache)->lock | ||
| TYPE_LOCK | (struct mapped_device)->suspend_lock |
mm/memory.c copy_mc_user_highpage() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock | ||
| HALF_LOCKED2 | dst_ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | src_ptl |
drivers/md/dm-pcache/cache_writeback.c is_cache_clean() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 0-5144 |
| BUF_SIZE | 0 | dst | 5144 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 1 | src | r cache_pos_addr |
| UNITS | 2 | len | unit_byte |
| LOCK2 | &cache->writeback_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| TYPE_LOCK | (struct pcache_cache)->writeback_lock |
drivers/md/dm-pcache/cache_gc.c need_gc() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 0-5144 |
| BUF_SIZE | 0 | dst | 5144 |
| CAPPED_DATA | 2 | len | 1 |
| DATA_SOURCE | 1 | src | r cache_pos_addr |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &pool->lock |
mm/khugepaged.c copy_mc_highpage() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/khugepaged.c copy_mc_user_highpage() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | len | 4096 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| DATA_SOURCE | 1 | src | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
drivers/md/dm-pcache/cache.c pcache_meta_find_latest() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 16,24 |
| BUF_SIZE | 0 | dst | 16,24 |
| DATA_SOURCE | 0 | dst | $3 |
| DATA_SOURCE | 2 | len | $1 |
| HARD_MAX | 2 | len | 24 |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &md->type_lock |
drivers/md/dm-pcache/cache.c pcache_meta_find_latest() -> copy_mc_to_kernel()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | len | 16,24 |
| BUF_SIZE | 0 | dst | 16,24 |
| BUF_SIZE | 0 | dst | 16,24 |
| DATA_SOURCE | 0 | dst | $3 |
| DATA_SOURCE | 2 | len | $1 |
| HARD_MAX | 2 | len | 24 |
| UNITS | 2 | len | unit_byte |
| HALF_LOCKED2 | &md->type_lock |