Defined in 2 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/usb/core/driver.c usb_unbind_interface() -> (struct usb_driver)->disconnect()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->condition 3
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 &dev->mutex

drivers/net/usb/huawei_cdc_ncm.c huawei_cdc_ncm_unbind() -> (struct usb_driver)->disconnect()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/usb/cdc_mbim.c cdc_mbim_unbind() -> (struct usb_driver)->disconnect()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/usb/qmi_wwan.c qmi_wwan_unbind() -> (struct usb_driver)->disconnect()

Type Parameter Key Value
CONTAINER 0 *(-16-0+24) $(-1)
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/usb/gadget/function/u_serial.c gs_close() -> (struct gserial)->disconnect()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->disconnect 1-u64max
CONTAINER 0 -264+0 $(-1)
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &port->port_lock
LOCK2 irq
HALF_LOCKED2 &tty->legacy_mutex
HALF_LOCKED2 global &spk_mutex
TYPE_LOCK (struct gs_port)->port_lock

drivers/usb/gadget/function/u_serial.c gserial_connect() -> (struct gserial)->disconnect()

Type Parameter Key Value
PARAM_VALUE 0 port 4096-ptr_max
PARAM_VALUE 0 port->disconnect 1-u64max
PARAM_VALUE 0 port->in 4096-ptr_max
PARAM_VALUE 0 port->in->driver_data 4096-ptr_max
PARAM_VALUE 0 port->ioport 4096-ptr_max
PARAM_VALUE 0 port->ioport->port_usb 0
PARAM_VALUE 0 port->out 4096-ptr_max
PARAM_VALUE 0 port->out->driver_data 4096-ptr_max
DATA_SOURCE 0 port $0
CONTAINER 0 -264+0 $(-1)
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &port->port_lock
LOCK2 flags
TYPE_LOCK (struct gs_port)->port_lock