- Prior to this update, the usbredir network protocol caused a conflict with the libusb library. As a consequence, SPICE USB-redirection failed with the following errors in the virt-viewer tool: usbredirhost error: submitting bulk transfer on ep 02: -1" when trying to redirect one USB device to two guests simultaneously. This update modifies the underlying code to send the error message "Device is busy" and fail after the second attempt.
- Prior to this update, USB Request Blocks (URBs) from the user space were not allowed to have transfer buffers larger than an arbitrary maximum. As a consequence, attempting to redirect certain USB mass-storage devices could fail. This update modifies the underlying code to allow programs to submit URBs of any size. If there is not sufficient memory available, the submission fails with an ENOMEM error. In addition, this update also replaces the old limits on individual transfer buffers with a single global limit of 16MB on the total amount of memory in use by the USB file system (usbfs) to prevent programs from submitting a lot of small URBs and so using all the DMA-able kernel memory.