Revision 6ef3ccd1

b/hw/usb/redirect.c
737 737
                                      uint8_t ep)
738 738
{
739 739
    struct usb_redir_bulk_packet_header bulk_packet;
740
    size_t size = (p->combined) ? p->combined->iov.size : p->iov.size;
740
    size_t size = usb_packet_size(p);
741 741
    const int maxp = dev->endpoint[EP2I(ep)].max_packet_size;
742 742

  
743 743
    if (usbredir_already_in_flight(dev, p->id)) {
......
771 771
                                        &bulk_packet, NULL, 0);
772 772
    } else {
773 773
        uint8_t buf[size];
774
        if (p->combined) {
775
            iov_to_buf(p->combined->iov.iov, p->combined->iov.niov,
776
                       0, buf, size);
777
        } else {
778
            usb_packet_copy(p, buf, size);
779
        }
774
        usb_packet_copy(p, buf, size);
780 775
        usbredir_log_data(dev, "bulk data out:", buf, size);
781 776
        usbredirparser_send_bulk_packet(dev->parser, p->id,
782 777
                                        &bulk_packet, buf, size);
......
1830 1825

  
1831 1826
    p = usbredir_find_packet_by_id(dev, ep, id);
1832 1827
    if (p) {
1833
        size_t size = (p->combined) ? p->combined->iov.size : p->iov.size;
1828
        size_t size = usb_packet_size(p);
1834 1829
        usbredir_handle_status(dev, p, bulk_packet->status);
1835 1830
        if (data_len > 0) {
1836 1831
            usbredir_log_data(dev, "bulk data in:", data, data_len);
......
1840 1835
                p->status = USB_RET_BABBLE;
1841 1836
                data_len = len = size;
1842 1837
            }
1843
            if (p->combined) {
1844
                iov_from_buf(p->combined->iov.iov, p->combined->iov.niov,
1845
                             0, data, data_len);
1846
            } else {
1847
                usb_packet_copy(p, data, data_len);
1848
            }
1838
            usb_packet_copy(p, data, data_len);
1849 1839
        }
1850 1840
        p->actual_length = len;
1851 1841
        if (p->pid == USB_TOKEN_IN && p->ep->pipeline) {

Also available in: Unified diff