Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 1 files:

Smatch caller information:

drivers/infiniband/core/device.c __ib_unregister_device() -> (struct ib_device_ops)->del_sub_dev()

Type Parameter Key Value
PARAM_VALUE 0 sub_dev 4096-ptr_max
CAPPED_DATA 0 &sub_dev->subdev_list 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &ib_dev->subdev_lock
TYPE_LOCK (struct ib_device)->subdev_lock

drivers/infiniband/core/device.c ib_del_sub_device_and_put() -> (struct ib_device_ops)->del_sub_dev()

Type Parameter Key Value
PARAM_VALUE 0 sub_dev 4096-ptr_max
PARAM_VALUE 0 sub_dev->parent 4096-ptr_max
PARAM_VALUE 0 sub_dev->parent->subdev_lock.dep_map->name 0-255
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter 0,4096-ptr_max
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 sub_dev->parent->subdev_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 sub_dev->parent->subdev_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 sub_dev->parent->subdev_lock.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 sub_dev->unreg_completion.wait.lock.dep_map->name 0-255
PARAM_VALUE 0 sub_dev->unreg_completion.wait.lock.owner (-1)
PARAM_VALUE 0 sub_dev->unreg_completion.wait.lock.owner_cpu u32max
DATA_SOURCE 0 sub_dev $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &rtnl_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read