Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/usb/gadget/function/f_mass_storage.c file_store() -> fsg_store_file()

Type Parameter Key Value
PARAM_VALUE 0 curlun 4096-ptr_max
PARAM_VALUE 2 buf 4096-ptr_max
PARAM_VALUE 3 count 1-1000000000
BUF_SIZE 1 filesem s32min-(-2),1-s32max
BUF_SIZE 1 filesem s32min-(-2),1-s32max
CAPPED_DATA 3 count 1
CAPPED_DATA 3 count 1
DATA_SOURCE 0 curlun r fsg_lun_from_dev
DATA_SOURCE 2 buf $2
DATA_SOURCE 3 count $3
NOSPEC 3 count
RX_PATH
TASK_NOT_RUNNING
UNITS 1 filesem unit_byte
ELEM_LAST 2 ==buf3 8052
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/usb/gadget/function/f_mass_storage.c fsg_lun_opts_file_store() -> fsg_store_file()

Type Parameter Key Value
PARAM_VALUE 1 filesem 4096-ptr_max
PARAM_VALUE 2 buf 1-u64max
PARAM_VALUE 2 *buf 0
PARAM_VALUE 3 count 1-s32max
BUF_SIZE 2 buf 4096
BUF_SIZE 2 buf 4096
DATA_SOURCE 2 buf $1
DATA_SOURCE 3 count $2
TERMINATED 2 buf 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 3 count 1-s32max
LOCK2 &buffer->mutex
LOCK2 &frag->frag_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct configfs_buffer)->mutex
TYPE_LOCK (struct configfs_fragment)->frag_sem

drivers/usb/gadget/function/storage_common.c fsg_store_forced_eject() -> fsg_store_file()

Type Parameter Key Value
PARAM_VALUE 0 curlun 4096-ptr_max
PARAM_VALUE 0 curlun->prevent_medium_removal 0
PARAM_VALUE 2 buf 4602998933304729600
PARAM_VALUE 3 count 0
BUF_SIZE 1 filesem s32min-(-1),1-s32max
BUF_SIZE 1 filesem s32min-(-1),1-s32max
DATA_SOURCE 0 curlun $0
DATA_SOURCE 1 filesem $1
STR_LEN 0 curlun 0
TERMINATED 2 buf 1
RX_PATH
TASK_NOT_RUNNING
UNITS 1 filesem unit_byte
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock