Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

drivers/ufs/core/ufshcd.c ufshcd_configure_wb() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 0 &hba->host_sem

drivers/ufs/core/ufshcd.c ufshcd_device_reset() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_buf_flush_enabled
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_enabled
HALF_LOCKED2 0 &hba->host_sem

drivers/ufs/core/ufshcd.c ufshcd_is_wb_buf_flush_allowed() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
PARAM_VALUE 0 hba->caps 128-u32max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_buf_flush_enabled
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_enabled
HALF_LOCKED2 0 &hba->host_sem

drivers/ufs/core/ufshcd.c ufshcd_wb_need_flush() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
DATA_SOURCE 0 hba $0

drivers/ufs/core/ufshcd.c ufshcd_wb_probe() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
PARAM_VALUE 0 hba->caps 16-u32max
DATA_SOURCE 0 hba $0
BIT_INFO 0 hba->quirks 0x0,0xfffeffff
RX_PATH
LOCK2 0 &hba->host_sem
TYPE_LOCK (struct ufs_hba)->host_sem

drivers/ufs/core/ufshcd.c ufshcd_wb_toggle() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
PARAM_VALUE 0 hba->caps 128-u32max
BUF_SIZE 0 hba s32min-(-1),1-s32max
BUF_SIZE 0 hba s32min-(-1),1-s32max
DATA_SOURCE 0 hba $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 hba->clk_scaling.is_enabled 0
NO_OVERFLOW_SIMPLE 0 hba->clk_scaling.is_enabled
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_buf_flush_enabled
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_enabled
NO_OVERFLOW_SIMPLE 0 hba->devfreq->previous_freq
NO_OVERFLOW_SIMPLE 0 hba->devfreq->resume_freq
UNITS 0 hba unit_byte
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 0 &hba->host_sem

drivers/ufs/core/ufshcd.c ufshcd_wb_toggle_buf_flush() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
PARAM_VALUE 0 hba 4096-ptr_max
PARAM_VALUE 0 hba->caps 128-u32max
BUF_SIZE 0 hba s32min-(-1),1-s32max
BUF_SIZE 0 hba s32min-(-1),1-s32max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_buf_flush_enabled
NO_OVERFLOW_SIMPLE 0 hba->dev_info.wb_enabled
UNITS 0 hba unit_byte
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 0 &hba->host_sem

drivers/ufs/core/ufs-sysfs.c ufshcd_is_wb_buf_flush_allowed() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
BUF_SIZE 0 hba s32min-(-2),1-s32max
BUF_SIZE 0 hba s32min-(-2),1-s32max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 hba unit_byte
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/ufs/core/ufs-sysfs.c wb_on_store() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
BUF_SIZE 0 hba s32min-(-2),1-s32max
BUF_SIZE 0 hba s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 hba unit_byte
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/ufs/core/ufs-sysfs.c wb_read_resize_attrs() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
BUF_SIZE 0 hba s32min-(-2),1-s32max
BUF_SIZE 0 hba s32min-(-2),1-s32max
DATA_SOURCE 0 hba $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 hba unit_byte
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/ufs/core/ufs-sysfs.c wb_resize_enable_store() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
BUF_SIZE 0 hba s32min-(-2),1-s32max
BUF_SIZE 0 hba s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 hba unit_byte
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/ufs/core/ufs-sysfs.c write_booster_show() -> ufshcd_is_wb_allowed()

Type Parameter Key Value
BUF_SIZE 0 hba s32min-(-2),1-s32max
BUF_SIZE 0 hba s32min-(-2),1-s32max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 hba unit_byte
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex