|
@@ -23,23 +23,20 @@
|
|
|
#include "usbip_common.h"
|
|
|
#include "vhci.h"
|
|
|
|
|
|
-
|
|
|
static void setup_cmd_submit_pdu(struct usbip_header *pdup, struct urb *urb)
|
|
|
{
|
|
|
struct vhci_priv *priv = ((struct vhci_priv *)urb->hcpriv);
|
|
|
struct vhci_device *vdev = priv->vdev;
|
|
|
|
|
|
usbip_dbg_vhci_tx("URB, local devnum %u, remote devid %u\n",
|
|
|
- usb_pipedevice(urb->pipe), vdev->devid);
|
|
|
+ usb_pipedevice(urb->pipe), vdev->devid);
|
|
|
|
|
|
- pdup->base.command = USBIP_CMD_SUBMIT;
|
|
|
- pdup->base.seqnum = priv->seqnum;
|
|
|
- pdup->base.devid = vdev->devid;
|
|
|
- if (usb_pipein(urb->pipe))
|
|
|
- pdup->base.direction = USBIP_DIR_IN;
|
|
|
- else
|
|
|
- pdup->base.direction = USBIP_DIR_OUT;
|
|
|
- pdup->base.ep = usb_pipeendpoint(urb->pipe);
|
|
|
+ pdup->base.command = USBIP_CMD_SUBMIT;
|
|
|
+ pdup->base.seqnum = priv->seqnum;
|
|
|
+ pdup->base.devid = vdev->devid;
|
|
|
+ pdup->base.direction = usb_pipein(urb->pipe) ?
|
|
|
+ USBIP_DIR_IN : USBIP_DIR_OUT;
|
|
|
+ pdup->base.ep = usb_pipeendpoint(urb->pipe);
|
|
|
|
|
|
usbip_pack_pdu(pdup, urb, USBIP_CMD_SUBMIT, 1);
|
|
|
|
|
@@ -65,8 +62,6 @@ static struct vhci_priv *dequeue_from_priv_tx(struct vhci_device *vdev)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
static int vhci_send_cmd_submit(struct vhci_device *vdev)
|
|
|
{
|
|
|
struct vhci_priv *priv = NULL;
|
|
@@ -90,7 +85,6 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
|
|
|
|
|
|
usbip_dbg_vhci_tx("setup txdata urb %p\n", urb);
|
|
|
|
|
|
-
|
|
|
/* 1. setup usbip_header */
|
|
|
setup_cmd_submit_pdu(&pdu_header, urb);
|
|
|
usbip_header_correct_endian(&pdu_header, 1);
|
|
@@ -125,7 +119,7 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
|
|
|
ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, iov, 3, txsize);
|
|
|
if (ret != txsize) {
|
|
|
usbip_uerr("sendmsg failed!, retval %d for %zd\n", ret,
|
|
|
- txsize);
|
|
|
+ txsize);
|
|
|
kfree(iso_buffer);
|
|
|
usbip_event_add(&vdev->ud, VDEV_EVENT_ERROR_TCP);
|
|
|
return -1;
|
|
@@ -140,7 +134,6 @@ static int vhci_send_cmd_submit(struct vhci_device *vdev)
|
|
|
return total_size;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
static struct vhci_unlink *dequeue_from_unlink_tx(struct vhci_device *vdev)
|
|
@@ -182,7 +175,6 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
|
|
|
|
|
|
usbip_dbg_vhci_tx("setup cmd unlink, %lu\n", unlink->seqnum);
|
|
|
|
|
|
-
|
|
|
/* 1. setup usbip_header */
|
|
|
pdu_header.base.command = USBIP_CMD_UNLINK;
|
|
|
pdu_header.base.seqnum = unlink->seqnum;
|
|
@@ -204,7 +196,6 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
usbip_dbg_vhci_tx("send txdata\n");
|
|
|
|
|
|
total_size += txsize;
|
|
@@ -213,7 +204,6 @@ static int vhci_send_cmd_unlink(struct vhci_device *vdev)
|
|
|
return total_size;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/*-------------------------------------------------------------------------*/
|
|
|
|
|
|
int vhci_tx_loop(void *data)
|
|
@@ -229,9 +219,9 @@ int vhci_tx_loop(void *data)
|
|
|
break;
|
|
|
|
|
|
wait_event_interruptible(vdev->waitq_tx,
|
|
|
- (!list_empty(&vdev->priv_tx) ||
|
|
|
- !list_empty(&vdev->unlink_tx) ||
|
|
|
- kthread_should_stop()));
|
|
|
+ (!list_empty(&vdev->priv_tx) ||
|
|
|
+ !list_empty(&vdev->unlink_tx) ||
|
|
|
+ kthread_should_stop()));
|
|
|
|
|
|
usbip_dbg_vhci_tx("pending urbs ?, now wake up\n");
|
|
|
}
|