Documented in 1 files:

Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 8 files:

Smatch caller information:

drivers/gpu/drm/i915/display/intel_plane.c intel_plane_colorop_replace_blob() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 0 *blob 0,4096-ptr_max
DATA_SOURCE 1 new_blob $2
MEM_ZERO 0 blob
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/i915/display/intel_plane.c intel_plane_colorop_replace_blob() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 0 *blob 0,4096-ptr_max
DATA_SOURCE 1 new_blob $2
MEM_ZERO 0 blob
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/i915/display/intel_plane.c intel_plane_colorop_replace_blob() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 0 *blob 0,4096-ptr_max
DATA_SOURCE 1 new_blob $2
MEM_ZERO 0 blob
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/i915/display/intel_plane.c intel_plane_colorop_replace_blob() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 0 *blob 0,4096-ptr_max
DATA_SOURCE 1 new_blob $2
MEM_ZERO 0 blob
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
CAPPED_DATA 1 new_blob 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
CAPPED_DATA 1 new_blob 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_modeset_setup.c intel_crtc_copy_hw_to_uapi_state() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &display->drm->mode_config.connection_mutex
HALF_LOCKED2 &display->drm->mode_config.mutex

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 264,1032,8192
BUF_SIZE 1 new_blob 89-s32max
BUF_SIZE 1 new_blob 89-s32max
DATA_SOURCE 1 new_blob r create_resized_lut
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 1-2147483552
BUF_SIZE 1 new_blob 89-s32max
BUF_SIZE 1 new_blob 89-s32max
DATA_SOURCE 1 new_blob r create_resized_lut
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c glk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 0 *blob 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 1-2147483552
BUF_SIZE 1 new_blob 89-s32max
BUF_SIZE 1 new_blob 89-s32max
DATA_SOURCE 1 new_blob r create_resized_lut
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ilk_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c intel_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c intel_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_color.c ivb_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 4096
BUF_SIZE 1 new_blob 89-s32max
BUF_SIZE 1 new_blob 89-s32max
DATA_SOURCE 1 new_blob r create_resized_lut
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs

drivers/gpu/drm/i915/display/intel_color.c ivb_assign_luts() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 4096
BUF_SIZE 1 new_blob 89-s32max
BUF_SIZE 1 new_blob 89-s32max
DATA_SOURCE 1 new_blob r create_resized_lut
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs

drivers/gpu/drm/drm_damage_helper.c drm_atomic_helper_dirtyfb() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->dev 4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev->prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 1-2147483552
BUF_SIZE 1 new_blob 0,89-s32max
BUF_SIZE 1 new_blob 0,89-s32max
CAPPED_DATA 1 new_blob 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 1 new_blob->length 1-2147483552
NO_OVERFLOW_SIMPLE 1 new_blob->dev->mode_config.num_colorop
NO_OVERFLOW_SIMPLE 1 new_blob->dev->mode_config.num_crtc
NO_OVERFLOW_SIMPLE 1 new_blob->dev->mode_config.num_total_plane
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs
LOCK2 &plane->mutex
TYPE_LOCK (struct drm_plane)->mutex

drivers/gpu/drm/drm_property.c drm_property_replace_blob_from_id() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 117,4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
DATA_SOURCE 0 blob $1

drivers/gpu/drm/i915/display/intel_display.c copy_joiner_crtc_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_display.c copy_joiner_crtc_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_display.c copy_joiner_crtc_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_display.c intel_crtc_copy_uapi_to_hw_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_display.c intel_crtc_copy_uapi_to_hw_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/i915/display/intel_display.c intel_crtc_copy_uapi_to_hw_state_nomodeset() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/gpu/drm/drm_fb_helper.c setcmap_atomic() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->master_mutex
LOCK2 &fb_helper->client.modeset_mutex
LOCK2 &fb_helper->lock
HALF_LOCKED2 &info->lock
HALF_LOCKED2 global &console_sem
TYPE_LOCK (struct drm_client_dev)->modeset_mutex
TYPE_LOCK (struct drm_device)->master_mutex
TYPE_LOCK (struct drm_fb_helper)->lock

drivers/gpu/drm/drm_fb_helper.c setcmap_atomic() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->master_mutex
LOCK2 &fb_helper->client.modeset_mutex
LOCK2 &fb_helper->lock
HALF_LOCKED2 &info->lock
HALF_LOCKED2 global &console_sem
TYPE_LOCK (struct drm_client_dev)->modeset_mutex
TYPE_LOCK (struct drm_device)->master_mutex
TYPE_LOCK (struct drm_fb_helper)->lock

drivers/gpu/drm/drm_fb_helper.c setcmap_atomic() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 4096-ptr_max
BUF_SIZE 1 new_blob 0,89-s32max
BUF_SIZE 1 new_blob 0,89-s32max
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 1 new_blob->dev->num_crtcs
LOCK2 &dev->master_mutex
LOCK2 &fb_helper->client.modeset_mutex
LOCK2 &fb_helper->lock
HALF_LOCKED2 &info->lock
HALF_LOCKED2 global &console_sem
TYPE_LOCK (struct drm_client_dev)->modeset_mutex
TYPE_LOCK (struct drm_device)->master_mutex
TYPE_LOCK (struct drm_fb_helper)->lock

drivers/gpu/drm/drm_color_mgmt.c drm_crtc_legacy_gamma_set() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->dev 4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 8-2147483552
BUF_SIZE 1 new_blob 0,89-s32max
HALF_LOCKED2 &dev->mode_config.connection_mutex
HALF_LOCKED2 &dev->mode_config.mutex

drivers/gpu/drm/drm_color_mgmt.c drm_crtc_legacy_gamma_set() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0
HALF_LOCKED2 &dev->mode_config.connection_mutex
HALF_LOCKED2 &dev->mode_config.mutex

drivers/gpu/drm/drm_color_mgmt.c drm_crtc_legacy_gamma_set() -> drm_property_replace_blob()

Type Parameter Key Value
PARAM_VALUE 0 blob 4096-ptr_max
PARAM_VALUE 1 new_blob 0,4096-ptr_max
PARAM_VALUE 1 new_blob->base.free_cb 1-u64max
PARAM_VALUE 1 new_blob->base.id 0-s32max
PARAM_VALUE 1 new_blob->base.refcount.refcount.refs.counter 1
PARAM_VALUE 1 new_blob->base.type 3149642683
PARAM_VALUE 1 new_blob->dev 4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.next 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_file.prev 72,4096-ptr_max
PARAM_VALUE 1 new_blob->head_global.next 4096-ptr_max
PARAM_VALUE 1 new_blob->length 8-2147483552
BUF_SIZE 1 new_blob 0,89-s32max
HALF_LOCKED2 &dev->mode_config.connection_mutex
HALF_LOCKED2 &dev->mode_config.mutex