uwb: avoid radio controller reset loops
If a radio controller reset attempt occurs while a probe() or remove()
is in progress it fails and is retried endlessly, potentially preventing
the probe() or remove() from completing.
If a reset fails, sleep for a bit before retrying the reset. This
allows the probe()/remove() to complete.
Signed-off-by: David Vrabel <david.vrabel@csr.com>
diff --git a/drivers/uwb/umc-bus.c b/drivers/uwb/umc-bus.c
index 5ad3616..cdd6c8e 100644
--- a/drivers/uwb/umc-bus.c
+++ b/drivers/uwb/umc-bus.c
@@ -66,7 +66,7 @@
return -EAGAIN;
ret = device_for_each_child(parent, parent, umc_bus_pre_reset_helper);
if (ret >= 0)
- device_for_each_child(parent, parent, umc_bus_post_reset_helper);
+ ret = device_for_each_child(parent, parent, umc_bus_post_reset_helper);
up(&parent->sem);
return ret;