Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

arch/x86/kernel/uprobes.c int3_update_optimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 1 vma 1-u64max
PARAM_VALUE 2 insn_vaddr 1
PARAM_VALUE 4 nbytes 9
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 1
PARAM_VALUE 7 do_update_ref_ctr 0
PARAM_VALUE 8 data 1587409086013231104
BUF_SIZE 3 insn 9
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
RX_PATH
TASK_NOT_RUNNING
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

arch/x86/kernel/uprobes.c int3_update_optimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->context.asid_transition 1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 2 insn_vaddr 0
PARAM_VALUE 3 insn 4096-ptr_max
PARAM_VALUE 4 nbytes 1
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 1
PARAM_VALUE 7 do_update_ref_ctr 0
PARAM_VALUE 8 data 1587409086013231104
BUF_SIZE 3 insn 10
BUF_SIZE 3 insn 10
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 insn_vaddr $2
DATA_SOURCE 3 insn $3
RX_PATH
TASK_NOT_RUNNING
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

arch/x86/kernel/uprobes.c int3_update_optimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->context.asid_transition 1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 2 insn_vaddr 1
PARAM_VALUE 3 insn 4096-ptr_max
PARAM_VALUE 4 nbytes 4
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 1
PARAM_VALUE 7 do_update_ref_ctr 0
PARAM_VALUE 8 data 1587409086013231104
BUF_SIZE 3 insn 15
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

arch/x86/kernel/uprobes.c int3_update_unoptimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 0 auprobe->ops 0,486589985358176256,4951916382444695552,6888986564815802368
PARAM_VALUE 0 auprobe->push.ilen 0-2
PARAM_VALUE 0 auprobe->push.reg_offset 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,152
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 2 insn_vaddr 0
PARAM_VALUE 3 insn 5548341785216405504
PARAM_VALUE 3 *insn 204
PARAM_VALUE 4 nbytes 1
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 1
PARAM_VALUE 7 do_update_ref_ctr 0
PARAM_VALUE 8 data 6398563229310795776
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 insn_vaddr $2
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &uprobe->register_rwsem
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct uprobe)->register_rwsem

arch/x86/kernel/uprobes.c int3_update_unoptimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 0 auprobe->ops 0,486589985358176256,4951916382444695552,6888986564815802368
PARAM_VALUE 0 auprobe->push.ilen 0-2
PARAM_VALUE 0 auprobe->push.reg_offset 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,152
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->context.asid_transition 1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 2 insn_vaddr 1
PARAM_VALUE 3 insn 4096-ptr_max
PARAM_VALUE 4 nbytes 4
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 1
PARAM_VALUE 7 do_update_ref_ctr 0
PARAM_VALUE 8 data 6398563229310795776
BUF_SIZE 3 insn 15
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &uprobe->register_rwsem
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct uprobe)->register_rwsem

arch/x86/kernel/uprobes.c int3_update_unoptimize() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 0 auprobe->ops 0,486589985358176256,4951916382444695552,6888986564815802368
PARAM_VALUE 0 auprobe->push.ilen 0-2
PARAM_VALUE 0 auprobe->push.reg_offset 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,152
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->context.asid_transition 1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 1 vma->vm_private_data->rw_sema.first_waiter->type 0-1
PARAM_VALUE 2 insn_vaddr 0
PARAM_VALUE 4 nbytes 1
PARAM_VALUE 5 verify 6269505154157662208
PARAM_VALUE 6 is_register 0
PARAM_VALUE 7 do_update_ref_ctr 1
PARAM_VALUE 8 data 6398563229310795776
BUF_SIZE 3 insn 16
BUF_SIZE 3 insn 16
BUF_SIZE 8 data 16
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 insn_vaddr $2
DATA_SOURCE 3 insn $3
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 2 insn_vaddr unit_byte
LOCK2 &mm->mmap_lock
LOCK2 &uprobe->register_rwsem
TYPE_LOCK (struct mm_struct)->mmap_lock
TYPE_LOCK (struct uprobe)->register_rwsem

kernel/events/uprobes.c uprobe_write_opcode() -> uprobe_write()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
PARAM_VALUE 0 auprobe->ops 0,4096-ptr_max
PARAM_VALUE 0 auprobe->push.ilen 0-2
PARAM_VALUE 0 auprobe->push.reg_offset 0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,152
PARAM_VALUE 1 vma 4096-ptr_max
PARAM_VALUE 1 vma->vm_file 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm 4096-ptr_max
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->handoff_set 0-1
PARAM_VALUE 1 vma->vm_mm->mmap_lock.first_waiter->type 0-1
PARAM_VALUE 4 nbytes 1
PARAM_VALUE 5 verify 7876899685717798912
PARAM_VALUE 7 do_update_ref_ctr 1
PARAM_VALUE 8 data 0
BUF_SIZE 1 vma (-1),1-s32max
BUF_SIZE 1 vma (-1),1-s32max
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 insn_vaddr $2
DATA_SOURCE 6 is_register $4
NOSPEC 1 vma->vm_pgoff
NOSPEC 1 vma->vm_start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 vma->shared.rb_subtree_last 0-u64max[u]
USER_DATA 1 vma->vm_pgoff 0-4503599627370495[c]
USER_DATA 1 vma->vm_start 0-s32max,9223372036854775807
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_pgoff
UNITS 2 insn_vaddr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem