Lines Matching refs:ud
462 if (vhci_hcd->vdev[rhport].ud.status ==
464 vhci_hcd->vdev[rhport].ud.status ==
469 vhci_hcd->vdev[rhport].ud.status);
672 usbip_event_add(&vdev->ud, VDEV_EVENT_ERROR_MALLOC);
724 spin_lock(&vdev->ud.lock);
725 if (vdev->ud.status == VDEV_ST_NULL ||
726 vdev->ud.status == VDEV_ST_ERROR) {
728 spin_unlock(&vdev->ud.lock);
732 spin_unlock(&vdev->ud.lock);
769 spin_lock(&vdev->ud.lock);
770 vdev->ud.status = VDEV_ST_USED;
771 spin_unlock(&vdev->ud.lock);
900 if (!vdev->ud.tcp_socket) {
932 usbip_event_add(&vdev->ud, VDEV_EVENT_ERROR_MALLOC);
1041 static void vhci_shutdown_connection(struct usbip_device *ud)
1043 struct vhci_device *vdev = container_of(ud, struct vhci_device, ud);
1046 if (ud->tcp_socket) {
1047 pr_debug("shutdown tcp_socket %d\n", ud->sockfd);
1048 kernel_sock_shutdown(ud->tcp_socket, SHUT_RDWR);
1052 if (vdev->ud.tcp_rx) {
1053 kthread_stop_put(vdev->ud.tcp_rx);
1054 vdev->ud.tcp_rx = NULL;
1056 if (vdev->ud.tcp_tx) {
1057 kthread_stop_put(vdev->ud.tcp_tx);
1058 vdev->ud.tcp_tx = NULL;
1063 if (vdev->ud.tcp_socket) {
1064 sockfd_put(vdev->ud.tcp_socket);
1065 vdev->ud.tcp_socket = NULL;
1066 vdev->ud.sockfd = -1;
1097 static void vhci_device_reset(struct usbip_device *ud)
1099 struct vhci_device *vdev = container_of(ud, struct vhci_device, ud);
1103 spin_lock_irqsave(&ud->lock, flags);
1111 if (ud->tcp_socket) {
1112 sockfd_put(ud->tcp_socket);
1113 ud->tcp_socket = NULL;
1114 ud->sockfd = -1;
1116 ud->status = VDEV_ST_NULL;
1118 spin_unlock_irqrestore(&ud->lock, flags);
1121 static void vhci_device_unusable(struct usbip_device *ud)
1125 spin_lock_irqsave(&ud->lock, flags);
1126 ud->status = VDEV_ST_ERROR;
1127 spin_unlock_irqrestore(&ud->lock, flags);
1134 vdev->ud.side = USBIP_VHCI;
1135 vdev->ud.status = VDEV_ST_NULL;
1136 spin_lock_init(&vdev->ud.lock);
1137 mutex_init(&vdev->ud.sysfs_lock);
1147 vdev->ud.eh_ops.shutdown = vhci_shutdown_connection;
1148 vdev->ud.eh_ops.reset = vhci_device_reset;
1149 vdev->ud.eh_ops.unusable = vhci_device_unusable;
1151 usbip_start_eh(&vdev->ud);
1274 usbip_event_add(&vdev->ud, VDEV_EVENT_REMOVED);
1275 usbip_stop_eh(&vdev->ud);