Am Donnerstag, den 02.07.2020, 14:44 +0900 schrieb Tetsuo Handa: > > usb_autopm_put_interface(desc->intf) > mutex_unlock(&desc->wlock); > + if (rv >= 0 && > + /* > + * needs both flags. We cannot do with one > + * because resetting it would cause a race > + * with write() yet we need to signal > + * a disconnect > + */ > + wait_event_killable_timeout(desc->wait, > + !test_bit(WDM_IN_USE, &desc->flags) || > + test_bit(WDM_DISCONNECTING, &desc->flags), 30 * HZ) == 0) { > + if (mutex_lock_killable(&desc->wlock) == 0) { > + if (!test_bit(WDM_DISCONNECTING, &desc->flags)) > + dev_err(&desc->intf->dev, > + "Tx URB not responding index=%d\n", > + le16_to_cpu(req->wIndex)); > + mutex_unlock(&desc->wlock); > + } > + } Hi, I am afraid this would 1. serialize the driver, harming performance 2. introduce a race with every timer a task is running Regards Oliver