diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2016-05-09 10:59:01 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@google.com> | 2016-05-09 08:48:10 +0200 |
commit | c6cc8e73eb188156494e061bdb93966b0c7d9443 (patch) | |
tree | 84e4e3ae611c37f7425dd57d17d3f81c4dac163c /drivers/staging/greybus/operation.c | |
parent | a956d939af9e73d3375f52d5c5c63ab824e59c8b (diff) | |
download | linux-stable-c6cc8e73eb188156494e061bdb93966b0c7d9443.tar.gz linux-stable-c6cc8e73eb188156494e061bdb93966b0c7d9443.tar.bz2 linux-stable-c6cc8e73eb188156494e061bdb93966b0c7d9443.zip |
greybus: fw-download: Replace timer with delayed-work
The timeout-handlers need to call routines that can sleep and those
can't be called from interrupt context. The timer-handler is called in
interrupt context and so will hit a BUG() in vmalloc.c.
This patch moves away from timers to delayed-work, whose timeout handler
gets called in process context and can call the sleep-able routines
safely.
Note that this issue wasn't hit earlier when the initial patch for
timeouts was implemented due to some issues in the build arche_420. But
with the new build arche_440, the BUG started crashing the phone on
timeouts and so this fix is required.
Tested on EVT 1.5 by triggering fake timeouts, by not sending
release-firmware request for example. This is tested with build
arche_440.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Diffstat (limited to 'drivers/staging/greybus/operation.c')
0 files changed, 0 insertions, 0 deletions