Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/mtd/mtdcore.c mtd_nvmem_user_otp_reg_read() -> mtd_read_user_prot_reg()

Type Parameter Key Value
PARAM_VALUE 3 retlen 6084512727775047680
BUF_SIZE 0 mtd s32min-(-2),1-s32max
BUF_SIZE 0 mtd s32min-(-2),1-s32max
BUF_SIZE 4 buf (-1)-s32max
DATA_SOURCE 0 mtd $0
DATA_SOURCE 1 from $1
DATA_SOURCE 2 len $3
DATA_SOURCE 4 buf $2
NOSPEC 1 from
NOSPEC 1 from
NOSPEC 2 len
NOSPEC 2 len
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 from 0-4294967294
USER_DATA 2 len 0-u32max[c]
BYTE_COUNT 4 ==buf2 8050
HALF_LOCKED2 &of->mutex

drivers/mtd/mtdchar.c mtdchar_read() -> mtd_read_user_prot_reg()

Type Parameter Key Value
PARAM_VALUE 0 mtd 4096-ptr_max
PARAM_VALUE 2 len 0-4000000
PARAM_VALUE 3 retlen 1650582699143004160
PARAM_VALUE 4 buf 16,4096-ptr_max
BUF_SIZE 4 buf 0-s32max
BUF_SIZE 4 buf 0-s32max
CAPPED_DATA 0 mtd 1
CAPPED_DATA 2 len 1
DATA_SOURCE 4 buf r mtd_kmalloc_up_to
HOST_DATA 1 from 0-5294967294[c]
HOST_DATA 2 len 2-3999999[c]
HOST_DATA 3 *retlen 1-s32max[c]
HOST_DATA 4 *buf 0-255
USER_DATA 1 from 0-1000000000[c]
USER_DATA 2 len 2-3999999[c]
USER_DATA 3 *retlen 1-s32max[c]
UNITS 1 from unit_byte
UNITS 2 len unit_byte
USER_PTR 3 retlen

drivers/mtd/mtdchar.c otp_select_filemode() -> mtd_read_user_prot_reg()

Type Parameter Key Value
PARAM_VALUE 0 mtd 4096-ptr_max
PARAM_VALUE 1 from (-1)
PARAM_VALUE 2 len 0
PARAM_VALUE 3 retlen 6672582201214574592
PARAM_VALUE 4 buf 0
LOCK2 &master->master.chrdev_lock
TYPE_LOCK (struct mtd_master)->chrdev_lock