summaryrefslogtreecommitdiff
path: root/drivers/staging/greybus/bootrom.c
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2016-07-22 14:13:40 -0700
committerGreg Kroah-Hartman <gregkh@google.com>2016-07-22 15:25:18 -0700
commitcc90d6fce858cea167102380e57a63af2f75ec8b (patch)
tree4ee6ffd33e0568461c48b9186f4865ee5db3ce7d /drivers/staging/greybus/bootrom.c
parent633e45eaac40406739baae960d2c8abac40dbb83 (diff)
greybus: bootrom: Skip setting timeout in failure path of size request
The currently set value of next_request_type in the error path of gb_bootrom_firmware_size_request() is not correct, as it should have been NEXT_REQ_FIRMWARE_SIZE for the failure case (as we should be waiting for another similar request). But, if an error occurs in gb_bootrom_firmware_size_request(), then the ES3 bootrom will never be able to recover from it and send another request. And so there is no point waiting for another request and timing out. Skip doing that in error path. Reported-by: Johan Hovold <johan@hovoldconsulting.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/bootrom.c')
-rw-r--r--drivers/staging/greybus/bootrom.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/staging/greybus/bootrom.c b/drivers/staging/greybus/bootrom.c
index 309e0a7c865a..d16f13e0cb8d 100644
--- a/drivers/staging/greybus/bootrom.c
+++ b/drivers/staging/greybus/bootrom.c
@@ -223,9 +223,11 @@ unlock:
mutex_unlock(&bootrom->mutex);
queue_work:
- /* Refresh timeout */
- gb_bootrom_set_timeout(bootrom, NEXT_REQ_GET_FIRMWARE,
- NEXT_REQ_TIMEOUT_MS);
+ if (!ret) {
+ /* Refresh timeout */
+ gb_bootrom_set_timeout(bootrom, NEXT_REQ_GET_FIRMWARE,
+ NEXT_REQ_TIMEOUT_MS);
+ }
return ret;
}