mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
mtd: blktrans: fix a race vs kthread_stop
There is small race window that could make kthread_stop hang forever. I found that while hacking the IR subsystem. Signed-off-by: Maxim Levitsky <maximlevisky@gmail.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
480792b7bf
commit
12aebf3e1a
1 changed files with 4 additions and 0 deletions
|
@ -133,6 +133,10 @@ static int mtd_blktrans_thread(void *arg)
|
|||
|
||||
if (!req && !(req = blk_fetch_request(rq))) {
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
|
||||
if (kthread_should_stop())
|
||||
set_current_state(TASK_RUNNING);
|
||||
|
||||
spin_unlock_irq(rq->queue_lock);
|
||||
schedule();
|
||||
spin_lock_irq(rq->queue_lock);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue