Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/base/firmware_loader/sysfs.c firmware_data_read() -> firmware_rw_data()

Type Parameter Key Value
PARAM_VALUE 0 fw_priv 4096-ptr_max
PARAM_VALUE 0 fw_priv->data 1-u64max
PARAM_VALUE 0 fw_priv->fw_st.status 0-3
PARAM_VALUE 1 buffer 1-u64max
PARAM_VALUE 3 count 0-4096
PARAM_VALUE 4 read 1
CAPPED_DATA 0 fw_priv->fw_st.status 1
CAPPED_DATA 2 offset 1
CAPPED_DATA 2 offset 1
CAPPED_DATA 3 count 1
CAPPED_DATA 3 count 1
DATA_SOURCE 1 buffer $3
DATA_SOURCE 2 offset $4
DATA_SOURCE 3 count $5 [m]
PARAM_COMPARE 0 fw_priv->size >= $2
PARAM_COMPARE 1 buffer >= $3
PARAM_COMPARE 2 offset <= $0->size
BIT_INFO 3 count 0x0,0x7fffffffffffffff
NOSPEC 2 offset
NOSPEC 2 offset
NOSPEC 3 count
NOSPEC 3 count
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 offset 1-4095[c]
USER_DATA 3 count 1-4096[c]
UNITS 2 offset unit_byte
UNITS 3 count unit_byte
LOCK2 &of->mutex
LOCK2 global &fw_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/base/firmware_loader/sysfs.c firmware_data_write() -> firmware_rw_data()

Type Parameter Key Value
PARAM_VALUE 0 fw_priv 4096-ptr_max
PARAM_VALUE 0 fw_priv->data 1-u64max
PARAM_VALUE 0 fw_priv->fw_st.status 0-3
PARAM_VALUE 1 buffer 4096-ptr_max
PARAM_VALUE 3 count 1-4096
PARAM_VALUE 4 read 0
CAPPED_DATA 0 fw_priv->fw_st.status 1
CAPPED_DATA 3 count 1
CAPPED_DATA 3 count 1
DATA_SOURCE 1 buffer $3
DATA_SOURCE 2 offset $4
DATA_SOURCE 3 count $5
CAPABLE 0 17
BIT_INFO 3 count 0x0,0x3fffffff
NOSPEC 3 count
NOSPEC 3 count
TERMINATED 1 buffer 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 2 offset 0-4095
USER_DATA 3 count 1-4096[c]
LOCK2 &of->mutex
LOCK2 global &fw_lock
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex