Lines Matching refs:ud
43 spin_lock_irq(&sdev->ud.lock); in usbip_status_show()
44 status = sdev->ud.status; in usbip_status_show()
45 spin_unlock_irq(&sdev->ud.lock); in usbip_status_show()
78 spin_lock_irq(&sdev->ud.lock); in store_sockfd()
80 if (sdev->ud.status != SDEV_ST_AVAILABLE) { in store_sockfd()
89 sdev->ud.tcp_socket = socket; in store_sockfd()
91 spin_unlock_irq(&sdev->ud.lock); in store_sockfd()
93 sdev->ud.tcp_rx = kthread_get_run(stub_rx_loop, &sdev->ud, in store_sockfd()
95 sdev->ud.tcp_tx = kthread_get_run(stub_tx_loop, &sdev->ud, in store_sockfd()
98 spin_lock_irq(&sdev->ud.lock); in store_sockfd()
99 sdev->ud.status = SDEV_ST_USED; in store_sockfd()
100 spin_unlock_irq(&sdev->ud.lock); in store_sockfd()
105 spin_lock_irq(&sdev->ud.lock); in store_sockfd()
106 if (sdev->ud.status != SDEV_ST_USED) in store_sockfd()
109 spin_unlock_irq(&sdev->ud.lock); in store_sockfd()
111 usbip_event_add(&sdev->ud, SDEV_EVENT_DOWN); in store_sockfd()
117 spin_unlock_irq(&sdev->ud.lock); in store_sockfd()
155 static void stub_shutdown_connection(struct usbip_device *ud) in stub_shutdown_connection() argument
157 struct stub_device *sdev = container_of(ud, struct stub_device, ud); in stub_shutdown_connection()
165 if (ud->tcp_socket) { in stub_shutdown_connection()
167 ud->tcp_socket); in stub_shutdown_connection()
168 kernel_sock_shutdown(ud->tcp_socket, SHUT_RDWR); in stub_shutdown_connection()
172 if (ud->tcp_rx) { in stub_shutdown_connection()
173 kthread_stop_put(ud->tcp_rx); in stub_shutdown_connection()
174 ud->tcp_rx = NULL; in stub_shutdown_connection()
176 if (ud->tcp_tx) { in stub_shutdown_connection()
177 kthread_stop_put(ud->tcp_tx); in stub_shutdown_connection()
178 ud->tcp_tx = NULL; in stub_shutdown_connection()
187 if (ud->tcp_socket) { in stub_shutdown_connection()
188 sockfd_put(ud->tcp_socket); in stub_shutdown_connection()
189 ud->tcp_socket = NULL; in stub_shutdown_connection()
214 static void stub_device_reset(struct usbip_device *ud) in stub_device_reset() argument
216 struct stub_device *sdev = container_of(ud, struct stub_device, ud); in stub_device_reset()
225 spin_lock_irq(&ud->lock); in stub_device_reset()
226 ud->status = SDEV_ST_ERROR; in stub_device_reset()
227 spin_unlock_irq(&ud->lock); in stub_device_reset()
235 spin_lock_irq(&ud->lock); in stub_device_reset()
238 ud->status = SDEV_ST_ERROR; in stub_device_reset()
241 ud->status = SDEV_ST_AVAILABLE; in stub_device_reset()
243 spin_unlock_irq(&ud->lock); in stub_device_reset()
246 static void stub_device_unusable(struct usbip_device *ud) in stub_device_unusable() argument
248 spin_lock_irq(&ud->lock); in stub_device_unusable()
249 ud->status = SDEV_ST_ERROR; in stub_device_unusable()
250 spin_unlock_irq(&ud->lock); in stub_device_unusable()
280 sdev->ud.side = USBIP_STUB; in stub_device_alloc()
281 sdev->ud.status = SDEV_ST_AVAILABLE; in stub_device_alloc()
282 spin_lock_init(&sdev->ud.lock); in stub_device_alloc()
283 sdev->ud.tcp_socket = NULL; in stub_device_alloc()
294 sdev->ud.eh_ops.shutdown = stub_shutdown_connection; in stub_device_alloc()
295 sdev->ud.eh_ops.reset = stub_device_reset; in stub_device_alloc()
296 sdev->ud.eh_ops.unusable = stub_device_unusable; in stub_device_alloc()
298 usbip_start_eh(&sdev->ud); in stub_device_alloc()
391 kthread_stop_put(sdev->ud.eh); in stub_probe()
402 usbip_event_add(&busid_priv->sdev->ud, SDEV_EVENT_REMOVED); in shutdown_busid()
405 usbip_stop_eh(&busid_priv->sdev->ud); in shutdown_busid()
452 if (busid_priv->sdev->ud.eh == current) in stub_disconnect()