Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

kernel/events/core.c perf_event_modify_breakpoint() -> modify_user_hw_breakpoint_check()

Type Parameter Key Value
PARAM_VALUE 0 bp 4096-ptr_max
PARAM_VALUE 0 bp->ctx->lock.dep_map->name 0-255
PARAM_VALUE 1 attr 8430341497750159360
PARAM_VALUE 1 attr->sample_max_stack 0,127
PARAM_VALUE 1 attr->size 0,144
PARAM_VALUE 2 check 1
BUF_SIZE 0 bp s32min-(-1),1-s32max
BUF_SIZE 0 bp s32min-(-1),1-s32max
CAPPED_DATA 0 bp 1
CAPPED_DATA 1 attr->type 1
DATA_SOURCE 0 bp $0
DATA_SOURCE 1 attr $1
HOST_DATA 0 bp->group_leader->hw->addr_filters_gen 0-u64max
HOST_DATA 0 bp->group_leader->hw->freq_count_stamp 0-u64max
HOST_DATA 0 bp->group_leader->hw->freq_time_stamp 0-u64max
HOST_DATA 0 bp->group_leader->hw->interrupts 0-u64max
HOST_DATA 0 bp->group_leader->hw->interrupts_seq 0-u64max
HOST_DATA 0 bp->group_leader->hw->sample_period 0-u64max
HOST_DATA 0 bp->group_leader->hw->state s32min-s32max
HOST_DATA 0 bp->group_leader->hw.aux_config 0-u64max
HOST_DATA 0 bp->group_leader->hw.aux_paused 0-u32max
HOST_DATA 0 bp->group_leader->hw.branch_reg.alloc s32min-s32max
HOST_DATA 0 bp->group_leader->hw.branch_reg.config 0-u64max
HOST_DATA 0 bp->group_leader->hw.branch_reg.idx s32min-s32max
HOST_DATA 0 bp->group_leader->hw.branch_reg.reg 0-u32max
HOST_DATA 0 bp->group_leader->hw.conf 0-u64max
HOST_DATA 0 bp->group_leader->hw.conf1 0-u64max
HOST_DATA 0 bp->group_leader->hw.config 0-u64max
HOST_DATA 0 bp->group_leader->hw.config1 0-u64max
HOST_DATA 0 bp->group_leader->hw.config_base 0-u64max
HOST_DATA 0 bp->group_leader->hw.dyn_constraint 0-u64max
HOST_DATA 0 bp->group_leader->hw.event_base 0-u64max
HOST_DATA 0 bp->group_leader->hw.event_base_rdpmc s32min-s32max
HOST_DATA 0 bp->group_leader->hw.extra_reg.alloc s32min-s32max
HOST_DATA 0 bp->group_leader->hw.extra_reg.config 0-u64max
HOST_DATA 0 bp->group_leader->hw.extra_reg.idx s32min-s32max
HOST_DATA 0 bp->group_leader->hw.extra_reg.reg 0-u32max
HOST_DATA 0 bp->group_leader->hw.flags s32min-s32max
HOST_DATA 0 bp->group_leader->hw.hrtimer._softexpires s64min-s64max
HOST_DATA 0 bp->group_leader->hw.hrtimer.is_hard 0-1
HOST_DATA 0 bp->group_leader->hw.hrtimer.is_lazy 0-1
HOST_DATA 0 bp->group_leader->hw.hrtimer.is_queued 0-1
HOST_DATA 0 bp->group_leader->hw.hrtimer.is_rel 0-1
HOST_DATA 0 bp->group_leader->hw.hrtimer.is_soft 0-1
HOST_DATA 0 bp->group_leader->hw.hrtimer.node.expires s64min-s64max
HOST_DATA 0 bp->group_leader->hw.hrtimer.node.node.node.__rb_parent_color 0-u64max
HOST_DATA 0 bp->group_leader->hw.idx s32min-s32max
HOST_DATA 0 bp->group_leader->hw.info.address 0-u64max
HOST_DATA 0 bp->group_leader->hw.info.len 0-255
HOST_DATA 0 bp->group_leader->hw.info.mask 0-u64max
HOST_DATA 0 bp->group_leader->hw.info.type 0-255
HOST_DATA 0 bp->group_leader->hw.iommu_bank 0-255
HOST_DATA 0 bp->group_leader->hw.iommu_cntr 0-255
HOST_DATA 0 bp->group_leader->hw.last_cpu s32min-s32max
HOST_DATA 0 bp->group_leader->hw.last_period 0-u64max
HOST_DATA 0 bp->group_leader->hw.last_tag 0-u64max
HOST_DATA 0 bp->group_leader->hw.padding 0-u16max
HOST_DATA 0 bp->group_leader->hw.period_left.a.a.counter s64min-s64max
HOST_DATA 0 bp->group_leader->hw.prev_count.a.a.counter s64min-s64max
HOST_DATA 0 bp->group_leader->hw.ptsc 0-u64max
HOST_DATA 0 bp->group_leader->hw.pwr_acc 0-u64max
HOST_DATA 0 bp->group_leader->hw.saved_metric 0-u64max
HOST_DATA 0 bp->group_leader->hw.saved_slots 0-u64max
USER_DATA 0 bp->attr.sig_data 0-u64max
USER_DATA 1 attr->__reserved_2 0-u16max
USER_DATA 1 attr->aux_action 0-u32max
USER_DATA 1 attr->aux_sample_size 0-u32max
USER_DATA 1 attr->aux_watermark 0-u32max
USER_DATA 1 attr->bp_addr 0-u64max
USER_DATA 1 attr->bp_len 0-u64max
USER_DATA 1 attr->bp_type 0-u32max
USER_DATA 1 attr->branch_sample_type 0-u64max
USER_DATA 1 attr->clockid s32min-s32max
USER_DATA 1 attr->config 0-u64max
USER_DATA 1 attr->config1 0-u64max
USER_DATA 1 attr->config2 0-u64max
USER_DATA 1 attr->config3 0-u64max
USER_DATA 1 attr->config4 0-u64max
USER_DATA 1 attr->kprobe_addr 0-u64max
USER_DATA 1 attr->kprobe_func 0-u64max
USER_DATA 1 attr->probe_offset 0-u64max
USER_DATA 1 attr->read_format 0-u64max
USER_DATA 1 attr->sample_freq 0-u64max
USER_DATA 1 attr->sample_max_stack 0,127
USER_DATA 1 attr->sample_period 0-u64max
USER_DATA 1 attr->sample_regs_intr 0-u64max
USER_DATA 1 attr->sample_regs_user 0-u64max
USER_DATA 1 attr->sample_stack_user 0-u32max
USER_DATA 1 attr->sample_type 0-u64max
USER_DATA 1 attr->sig_data 0-u64max
USER_DATA 1 attr->size 0,144
USER_DATA 1 attr->uprobe_path 0-u64max
USER_DATA 1 attr->wakeup_events 0-u32max
USER_DATA 1 attr->wakeup_watermark 0-u32max
HALF_LOCKED2 &event->child_mutex
HALF_LOCKED2 0 &bp->child_mutex
TYPE_LOCK (struct perf_event)->child_mutex

kernel/events/hw_breakpoint.c modify_user_hw_breakpoint() -> modify_user_hw_breakpoint_check()

Type Parameter Key Value
PARAM_VALUE 0 bp 4096-ptr_max
PARAM_VALUE 0 bp->active_list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->active_list.prev->next 4096-ptr_max
PARAM_VALUE 0 bp->addr_filters.list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->addr_filters.lock.owner (-1)
PARAM_VALUE 0 bp->addr_filters.lock.owner_cpu u32max
PARAM_VALUE 0 bp->aux_event 0
PARAM_VALUE 0 bp->aux_event->addr_filters.list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->addr_filters.lock.owner (-1)
PARAM_VALUE 0 bp->aux_event->addr_filters.lock.owner_cpu u32max
PARAM_VALUE 0 bp->aux_event->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->callback_head.next 0
PARAM_VALUE 0 bp->aux_event->cgrp 0
PARAM_VALUE 0 bp->aux_event->ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->ctx->task->rcu.func 1-u64max
PARAM_VALUE 0 bp->aux_event->ftrace_ops.func_hash->filter_hash 3175483717725929472
PARAM_VALUE 0 bp->aux_event->ftrace_ops.func_hash->notrace_hash 3175483717725929472
PARAM_VALUE 0 bp->aux_event->hw.addr_filters 0
PARAM_VALUE 0 bp->aux_event->hw.hrtimer.is_queued 0
PARAM_VALUE 0 bp->aux_event->hw.target->perf_ctx_data->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->hw.target->rcu.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->addr_filters.list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->parent->addr_filters.lock.owner (-1)
PARAM_VALUE 0 bp->aux_event->parent->addr_filters.lock.owner_cpu u32max
PARAM_VALUE 0 bp->aux_event->parent->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->ctx->task->rcu.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->ftrace_ops.func_hash->filter_hash 3175483717725929472
PARAM_VALUE 0 bp->aux_event->parent->ftrace_ops.func_hash->notrace_hash 3175483717725929472
PARAM_VALUE 0 bp->aux_event->parent->hw.target->perf_ctx_data->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->hw.target->rcu.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->pmu->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->aux_event->parent->pmu_ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->parent->pmu_ctx->pmu_ctx_entry.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->parent->pmu_ctx->pmu_ctx_entry.prev->next 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->parent->rb_entry.next 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->put_work.flags 0-4294967295
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->put_work.is_hard 0-1
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->put_work.is_lazy 0-1
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->put_work.is_queued 0-1
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->put_work.is_soft 0-1
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->refcnt.refs.counter s32min-s32max
PARAM_VALUE 0 bp->aux_event->parent->tp_event->data->status 0-2,128,130
PARAM_VALUE 0 bp->aux_event->parent->tp_event->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->aux_event->pmu->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->aux_event->pmu_ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->aux_event->pmu_private 0
PARAM_VALUE 0 bp->aux_event->prog 0
PARAM_VALUE 0 bp->aux_event->rb 0
PARAM_VALUE 0 bp->aux_event->rb_entry.next 4096-ptr_max
PARAM_VALUE 0 bp->aux_event->security 0
PARAM_VALUE 0 bp->aux_event->tp_event->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->callback_head.func 1-u64max
PARAM_VALUE 0 bp->callback_head.next 0
PARAM_VALUE 0 bp->child_list.next 4096-ptr_max
PARAM_VALUE 0 bp->child_list.next->next 4096-ptr_max
PARAM_VALUE 0 bp->child_list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->child_list.prev 4096-ptr_max
PARAM_VALUE 0 bp->child_list.prev->next 4096-ptr_max
PARAM_VALUE 0 bp->child_list.prev->prev 4096-ptr_max
PARAM_VALUE 0 bp->ctx->lock.dep_map->name 0-255
PARAM_VALUE 0 bp->ctx->lock.owner (-1)
PARAM_VALUE 0 bp->ctx->lock.owner_cpu u32max
PARAM_VALUE 0 bp->event_entry.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->ftrace_ops.func_hash->filter_hash 3175483717725929472
PARAM_VALUE 0 bp->ftrace_ops.func_hash->notrace_hash 3175483717725929472
PARAM_VALUE 0 bp->group_index 0
PARAM_VALUE 0 bp->hw.addr_filters 0
PARAM_VALUE 0 bp->hw.target->perf_ctx_data->callback_head.func 1-u64max
PARAM_VALUE 0 bp->hw.target->rcu.func 1-u64max
PARAM_VALUE 0 bp->hw.target->rcu.next 0
PARAM_VALUE 0 bp->parent->addr_filters.list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->parent->addr_filters.lock.owner (-1)
PARAM_VALUE 0 bp->parent->addr_filters.lock.owner_cpu u32max
PARAM_VALUE 0 bp->parent->callback_head.func 1-u64max
PARAM_VALUE 0 bp->parent->callback_head.next 0
PARAM_VALUE 0 bp->parent->cgrp 0
PARAM_VALUE 0 bp->parent->ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->parent->ctx->task->rcu.func 1-u64max
PARAM_VALUE 0 bp->parent->ftrace_ops.func_hash->filter_hash 3175483717725929472
PARAM_VALUE 0 bp->parent->ftrace_ops.func_hash->notrace_hash 3175483717725929472
PARAM_VALUE 0 bp->parent->hw.addr_filters 0
PARAM_VALUE 0 bp->parent->hw.hrtimer.is_queued 0
PARAM_VALUE 0 bp->parent->hw.hrtimer.node.node.next 0
PARAM_VALUE 0 bp->parent->hw.hrtimer.node.node.prev 0
PARAM_VALUE 0 bp->parent->hw.target->perf_ctx_data->callback_head.func 1-u64max
PARAM_VALUE 0 bp->parent->hw.target->rcu.func 1-u64max
PARAM_VALUE 0 bp->parent->pmu->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->parent->pmu_ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->parent->pmu_ctx->pmu_ctx_entry.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->parent->pmu_ctx->pmu_ctx_entry.prev->next 4096-ptr_max
PARAM_VALUE 0 bp->parent->pmu_private 0
PARAM_VALUE 0 bp->parent->prog 0
PARAM_VALUE 0 bp->parent->rb 0
PARAM_VALUE 0 bp->parent->rb_entry.next 4096-ptr_max
PARAM_VALUE 0 bp->parent->security 0
PARAM_VALUE 0 bp->parent->tp_event->data->put_work.flags 0-4294967295
PARAM_VALUE 0 bp->parent->tp_event->data->put_work.is_hard 0-1
PARAM_VALUE 0 bp->parent->tp_event->data->put_work.is_lazy 0-1
PARAM_VALUE 0 bp->parent->tp_event->data->put_work.is_queued 0-1
PARAM_VALUE 0 bp->parent->tp_event->data->put_work.is_soft 0-1
PARAM_VALUE 0 bp->parent->tp_event->data->refcnt.refs.counter s32min-s32max
PARAM_VALUE 0 bp->parent->tp_event->data->status 0-2,128,130
PARAM_VALUE 0 bp->parent->tp_event->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->pmu->module->refcnt.counter 0-s32max
PARAM_VALUE 0 bp->pmu_ctx->callback_head.func 1-u64max
PARAM_VALUE 0 bp->pmu_ctx->callback_head.next 0
PARAM_VALUE 0 bp->pmu_ctx->ctx 0
PARAM_VALUE 0 bp->pmu_ctx->rotate_necessary 0
PARAM_VALUE 0 bp->pmu_private 0
PARAM_VALUE 0 bp->pmu_private->lock->owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 bp->pmu_private->lock.dep_map->name 0-255
PARAM_VALUE 0 bp->pmu_private->lock.owner (-1)
PARAM_VALUE 0 bp->pmu_private->lock.owner_cpu 4294967295
PARAM_VALUE 0 bp->pmu_private->lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 bp->prog 0
PARAM_VALUE 0 bp->rb 0
PARAM_VALUE 0 bp->rb->user_page->cap_user_rdpmc 0-1
PARAM_VALUE 0 bp->rb->user_page->cap_user_time 0-1
PARAM_VALUE 0 bp->rb->user_page->cap_user_time_zero 0-1
PARAM_VALUE 0 bp->rb->user_page->index 0-4294967295
PARAM_VALUE 0 bp->rb->user_page->lock 0-4294967295
PARAM_VALUE 0 bp->rb->user_page->pmc_width 0-u16max
PARAM_VALUE 0 bp->rb->user_page->time_mult 0-4294967295
PARAM_VALUE 0 bp->rb->user_page->time_shift 0-u16max
PARAM_VALUE 0 bp->rb_entry.next 4096-ptr_max
PARAM_VALUE 0 bp->security 0
PARAM_VALUE 0 bp->sibling_list.next->prev 4096-ptr_max
PARAM_VALUE 0 bp->sibling_list.prev->next 4096-ptr_max
PARAM_VALUE 0 bp->tp_event->module->refcnt.counter 0-s32max
PARAM_VALUE 0 *bp->aux_event->parent->tp_event->tp->iterator (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->aux_event->parent->tp_event->tp->static_call_key->func (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->aux_event->tp_event->tp->iterator (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->aux_event->tp_event->tp->static_call_key->func (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->parent->tp_event->tp->iterator (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->parent->tp_event->tp->static_call_key->func (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->tp_event->tp->iterator (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 *bp->tp_event->tp->static_call_key->func (-4611686018427387904)-4611686018427387903
PARAM_VALUE 1 attr 1999393905348517888,7294364977342070784
PARAM_VALUE 2 check 0
CAPPED_DATA 0 bp 1
DATA_SOURCE 0 bp $0
DATA_SOURCE 1 attr $1
USER_DATA 1 attr->bp_addr 0-u64max
USER_DATA 1 attr->disabled 0[c]