Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

block/badblocks.c _badblocks_check() -> prev_badblocks()

Type Parameter Key Value
PARAM_VALUE 0 bb 4096-ptr_max
PARAM_VALUE 0 bb->count s32min-(-1),1-s32max
PARAM_VALUE 1 bad 3005979765254086656
PARAM_VALUE 2 hint s32min-2147483646
BUF_SIZE 0 bb (-1),192
BUF_SIZE 0 bb (-1),192
CAPPED_DATA 2 hint 1
DATA_SOURCE 0 bb $0
NOSPEC 1 bad->start
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 bad->len 0-8388607,18446744073701163009-u64max[c]
HOST_DATA 1 bad->start 0-u64max
USER_DATA 1 bad->len 0-u32max,18446744071562067969-u64max
USER_DATA 1 bad->start 0-u64max

block/badblocks.c _badblocks_clear() -> prev_badblocks()

Type Parameter Key Value
PARAM_VALUE 0 bb 4096-ptr_max
PARAM_VALUE 0 bb->count s32min-(-1),1-s32max
PARAM_VALUE 1 bad 4265458090131111936
BUF_SIZE 0 bb (-1),192
BUF_SIZE 0 bb (-1),192
CAPPED_DATA 2 hint 1
DATA_SOURCE 0 bb $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 1 bad->start 0-36028799166447614[c]
USER_DATA 1 bad->len 1-8388607,18446744073701163010-u64max
USER_DATA 1 bad->start 0-u64max[c]
LOCK2 irq
LOCK2 0 &bb->lock.lock
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
TYPE_LOCK (struct seqlock)->lock

block/badblocks.c _badblocks_set() -> prev_badblocks()

Type Parameter Key Value
PARAM_VALUE 0 bb 4096-ptr_max
PARAM_VALUE 0 bb->count 1-511
PARAM_VALUE 1 bad 3393746048747716608
DATA_SOURCE 0 bb $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 bad->start 0-u64max[c]
LOCK2 0 &bb->lock.lock
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &of->mutex
TYPE_LOCK (struct seqlock)->lock