[Spice-devel] [PATCH] usbredirhost: host should not be marked as claimed on failure
Qiu Wenbo
qiuwenbo at kylinos.com.cn
Sat May 12 04:00:26 UTC 2018
This is a patch trying to fix a bug caused by usbredir. The problem is
when usbredir failed to claim all interface of a USB device it won't
set host->claimed to 0. After that, usbredirhost_release run by
usbredirhost_close will detach kernel driver and do a device reset even
some one is still using the USB device. Thus the second attempt will
success because device is released already. Some buggy USB device will
be unusable in such situation and require a replug.
To reproduce it:
1. launch a virtual machine and redirect a USB device to it
2. launch another virtual machine and redirect the same USB device to
it,the spice client will show you a message of "Device is busy" means
the device is already used by the virtual machine launched in step 1
3. do step 2 again, this time the same USB device will redirect
successfully
We have tested it on the latest version of remote-viewer and
virt-viewer.
On Wed, May 9, 2018 at 8:40 AM, Qiu Wenbo <qiuwenbo at kylinos.com.cn>
wrote:
> You can redirect a USB device which is already redirected to another
> virtual machine on the second attempt.
>
> Signed-off-by: Qiu Wenbo <qiuwenbo at kylinos.com.cn>
> ---
> usbredirhost/usbredirhost.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c
> index 3666227..e96d980 100644
> --- a/usbredirhost/usbredirhost.c
> +++ b/usbredirhost/usbredirhost.c
> @@ -557,6 +557,7 @@ static int usbredirhost_claim(struct usbredirhost
> *host, int initial_claim)
> ERROR("could not claim interface %d (configuration
> %d): %s",
> n, host->config->bConfigurationValue,
> libusb_error_name(r));
> + host->claimed = 0;
> return libusb_status_or_error_to_redir_status(host, r);
> }
> }
> --
> 2.17.0
>
>
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180512/f895bccd/attachment.html>
More information about the Spice-devel
mailing list