Defined in 2 files as a prototype:
- arch/arm64/include/asm/string.h, line 48 (as a prototype)
- arch/powerpc/include/asm/string.h, line 29 (as a prototype)
Defined in 4 files as a function:
- arch/arm64/lib/uaccess_flushcache.c, line 10 (as a function)
- arch/powerpc/lib/pmem.c, line 81 (as a function)
- arch/x86/include/asm/string_64.h, line 85 (as a function)
- include/linux/string.h, line 275 (as a function)
Referenced in 12 files:
- arch/arm64/lib/uaccess_flushcache.c, line 20
- arch/powerpc/lib/pmem.c, line 88
- arch/x86/kernel/crash.c, line 499
- drivers/dax/fsdev.c, line 38
- drivers/md/dm-pcache/cache.c
- drivers/md/dm-pcache/cache_dev.c, line 144
- drivers/md/dm-pcache/cache_key.c
- drivers/md/dm-pcache/cache_segment.c
- drivers/md/dm-writecache.c
- drivers/nvdimm/claim.c, line 277
- drivers/nvdimm/pmem.c, line 133
- lib/iov_iter.c, line 306
Smatch caller information:
lib/iov_iter.c memcpy_from_iter_flushcache() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| CAPPED_DATA | 2 | cnt | 1 |
| CAPPED_DATA | 2 | cnt | 1 |
| DATA_SOURCE | 1 | src | $0 |
| DATA_SOURCE | 2 | cnt | $2 |
| NOSPEC | 2 | cnt | |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| HOST_DATA | 2 | cnt | 0-s32max[c] |
| USER_DATA | 2 | cnt | 0-s32max[c] |
| UNITS | 0 | dst | unit_byte |
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | cnt | unit_byte |
| USER_PTR | 0 | dst | |
| HALF_LOCKED2 | rcu_read |
drivers/nvdimm/pmem.c write_pmem() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 2 | cnt | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 1 | src | unit_byte |
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-pcache/cache_segment.c cache_seg_ctrl_write() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 4352983004287430656 |
| PARAM_VALUE | 2 | cnt | 16 |
| BUF_SIZE | 1 | src | 16 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-pcache/cache_segment.c cache_seg_info_write() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | cnt | 16 |
| BUF_SIZE | 1 | src | 16 |
| DATA_SOURCE | 0 | dst | r get_seg_info_addr |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &cache_seg->info_lock | ||
| HALF_LOCKED2 | &md->type_lock | ||
| TYPE_LOCK | (struct pcache_cache_segment)->info_lock |
drivers/md/dm-pcache/cache_segment.c cache_seg_init() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 5329551242928439296 |
| PARAM_VALUE | 2 | cnt | 24 |
| BUF_SIZE | 1 | src | 24 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| HALF_LOCKED2 | &md->type_lock |
drivers/nvdimm/claim.c nsio_rw_bytes() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 2 | cnt | 1-u64max |
| BUF_SIZE | 1 | src | (-1),4,4096,2097152 |
| BUF_SIZE | 1 | src | (-1),4,4096,2097152 |
| CAPPED_DATA | 2 | cnt | 1 |
| CAPPED_DATA | 2 | cnt | 1 |
| DATA_SOURCE | 1 | src | $2 |
| DATA_SOURCE | 2 | cnt | $3 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL |
drivers/md/dm-pcache/cache_key.c append_last_kset() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 7554281805911179264 |
| PARAM_VALUE | 2 | cnt | 24 |
| BUF_SIZE | 1 | src | 24 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &cache->key_head_lock | ||
| LOCK2 | &kset->kset_lock | ||
| HALF_LOCKED2 | &cache_subtree->tree_lock | ||
| TYPE_LOCK | (struct pcache_cache)->key_head_lock | ||
| TYPE_LOCK | (struct pcache_cache_kset)->kset_lock |
drivers/md/dm-pcache/cache_key.c cache_kset_close() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 5329551242928439296 |
| PARAM_VALUE | 2 | cnt | 24 |
| BUF_SIZE | 1 | src | 24 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &cache->key_head_lock | ||
| LOCK2 | &kset->kset_lock | ||
| HALF_LOCKED2 | &cache_subtree->tree_lock | ||
| TYPE_LOCK | (struct pcache_cache)->key_head_lock | ||
| TYPE_LOCK | (struct pcache_cache_kset)->kset_lock |
drivers/md/dm-pcache/cache_key.c cache_kset_close() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 5329551242928439296 |
| PARAM_VALUE | 2 | cnt | 24 |
| BUF_SIZE | 1 | src | 24 |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | dst | unit_byte |
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &cache->key_head_lock | ||
| LOCK2 | &kset->kset_lock | ||
| HALF_LOCKED2 | &cache_subtree->tree_lock | ||
| TYPE_LOCK | (struct pcache_cache)->key_head_lock | ||
| TYPE_LOCK | (struct pcache_cache_kset)->kset_lock |
drivers/md/dm-pcache/cache_key.c cache_kset_close() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| BUF_SIZE | 1 | src | 24 |
| DATA_SOURCE | 2 | cnt | r size_add |
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &cache->key_head_lock | ||
| LOCK2 | &kset->kset_lock | ||
| HALF_LOCKED2 | &cache_subtree->tree_lock | ||
| TYPE_LOCK | (struct pcache_cache)->key_head_lock | ||
| TYPE_LOCK | (struct pcache_cache_kset)->kset_lock |
drivers/md/dm-pcache/cache_dev.c sb_write() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 8097940799167340544 |
| PARAM_VALUE | 2 | cnt | 24 |
| DATA_SOURCE | 1 | src | $1 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/dax/fsdev.c fsdev_write_dax() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 2 | cnt | 4096 |
| DATA_SOURCE | 0 | dst | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| HALF_LOCKED2 | global &dax_srcu |
drivers/md/dm-writecache.c clear_seq_count() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 2191698512911699968 |
| PARAM_VALUE | 1 | *src | (-1) |
| PARAM_VALUE | 2 | cnt | 8 |
| BUF_SIZE | 0 | dst | 8 |
| BUF_SIZE | 1 | src | 8 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &wc->lock | ||
| HALF_LOCKED2 | &md->suspend_lock | ||
| TYPE_LOCK | (struct dm_writecache)->lock |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 1 | *src | 0 |
| PARAM_VALUE | 2 | cnt | 8 |
| BUF_SIZE | 1 | src | 8 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 1 | *src | 1 |
| PARAM_VALUE | 2 | cnt | 4 |
| BUF_SIZE | 0 | dst | 4 |
| BUF_SIZE | 1 | src | 4 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 2 | cnt | 4 |
| BUF_SIZE | 0 | dst | 4 |
| BUF_SIZE | 1 | src | 4 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 2 | cnt | 8 |
| BUF_SIZE | 0 | dst | 8 |
| BUF_SIZE | 1 | src | 8 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 1 | *src | 0 |
| PARAM_VALUE | 2 | cnt | 8 |
| BUF_SIZE | 0 | dst | 8 |
| BUF_SIZE | 1 | src | 8 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c init_memory() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 1640845490151092224 |
| PARAM_VALUE | 1 | *src | 591958817 |
| PARAM_VALUE | 2 | cnt | 4 |
| BUF_SIZE | 0 | dst | 4 |
| BUF_SIZE | 1 | src | 4 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
drivers/md/dm-writecache.c memcpy_flushcache_optimized() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| CAPPED_DATA | 2 | cnt | 1 |
| CAPPED_DATA | 2 | cnt | 1 |
| DATA_SOURCE | 0 | dst | $0 |
| DATA_SOURCE | 1 | src | $1 |
| DATA_SOURCE | 2 | cnt | $2 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 0 | dst | unit_byte |
| UNITS | 2 | cnt | 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 write_original_sector_seq_count() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 3499426392730636288 |
| PARAM_VALUE | 2 | cnt | 16 |
| BUF_SIZE | 1 | src | 16 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| HALF_LOCKED2 | &md->io_barrier | ||
| HALF_LOCKED2 | &wc->lock |
drivers/md/dm-writecache.c writecache_flush() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 1 | src | 153431620709396480 |
| PARAM_VALUE | 2 | cnt | 8 |
| BUF_SIZE | 0 | dst | 8 |
| BUF_SIZE | 1 | src | 8 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | &wc->lock | ||
| HALF_LOCKED2 | &md->io_barrier | ||
| TYPE_LOCK | (struct dm_writecache)->lock |
arch/x86/kernel/crash.c arch_crash_handle_hotplug_event() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 18379471554275704832,18446612682070032384 |
| PARAM_VALUE | 1 | src | 0 |
| PARAM_VALUE | 2 | cnt | 0 |
| DATA_SOURCE | 0 | dst | r kmap_local_page |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| LOCK2 | global &__crash_hotplug_lock |
drivers/md/dm-pcache/cache.c cache_info_write() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 4096-ptr_max |
| PARAM_VALUE | 2 | cnt | 24 |
| BUF_SIZE | 1 | src | 24 |
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| HALF_LOCKED2 | &cache->cache_info_lock | ||
| HALF_LOCKED2 | &md->io_barrier |
drivers/md/dm-pcache/cache.c cache_pos_encode() -> memcpy_flushcache()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | dst | 4096-ptr_max |
| PARAM_VALUE | 1 | src | 1673465164989812736 |
| PARAM_VALUE | 2 | cnt | 16 |
| BUF_SIZE | 1 | src | 16 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| NOCHECK_CALL | |||
| UNITS | 2 | cnt | unit_byte |
| HALF_LOCKED2 | &cache->dirty_tail_lock | ||
| HALF_LOCKED2 | &cache->key_tail_lock |