From 754c17873cd40293f8be4beb5dea5aea2b5561bd Mon Sep 17 00:00:00 2001 From: Li Yang Date: Tue, 17 Nov 2009 14:45:49 -0800 Subject: [PATCH] --- yaml --- r: 176963 b: refs/heads/master c: 6b0d9a84124937f048bcb8b21313152b23063978 h: refs/heads/master i: 176961: 39d9df579fc6eb30c0094502349112dbf6c21e6b 176959: 804ae30f4b6f9cc7206571dd638d0e233f0930a8 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/nand/nand_base.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 60146c89a1fd..bf6ef7a94706 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4a58948669702639db7acecfa2105c3172d85c93 +refs/heads/master: 6b0d9a84124937f048bcb8b21313152b23063978 diff --git a/trunk/drivers/mtd/nand/nand_base.c b/trunk/drivers/mtd/nand/nand_base.c index 724cb2c9ad3f..8f2958fe2148 100644 --- a/trunk/drivers/mtd/nand/nand_base.c +++ b/trunk/drivers/mtd/nand/nand_base.c @@ -740,8 +740,14 @@ nand_get_device(struct nand_chip *chip, struct mtd_info *mtd, int new_state) return 0; } if (new_state == FL_PM_SUSPENDED) { - spin_unlock(lock); - return (chip->state == FL_PM_SUSPENDED) ? 0 : -EAGAIN; + if (chip->controller->active->state == FL_PM_SUSPENDED) { + chip->state = FL_PM_SUSPENDED; + spin_unlock(lock); + return 0; + } else { + spin_unlock(lock); + return -EAGAIN; + } } set_current_state(TASK_UNINTERRUPTIBLE); add_wait_queue(wq, &wait);