mirror of
https://git.proxmox.com/git/fwupd
synced 2025-08-07 21:45:04 +00:00
Skip cleanup after device is done updating if will-disappear
is set (Fixes: #1529)
This fixes a regression introduced by 2031ce3bf6
that leads to:
```
USB error on device 2dc8:5750 : No such device (it may have been disconnected) [-4]
```
This commit is contained in:
parent
8b044c6cb3
commit
e2b8a2797e
@ -512,8 +512,14 @@ fu_ebitdo_device_write_firmware (FuDevice *device,
|
|||||||
/* when doing a soft-reboot the device does not re-enumerate properly
|
/* when doing a soft-reboot the device does not re-enumerate properly
|
||||||
* so manually reboot the GUsbDevice */
|
* so manually reboot the GUsbDevice */
|
||||||
fu_device_set_status (device, FWUPD_STATUS_DEVICE_RESTART);
|
fu_device_set_status (device, FWUPD_STATUS_DEVICE_RESTART);
|
||||||
if (!g_usb_device_reset (usb_device, error)) {
|
if (!g_usb_device_reset (usb_device, &error_local)) {
|
||||||
g_prefix_error (error, "failed to force-reset device: ");
|
g_prefix_error (&error_local, "failed to force-reset device: ");
|
||||||
|
if (fu_device_has_flag (device, FWUPD_DEVICE_FLAG_WILL_DISAPPEAR)) {
|
||||||
|
fu_device_set_remove_delay (device, 0);
|
||||||
|
g_debug ("%s", error_local->message);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
g_propagate_error (error, g_steal_pointer (&error_local));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1872,7 +1872,14 @@ fu_engine_device_cleanup (FuEngine *self,
|
|||||||
FwupdInstallFlags flags,
|
FwupdInstallFlags flags,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
g_autoptr(FuDeviceLocker) locker = fu_device_locker_new (device, error);
|
g_autoptr(FuDeviceLocker) locker = NULL;
|
||||||
|
|
||||||
|
if (fu_device_has_flag (device, FWUPD_DEVICE_FLAG_WILL_DISAPPEAR)) {
|
||||||
|
g_debug ("skipping device cleanup due to will-disappear flag");
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
locker = fu_device_locker_new (device, error);
|
||||||
if (locker == NULL)
|
if (locker == NULL)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return fu_device_cleanup (device, flags, error);
|
return fu_device_cleanup (device, flags, error);
|
||||||
|
Loading…
Reference in New Issue
Block a user