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);
767 spin_lock(&vdev->ud.lock);
768 vdev->ud.status = VDEV_ST_USED;
769 spin_unlock(&vdev->ud.lock);
898 if (!vdev->ud.tcp_socket) {
930 usbip_event_add(&vdev->ud, VDEV_EVENT_ERROR_MALLOC);
1011 static void vhci_shutdown_connection(struct usbip_device *ud)
1013 struct vhci_device *vdev = container_of(ud, struct vhci_device, ud);
1016 if (ud->tcp_socket) {
1017 pr_debug("shutdown tcp_socket %d\n", ud->sockfd);
1018 kernel_sock_shutdown(ud->tcp_socket, SHUT_RDWR);
1022 if (vdev->ud.tcp_rx) {
1023 kthread_stop_put(vdev->ud.tcp_rx);
1024 vdev->ud.tcp_rx = NULL;
1026 if (vdev->ud.tcp_tx) {
1027 kthread_stop_put(vdev->ud.tcp_tx);
1028 vdev->ud.tcp_tx = NULL;
1033 if (vdev->ud.tcp_socket) {
1034 sockfd_put(vdev->ud.tcp_socket);
1035 vdev->ud.tcp_socket = NULL;
1036 vdev->ud.sockfd = -1;
1067 static void vhci_device_reset(struct usbip_device *ud)
1069 struct vhci_device *vdev = container_of(ud, struct vhci_device, ud);
1072 spin_lock_irqsave(&ud->lock, flags);
1080 if (ud->tcp_socket) {
1081 sockfd_put(ud->tcp_socket);
1082 ud->tcp_socket = NULL;
1083 ud->sockfd = -1;
1085 ud->status = VDEV_ST_NULL;
1087 spin_unlock_irqrestore(&ud->lock, flags);
1090 static void vhci_device_unusable(struct usbip_device *ud)
1094 spin_lock_irqsave(&ud->lock, flags);
1095 ud->status = VDEV_ST_ERROR;
1096 spin_unlock_irqrestore(&ud->lock, flags);
1103 vdev->ud.side = USBIP_VHCI;
1104 vdev->ud.status = VDEV_ST_NULL;
1105 spin_lock_init(&vdev->ud.lock);
1106 mutex_init(&vdev->ud.sysfs_lock);
1116 vdev->ud.eh_ops.shutdown = vhci_shutdown_connection;
1117 vdev->ud.eh_ops.reset = vhci_device_reset;
1118 vdev->ud.eh_ops.unusable = vhci_device_unusable;
1120 usbip_start_eh(&vdev->ud);
1243 usbip_event_add(&vdev->ud, VDEV_EVENT_REMOVED);
1244 usbip_stop_eh(&vdev->ud);