Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b30d281 authored by Vitaly Wool's avatar Vitaly Wool Committed by Pierre Ossman
Browse files

mmc: fix "prev->state: 2 != TASK_RUNNING??" problem on SD/MMC card removal



Currently on SD/MMC card removal the system exhibits the following message (the platform is ARM Versatile):

    prev->state: 2 != TASK_RUNNING??
    mmcqd/762[CPU#0]: BUG in __schedule at linux-2.6/kernel/sched.c:3826

(akpm: someone tried to fix this, but it's still wrong)

Signed-off-by: default avatarVitaly Wool <vitalywool@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
parent f3a8efa9
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -78,8 +78,10 @@ static int mmc_queue_thread(void *d)
		spin_unlock_irq(q->queue_lock);
		spin_unlock_irq(q->queue_lock);


		if (!req) {
		if (!req) {
			if (kthread_should_stop())
			if (kthread_should_stop()) {
				set_current_state(TASK_RUNNING);
				break;
				break;
			}
			up(&mq->thread_sem);
			up(&mq->thread_sem);
			schedule();
			schedule();
			down(&mq->thread_sem);
			down(&mq->thread_sem);