Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

arch/x86/kernel/uprobes.c set_orig_insn() -> uprobe_write_opcode()

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
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 is_register 0
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 opcode_vaddr $2
RX_PATH
TASK_NOT_RUNNING
UNITS 2 opcode_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 set_swbp() -> uprobe_write_opcode()

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 3 opcode 204
PARAM_VALUE 4 is_register 1
BUF_SIZE 1 vma (-1)-s32max
BUF_SIZE 1 vma (-1)-s32max
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 opcode_vaddr $2
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]
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_start
UNITS 2 opcode_vaddr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem

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

Type Parameter Key Value
PARAM_VALUE 0 auprobe 4096-ptr_max
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 is_register 0
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 opcode_vaddr $2
RX_PATH
TASK_NOT_RUNNING
UNITS 2 opcode_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 set_swbp() -> uprobe_write_opcode()

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 3 opcode 204
PARAM_VALUE 4 is_register 1
BUF_SIZE 1 vma (-1)-s32max
BUF_SIZE 1 vma (-1)-s32max
DATA_SOURCE 0 auprobe $0
DATA_SOURCE 1 vma $1
DATA_SOURCE 2 opcode_vaddr $2
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]
NO_OVERFLOW_SIMPLE 1 vma->vm_end
NO_OVERFLOW_SIMPLE 1 vma->vm_start
UNITS 2 opcode_vaddr unit_byte
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem