Lines Matching refs:sdev

37 /* be in spin_lock_irqsave(&sdev->priv_lock, flags) */
38 void stub_enqueue_ret_unlink(struct stub_device *sdev, __u32 seqnum,
45 usbip_event_add(&sdev->ud, VDEV_EVENT_ERROR_MALLOC);
52 list_add_tail(&unlink->list, &sdev->unlink_tx);
67 struct stub_device *sdev = priv->sdev;
99 spin_lock_irqsave(&sdev->priv_lock, flags);
101 stub_enqueue_ret_unlink(sdev, priv->seqnum, urb->status);
104 list_move_tail(&priv->list, &sdev->priv_tx);
106 spin_unlock_irqrestore(&sdev->priv_lock, flags);
109 wake_up(&sdev->tx_waitq);
137 static struct stub_priv *dequeue_from_priv_tx(struct stub_device *sdev)
142 spin_lock_irqsave(&sdev->priv_lock, flags);
144 list_for_each_entry_safe(priv, tmp, &sdev->priv_tx, list) {
145 list_move_tail(&priv->list, &sdev->priv_free);
146 spin_unlock_irqrestore(&sdev->priv_lock, flags);
150 spin_unlock_irqrestore(&sdev->priv_lock, flags);
155 static int stub_send_ret_submit(struct stub_device *sdev)
165 while ((priv = dequeue_from_priv_tx(sdev)) != NULL) {
185 usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_MALLOC);
232 dev_err(&sdev->interface->dev,
237 usbip_event_add(&sdev->ud,
249 usbip_event_add(&sdev->ud,
261 ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg,
264 dev_err(&sdev->interface->dev,
269 usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_TCP);
279 spin_lock_irqsave(&sdev->priv_lock, flags);
280 list_for_each_entry_safe(priv, tmp, &sdev->priv_free, list) {
283 spin_unlock_irqrestore(&sdev->priv_lock, flags);
288 static struct stub_unlink *dequeue_from_unlink_tx(struct stub_device *sdev)
293 spin_lock_irqsave(&sdev->priv_lock, flags);
295 list_for_each_entry_safe(unlink, tmp, &sdev->unlink_tx, list) {
296 list_move_tail(&unlink->list, &sdev->unlink_free);
297 spin_unlock_irqrestore(&sdev->priv_lock, flags);
301 spin_unlock_irqrestore(&sdev->priv_lock, flags);
306 static int stub_send_ret_unlink(struct stub_device *sdev)
317 while ((unlink = dequeue_from_unlink_tx(sdev)) != NULL) {
336 ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg, iov,
339 dev_err(&sdev->interface->dev,
342 usbip_event_add(&sdev->ud, SDEV_EVENT_ERROR_TCP);
350 spin_lock_irqsave(&sdev->priv_lock, flags);
352 list_for_each_entry_safe(unlink, tmp, &sdev->unlink_free, list) {
357 spin_unlock_irqrestore(&sdev->priv_lock, flags);
365 struct stub_device *sdev = container_of(ud, struct stub_device, ud);
385 if (stub_send_ret_submit(sdev) < 0)
388 if (stub_send_ret_unlink(sdev) < 0)
391 wait_event_interruptible(sdev->tx_waitq,
392 (!list_empty(&sdev->priv_tx) ||
393 !list_empty(&sdev->unlink_tx) ||