mtd: nand: make suspend work if device is accessed by kernel threads.
Since all userspace threads are frozen at the time the nand_suspend is called, they aren't inside any nand function. We don't call try_to_freeze in nand ether. Thus the only user that can be inside the nand functions is an non freezeable kernel thread. Thus we can safely wait for it to finish. Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
026ec57886
commit
49ef3c6ee1
|
@ -773,9 +773,6 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
|
||||||
chip->state = FL_PM_SUSPENDED;
|
chip->state = FL_PM_SUSPENDED;
|
||||||
spin_unlock(lock);
|
spin_unlock(lock);
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
|
||||||
spin_unlock(lock);
|
|
||||||
return -EAGAIN;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_current_state(TASK_UNINTERRUPTIBLE);
|
set_current_state(TASK_UNINTERRUPTIBLE);
|
||||||
|
|
Loading…
Reference in New Issue