summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue.h
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2015-08-10 15:54:26 -0700
committerSubhash Jadavani <subhashj@codeaurora.org>2016-05-31 15:27:14 -0700
commit73ba7de11a02393100b1cdf9e349f5d5c800f7f4 (patch)
tree7d51404dbdb721dda2ad65da31360a4cba4fee28 /include/linux/timerqueue.h
parent705de98157456301124bde37914d9f69bb133542 (diff)
mmc: card: fix active data requests handling
Clock scaling logic relies on active data request tracking variable to start/stop counting the bus busy period and we are also crashing the system if this tracking variable shows that new request tag is already in use. Set/Clear logic of this tracking variable is done only if clock scaling is enabled but consider following sequence of events: 1. Clock scaling is enabled 2. New request comes in which sets the appropriate tag in tracking variable. 3. Clock scaling gets disabled (for some reason) before the request completion. 4. Request gets completed but it doesn't clear the corresponding tag in tracking variable. 5. Clock scaling gets re-enabled. 6. New request is issued with the same tag which was never cleared from tracking variable hence we would hit the BUG_ON and system will crash. Fix this issue by doing set/clear of tracking variable irrespective of clock scaling state. Change-Id: Idffd1247ec1275e782e1ad9eb91faa81bc3ba347 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions