[Spice-devel] [PATCH usbredir] Don't print warning when resetting a missing device
Frediano Ziglio
fziglio at redhat.com
Thu Aug 10 20:03:22 UTC 2017
>
> When usbredirhost clears the current device, it resets the device and
> attempts to re-attach the kernel driver for the device. The current
> device is cleared when the API user explicitly sets a new device with
> usbredirhost_set_device(). However, some API users call
> usbredirhost_set_device(..., NULL) to clear the current device when the
> redirected device has been unplugged. In this scenario, resetting the
> device will fail and print a warning to the terminal. Since this is an
> expected scenario, we should simply handle it rather than printing an
> warning.
>
> Resolves: rhbz#1442963
Acked-by: Frediano Ziglio <fziglio at redhat.com>
> ---
> usbredirhost/usbredirhost.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/usbredirhost/usbredirhost.c b/usbredirhost/usbredirhost.c
> index a6bf8b3..3666227 100644
> --- a/usbredirhost/usbredirhost.c
> +++ b/usbredirhost/usbredirhost.c
> @@ -604,7 +604,11 @@ static void usbredirhost_release(struct usbredirhost
> *host, int attach_drivers)
> if (!(host->quirks & QUIRK_DO_NOT_RESET)) {
> r = libusb_reset_device(host->handle);
> if (r != 0) {
> - ERROR("error resetting device: %s", libusb_error_name(r));
> + /* if we're releasing the device because it was removed,
> resetting
> + * will fail. Don't print a warning in this situation */
> + if (r != LIBUSB_ERROR_NO_DEVICE) {
> + ERROR("error resetting device: %s", libusb_error_name(r));
> + }
> return;
> }
> }
More information about the Spice-devel
mailing list