summaryrefslogtreecommitdiffstats
path: root/mm/sparse.c
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2017-10-11 19:39:15 +0200
committerJens Axboe <axboe@kernel.dk>2017-10-18 00:18:11 +0200
commit8cf466602028196b939255f1eb4e9817efd1db6d (patch)
treeb6c504e5f61c4d5712cf4f54e077de551e9467fa /mm/sparse.c
parentnullb: fix error return code in null_init() (diff)
downloadlinux-8cf466602028196b939255f1eb4e9817efd1db6d.tar.xz
linux-8cf466602028196b939255f1eb4e9817efd1db6d.zip
kyber: fix hang on domain token wait queue
When we're getting a domain token, if we fail to get a token on our first attempt, we put the current hardware queue on a wait queue and then try again just in case a token was freed after our initial attempt but before we got on the wait queue. If this second attempt succeeds, we currently leave the hardware queue on the wait queue. Usually this is okay; we'll just run the hardware queue one extra time when another token is freed. However, if the hardware queue doesn't have any other requests waiting, then when it it gets the extra wakeup, it won't have anything to free and therefore won't wake up any other hardware queues. If tokens are limited, then we won't make forward progress and the device will hang. Reported-by: Bin Zha <zhabin.zb@alibaba-inc.com> Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'mm/sparse.c')
0 files changed, 0 insertions, 0 deletions