From 6add11eca7932c814cd1f4b9914b80594a0f5d5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Date: Tue, 22 Jul 2008 09:39:01 +0200 Subject: [PATCH] --- yaml --- r: 106447 b: refs/heads/master c: 4b5e33a7bf185c8d8568a807d9805fb155bcedd9 h: refs/heads/master i: 106445: e04b2ff7163efd911d00467c2284e069ec79beae 106443: a030c17811bde91a45c2a04d44a5da2df0a01d97 106439: bdf5d11106b45455738949fb12a293f7ec4c2914 106431: 5f5367d66e1db14eecec58385a90404f54aac2f0 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/maps/physmap.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 3e6aff7c3227..15cb401dd6b8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7b2491911540e4904498622fbee2e1a9e3120d2f +refs/heads/master: 4b5e33a7bf185c8d8568a807d9805fb155bcedd9 diff --git a/trunk/drivers/mtd/maps/physmap.c b/trunk/drivers/mtd/maps/physmap.c index 7c8cdf49deb6..42d844f8f6bf 100644 --- a/trunk/drivers/mtd/maps/physmap.c +++ b/trunk/drivers/mtd/maps/physmap.c @@ -201,8 +201,19 @@ static int physmap_flash_suspend(struct platform_device *dev, pm_message_t state int i; for (i = 0; i < MAX_RESOURCES && info->mtd[i]; i++) - if (info->mtd[i]->suspend) - ret |= info->mtd[i]->suspend(info->mtd[i]); + if (info->mtd[i]->suspend) { + ret = info->mtd[i]->suspend(info->mtd[i]); + if (ret) + goto fail; + } + + return 0; +fail: + for (--i; i >= 0; --i) + if (info->mtd[i]->suspend) { + BUG_ON(!info->mtd[i]->resume); + info->mtd[i]->resume(info->mtd[i]); + } return ret; }