Documented in 1 files:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

lib/iov_iter.c copy_to_user_iter() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 2 n 1-u64max
CAPPED_DATA 0 to 1
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $3
DATA_SOURCE 2 n $2
NOSPEC 2 n
NOSPEC 2 n
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 from 4096-ptr_max[c]
HOST_DATA 2 n 1-s32max[c]
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 2 n 1-u64max[c]
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
BYTE_COUNT 1 ==from2 8050

lib/iov_iter.c copy_to_user_iter_mc() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 2 n 1-u64max
CAPPED_DATA 0 to 1
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $3
DATA_SOURCE 2 n $2
NOSPEC 2 n
NOSPEC 2 n
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 from 4096-ptr_max[c]
HOST_DATA 2 n 1-s32max[c]
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 2 n 1-u64max[c]
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
BYTE_COUNT 1 ==from2 8050

arch/x86/lib/copy_mc.c copy_mc_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 1 from 4096-ptr_max
CAPPED_DATA 0 to 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
PARAM_COMPARE 1 from == $2
NOSPEC 2 n
NOSPEC 2 n
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 from 4096-ptr_max[c]
HOST_DATA 2 n 1-s32max[c]
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 2 n 0-u32max[c]
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
BYTE_COUNT 1 ==from2 8050

arch/x86/lib/copy_mc.c copy_mc_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 1 from 4096-ptr_max
CAPPED_DATA 0 to 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
PARAM_COMPARE 1 from == $2
NOSPEC 2 n
NOSPEC 2 n
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 from 4096-ptr_max[c]
HOST_DATA 2 n 1-s32max[c]
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 2 n 0-u32max[c]
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
BYTE_COUNT 1 ==from2 8050

drivers/vhost/vhost.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &vq->mutex

mm/maccess.c __copy_to_user_inatomic() -> instrument_copy_to_user()

Type Parameter Key Value
BUF_SIZE 1 from (-1),32
BUF_SIZE 1 from (-1),32
CAPPED_DATA 0 to 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
PARAM_COMPARE 1 from == $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HOST_DATA 1 from 4096-ptr_max[c]
HOST_DATA 2 n 1-s32max[c]
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 2 n 1-u64max[c]
NO_OVERFLOW_SIMPLE 2 n
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
BYTE_COUNT 1 ==from2 8050
HALF_LOCKED2 &vcpu->kvm->srcu

mm/kasan/kasan_test_c.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 1-18446744073709551614
PARAM_VALUE 1 from 16,4096-ptr_max
PARAM_VALUE 2 n 1-s32max
BUF_SIZE 1 from 120
BUF_SIZE 1 from 120
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL
USER_PTR 1 from

mm/kasan/kasan_test_c.c __copy_to_user_inatomic() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 1-18446744073709551614
PARAM_VALUE 1 from 16,4096-ptr_max
PARAM_VALUE 2 n 1-s32max
BUF_SIZE 1 from 120
BUF_SIZE 1 from 120
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL
USER_PTR 1 from

drivers/gpu/drm/i915/i915_query.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 1 from 5148302030943776768,5403522287358320640
PARAM_VALUE 2 n 16,88
BUF_SIZE 1 from 16,88
BUF_SIZE 1 from 16,88
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
HARD_MAX 2 n 88
NOCHECK_CALL
UNITS 0 to unit_byte
UNITS 2 n unit_byte

mm/memory.c __access_remote_vm() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 2 n 1-4096
BUF_SIZE 1 from (-1),4,8,15,128,256,4096
BUF_SIZE 1 from (-1),4,8,15,128,256,4096
CAPPED_DATA 2 n 1
DATA_SOURCE 1 from $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 n 1-4096[c]
UNITS 0 to unit_byte
UNITS 1 from unit_byte
UNITS 2 n unit_byte
USER_PTR 1 from
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

fs/select.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 1-u64max
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 2 n 0-268435456
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL
USER_DATA 2 n 0-268435456[c]

drivers/gpu/drm/i915/i915_gem.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 1 *from 0-255
PARAM_VALUE 2 n 1-4096
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL
USER_DATA 2 n 2-4096[c]

drivers/gpu/drm/i915/i915_gem.c __copy_to_user_inatomic() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 2 n 1-4096
CAPPED_DATA 2 n 1
CAPPED_DATA 2 n 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOSPEC 2 n
NOSPEC 2 n
PREEMPT_ADD
NOCHECK_CALL
USER_DATA 2 n 2-4096[c]
NO_OVERFLOW_SIMPLE 2 n
UNITS 1 from unit_byte
UNITS 2 n unit_byte

lib/usercopy.c _inline_copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
CAPPED_DATA 0 to 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL

drivers/vhost/scsi.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 1 from 4096-ptr_max
PARAM_VALUE 2 n 16
BUF_SIZE 1 from 16
BUF_SIZE 1 from 16
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 0 to unit_byte
UNITS 2 n unit_byte
LOCK2 &vq->mutex
TYPE_LOCK (struct vhost_virtqueue)->mutex

arch/x86/kvm/../../../virt/kvm/kvm_main.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 0-ptr_max
PARAM_VALUE 2 n 0-s32max,18446744071562067968-u64max
BUF_SIZE 1 from s32min,(-1),1-65536
BUF_SIZE 1 from s32min,(-1),1-65536
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
NOCHECK_CALL
USER_DATA 1 from 4096-ptr_max[c][u]
USER_DATA 1 *from s64min-s64max
USER_DATA 2 n 2-4095[c]
UNITS 0 to unit_byte
UNITS 2 n unit_byte
USER_PTR 1 from
HALF_LOCKED2 &kvm->srcu

arch/x86/kvm/vmx/vmx.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 4096-ptr_max
PARAM_VALUE 1 from 4685813931918262272,6639183754634768384,18379471554275704832,18446612682070032384
PARAM_VALUE 2 n 1-2,4,4096
BUF_SIZE 1 from (-1),2,4
BUF_SIZE 1 from (-1),2,4
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
HARD_MAX 2 n 4096
NOCHECK_CALL
UNITS 2 n unit_byte
HALF_LOCKED2 &kvm->slots_lock

arch/x86/kernel/fpu/signal.c __copy_to_user() -> instrument_copy_to_user()

Type Parameter Key Value
PARAM_VALUE 0 to 0,64-u64max
PARAM_VALUE 1 from 7801372520113164288,8523954333531799552
PARAM_VALUE 2 n 48,108
BUF_SIZE 0 to (-1),48
BUF_SIZE 0 to (-1),48
BUF_SIZE 1 from 48,108
BUF_SIZE 1 from 48,108
CAPPED_DATA 0 to 1
DATA_SOURCE 0 to $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 n $2
HARD_MAX 2 n 108
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 n unit_byte