mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-15 01:08:19 +00:00
trivial: Ignore failure to release HID interface with a missing device
This commit is contained in:
parent
8c415e0568
commit
b4f8a5dc83
@ -136,6 +136,7 @@ fu_hid_device_close (FuUsbDevice *device, GError **error)
|
|||||||
FuHidDevicePrivate *priv = GET_PRIVATE (self);
|
FuHidDevicePrivate *priv = GET_PRIVATE (self);
|
||||||
GUsbDeviceClaimInterfaceFlags flags = 0;
|
GUsbDeviceClaimInterfaceFlags flags = 0;
|
||||||
GUsbDevice *usb_device = fu_usb_device_get_dev (device);
|
GUsbDevice *usb_device = fu_usb_device_get_dev (device);
|
||||||
|
g_autoptr(GError) error_local = NULL;
|
||||||
|
|
||||||
/* subclassed */
|
/* subclassed */
|
||||||
if (klass->close != NULL) {
|
if (klass->close != NULL) {
|
||||||
@ -146,8 +147,19 @@ fu_hid_device_close (FuUsbDevice *device, GError **error)
|
|||||||
/* release */
|
/* release */
|
||||||
if ((priv->flags & FU_HID_DEVICE_FLAG_NO_KERNEL_REBIND) == 0)
|
if ((priv->flags & FU_HID_DEVICE_FLAG_NO_KERNEL_REBIND) == 0)
|
||||||
flags |= G_USB_DEVICE_CLAIM_INTERFACE_BIND_KERNEL_DRIVER;
|
flags |= G_USB_DEVICE_CLAIM_INTERFACE_BIND_KERNEL_DRIVER;
|
||||||
if (!g_usb_device_release_interface (usb_device, priv->interface, flags, error)) {
|
if (!g_usb_device_release_interface (usb_device, priv->interface, flags, &error_local)) {
|
||||||
g_prefix_error (error, "failed to release HID interface: ");
|
if (g_error_matches (error_local,
|
||||||
|
G_USB_DEVICE_ERROR,
|
||||||
|
G_USB_DEVICE_ERROR_NO_DEVICE) ||
|
||||||
|
g_error_matches (error_local,
|
||||||
|
G_USB_DEVICE_ERROR,
|
||||||
|
G_USB_DEVICE_ERROR_INTERNAL)) {
|
||||||
|
g_debug ("ignoring: %s", error_local->message);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
g_propagate_prefixed_error (error,
|
||||||
|
g_steal_pointer (&error_local),
|
||||||
|
"failed to release HID interface: ");
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user