#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);
return NULL;
}
-
-
static int vhci_send_cmd_submit(struct vhci_device *vdev)
{
struct vhci_priv *priv = NULL;
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);
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;
return total_size;
}
-
/*-------------------------------------------------------------------------*/
static struct vhci_unlink *dequeue_from_unlink_tx(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;
return -1;
}
-
usbip_dbg_vhci_tx("send txdata\n");
total_size += txsize;
return total_size;
}
-
/*-------------------------------------------------------------------------*/
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");
}