Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/usb/core/port.c disable_show() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/usb/core/port.c disable_store() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/usb/core/port.c find_and_link_peer() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &usb_port_peer_mutex

drivers/usb/core/port.c find_and_link_peer() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &usb_port_peer_mutex

drivers/usb/core/port.c match_location() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &add_mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &seq->lock
HALF_LOCKED2 &skt->skt_mutex
HALF_LOCKED2 &tb->lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 global &core_lock
HALF_LOCKED2 global &pi_mutex
HALF_LOCKED2 global &pwrseq_sem
HALF_LOCKED2 global &registration_lock
HALF_LOCKED2 global &vdpa_dev_lock
HALF_LOCKED2 global &xenwatch_mutex

drivers/usb/core/port.c usb_port_runtime_resume() -> usb_hub_to_struct_hub()

Type Parameter Key Value

drivers/usb/core/port.c usb_port_runtime_suspend() -> usb_hub_to_struct_hub()

Type Parameter Key Value

drivers/usb/core/hub.c find_port_owner() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->dev.mutex

drivers/usb/core/hub.c hub_disconnect_children() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
DATA_SOURCE 0 hdev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &hdev->dev.mutex
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 &udev->dev.mutex
HALF_LOCKED2 global &usb_bus_idr_lock
TYPE_LOCK (struct device)->mutex

drivers/usb/core/hub.c hub_hc_release_resources() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
CAPPED_DATA 0 hdev 1
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 0 &hdev->dev.mutex

drivers/usb/core/hub.c hub_ioctl() -> usb_hub_to_struct_hub()

Type Parameter Key Value
LOCK2 &dev->dev.mutex
TYPE_LOCK (struct device)->mutex

drivers/usb/core/hub.c hub_set_address() -> usb_hub_to_struct_hub()

Type Parameter Key Value

drivers/usb/core/hub.c hub_set_initial_usb2_lpm_policy() -> usb_hub_to_struct_hub()

Type Parameter Key Value

drivers/usb/core/hub.c recursively_mark_NOTATTACHED() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
DATA_SOURCE 0 hdev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 global &device_state_lock

drivers/usb/core/hub.c set_usb_port_removable() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 global &usb_bus_idr_lock

drivers/usb/core/hub.c update_port_device_state() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &udev->dev.mutex
HALF_LOCKED2 flags
HALF_LOCKED2 global &device_state_lock

drivers/usb/core/hub.c usb_device_is_owned() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING

drivers/usb/core/hub.c usb_disconnect() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &udev->dev.mutex
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 &udev->dev.mutex
HALF_LOCKED2 global &usb_bus_idr_lock
TYPE_LOCK (struct device)->mutex

drivers/usb/core/hub.c usb_enable_lpm() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &udev->dev.mutex
HALF_LOCKED2 hcd->bandwidth_mutex

drivers/usb/core/hub.c usb_get_hub_port_acpi_handle() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags

drivers/usb/core/hub.c usb_hub_adjust_deviceremovable() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 hdev->maxchild

drivers/usb/core/hub.c usb_hub_find_child() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &fsm->lock
HALF_LOCKED2 &hdev->driver_input_lock
HALF_LOCKED2 0 &hdev->dev.mutex

drivers/usb/core/hub.c usb_hub_release_all_ports() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 0 &hdev->dev.mutex
TYPE_LOCK (struct device)->mutex

drivers/usb/core/hub.c usb_kick_hub_wq() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
DATA_SOURCE 0 hdev $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &hcd_root_hub_lock
HALF_LOCKED2 &ehci->lock
HALF_LOCKED2 &fotg210->lock
HALF_LOCKED2 &isp116x->lock
HALF_LOCKED2 &ohci->lock
HALF_LOCKED2 &oxu->lock
HALF_LOCKED2 &uhci->lock
HALF_LOCKED2 &xhci->lock
HALF_LOCKED2 flags
HALF_LOCKED2 global &usb_bus_idr_lock

drivers/usb/core/hub.c usb_new_device() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 global &usb_bus_idr_lock

drivers/usb/core/hub.c usb_port_disable() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mutex

drivers/usb/core/hub.c usb_port_resume() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING

drivers/usb/core/hub.c usb_port_suspend() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/usb/core/hub.c usb_remove_device() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &of->mutex
LOCK2 &udev->dev.mutex
HALF_LOCKED2 &of->prealloc_mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct device)->mutex
TYPE_LOCK (struct kernfs_open_file)->mutex

drivers/usb/core/hub.c usb_reset_and_verify_device() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &port_dev->status_lock
TYPE_LOCK (struct usb_port)->status_lock

drivers/usb/core/hub.c usb_reset_device() -> usb_hub_to_struct_hub()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->dev.mutex
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 &ud->sysfs_lock
HALF_LOCKED2 &udev->dev.mutex

drivers/usb/core/hub.c usb_set_lpm_parameters() -> usb_hub_to_struct_hub()

Type Parameter Key Value

drivers/usb/core/hub.c usb_wakeup_enabled_descendants() -> usb_hub_to_struct_hub()

Type Parameter Key Value
DATA_SOURCE 0 hdev $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &onboard_dev->lock
HALF_LOCKED2 &port_dev->status_lock

drivers/usb/core/hub.c usb_wakeup_notification() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max
DATA_SOURCE 0 hdev $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 &xhci->lock
LOCK2 flags
LOCK2 global &device_state_lock
HALF_LOCKED2 &desc->request_mutex
HALF_LOCKED2 _T->lock
HALF_LOCKED2 flags
TYPE_LOCK (struct xhci_hcd)->lock

drivers/usb/core/usb-acpi.c usb_acpi_add_usb4_devlink() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
PARAM_VALUE 0 hdev->actconfig 4096-ptr_max
PARAM_VALUE 0 hdev->maxchild s32min-(-1),1-s32max

drivers/usb/core/usb-acpi.c usb_acpi_find_companion_for_device() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 1-u64max

drivers/usb/core/usb-acpi.c usb_acpi_set_power_state() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
PARAM_VALUE 0 hdev->actconfig 4096-ptr_max
PARAM_VALUE 0 hdev->maxchild s32min-(-1),1-s32max
DATA_SOURCE 0 hdev $0
LOCK2 flags

drivers/usb/core/usb.c usb_dev_authorized() -> usb_hub_to_struct_hub()

Type Parameter Key Value
PARAM_VALUE 0 hdev 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &hdev->dev.mutex
HALF_LOCKED2 &of->mutex
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &port_dev->status_lock
HALF_LOCKED2 hcd->address0_mutex