From: Hans de Goede Date: Fri, 14 Dec 2012 13:35:44 +0000 (+0100) Subject: usbredir: Verify we have 32 bits bulk length cap when redirecting to xhci X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d3aea641a4002e0abe940c65d318ef38eda245df;p=people%2Fliuw%2Fqemu.git usbredir: Verify we have 32 bits bulk length cap when redirecting to xhci The xhci-hcd may submit bulk transfers > 65535 bytes even when not using bulk-in pipeling, so usbredir can only be used in combination with an xhci hcd if the client has the 32 bits bulk length capability. Signed-off-by: Hans de Goede Signed-off-by: Gerd Hoffmann --- diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 855c76563a..566737d8f5 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -979,6 +979,8 @@ static void usbredir_do_attach(void *opaque) if ((dev->dev.port->speedmask & USB_SPEED_MASK_SUPER) && !( usbredirparser_peer_has_cap(dev->parser, usb_redir_cap_ep_info_max_packet_size) && + usbredirparser_peer_has_cap(dev->parser, + usb_redir_cap_32bits_bulk_length) && usbredirparser_peer_has_cap(dev->parser, usb_redir_cap_64bits_ids))) { ERROR("usb-redir-host lacks capabilities needed for use with XHCI\n");