[PATCH 11/16] MTD: nand: make suspend work if device is accessed by kernel threads

Maxim Levitsky maximlevitsky at gmail.com
Fri Jan 29 09:50:58 EST 2010


Since all userspace threads are frozen when nand_suspend is called
 this means they aren't inside any nand function.
We don't call try_to_freeze in nand ether. Thus only user tha can be insize
the nand functions is an non freezeable kernel thread.
Thus we just wait till it finish the access to the device.

Signed-off-by: Maxim Levitsky <maximlevitsky at gmail.com>
---
 drivers/mtd/nand/nand_base.c |    3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 29e986e..961c98f 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -744,9 +744,6 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state)
 			chip->state = FL_PM_SUSPENDED;
 			spin_unlock(lock);
 			return 0;
-		} else {
-			spin_unlock(lock);
-			return -EAGAIN;
 		}
 	}
 	set_current_state(TASK_UNINTERRUPTIBLE);
-- 
1.6.3.3




More information about the linux-mtd mailing list