diff options
author | David Vrabel <david.vrabel@csr.com> | 2009-08-25 11:41:06 -0400 |
---|---|---|
committer | David Vrabel <david.vrabel@csr.com> | 2009-08-26 07:39:29 -0400 |
commit | 0396c215f301e92677d1e9a064b405e31501dc1d (patch) | |
tree | a54229672abc6f244fcf184701b8a8bf98b70544 /drivers/uwb/umc-bus.c | |
parent | a9e75a389254801ca160b72c6e221e5bb7e35df9 (diff) |
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>
Diffstat (limited to 'drivers/uwb/umc-bus.c')
-rw-r--r-- | drivers/uwb/umc-bus.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/uwb/umc-bus.c b/drivers/uwb/umc-bus.c index 5ad36164c13b..cdd6c8efc9f8 100644 --- a/drivers/uwb/umc-bus.c +++ b/drivers/uwb/umc-bus.c | |||
@@ -66,7 +66,7 @@ int umc_controller_reset(struct umc_dev *umc) | |||
66 | return -EAGAIN; | 66 | return -EAGAIN; |
67 | ret = device_for_each_child(parent, parent, umc_bus_pre_reset_helper); | 67 | ret = device_for_each_child(parent, parent, umc_bus_pre_reset_helper); |
68 | if (ret >= 0) | 68 | if (ret >= 0) |
69 | device_for_each_child(parent, parent, umc_bus_post_reset_helper); | 69 | ret = device_for_each_child(parent, parent, umc_bus_post_reset_helper); |
70 | up(&parent->sem); | 70 | up(&parent->sem); |
71 | 71 | ||
72 | return ret; | 72 | return ret; |