Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/usb/gadget/configfs.c config_usb_cfg_unlink() -> unregister_gadget()

Type Parameter Key Value
PARAM_VALUE 0 gi 4096-ptr_max
PARAM_VALUE 0 gi->composite.gadget_driver.udc_name 1-u64max
PARAM_VALUE 0 gi->lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 gi->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 gi->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 gi->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.wait_lock.owner (-1)
PARAM_VALUE 0 gi->lock.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &gi->lock 1
DATA_SOURCE 0 gi r cfg_to_gadget_info
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &gi->lock
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &target->i_rwsem
TYPE_LOCK (struct gadget_info)->lock
TYPE_LOCK (struct inode)->i_rwsem

drivers/usb/gadget/configfs.c gadget_dev_desc_UDC_store() -> unregister_gadget()

Type Parameter Key Value
PARAM_VALUE 0 gi 4096-ptr_max
PARAM_VALUE 0 gi->lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 gi->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 gi->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 gi->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.wait_lock.owner (-1)
PARAM_VALUE 0 gi->lock.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &gi->lock 1
DATA_SOURCE 0 gi r to_gadget_info
RX_PATH
TASK_NOT_RUNNING
LOCK2 &buffer->mutex
LOCK2 &frag->frag_sem
LOCK2 0 &gi->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct configfs_buffer)->mutex
TYPE_LOCK (struct configfs_fragment)->frag_sem
TYPE_LOCK (struct gadget_info)->lock

drivers/usb/gadget/configfs.c os_desc_unlink() -> unregister_gadget()

Type Parameter Key Value
PARAM_VALUE 0 gi 4096-ptr_max
PARAM_VALUE 0 gi->composite.gadget_driver.udc_name 1-u64max
PARAM_VALUE 0 gi->lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 gi->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 gi->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 gi->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.wait_lock.owner (-1)
PARAM_VALUE 0 gi->lock.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &gi->lock 1
DATA_SOURCE 0 gi r os_desc_item_to_gadget_info
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &gi->lock
HALF_LOCKED2 &dentry->d_lockref.lock
HALF_LOCKED2 &dir->i_rwsem
HALF_LOCKED2 &target->i_rwsem
TYPE_LOCK (struct gadget_info)->lock
TYPE_LOCK (struct inode)->i_rwsem

drivers/usb/gadget/configfs.c unregister_gadget_item() -> unregister_gadget()

Type Parameter Key Value
PARAM_VALUE 0 gi 4096-ptr_max
PARAM_VALUE 0 gi->lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 gi->lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 gi->lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 gi->lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 gi->lock.wait_lock.owner (-1)
PARAM_VALUE 0 gi->lock.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &gi->lock 1
DATA_SOURCE 0 gi r to_gadget_info
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 0 &gi->lock
HALF_LOCKED2 &buffer->mutex
HALF_LOCKED2 &frag->frag_sem
HALF_LOCKED2 &fsg_opts->lock
HALF_LOCKED2 &opts->dep_lock
HALF_LOCKED2 &subsys->su_mutex
TYPE_LOCK (struct gadget_info)->lock