[ARM] S3C: Do not kmalloc/kfree during inner suspend code.

The PM CRC checking code kmallocs an area to save a set of
CRC values during suspend. This triggers a warning due to the
call of a function that might sleep whilst the system is not
in a valid state to do so.

Move the allocation and free to points in the suspend and resume
process where they can call a function that might-sleep.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
diff --git a/arch/arm/plat-s3c/pm.c b/arch/arm/plat-s3c/pm.c
index 78bf50a..a0ca18a 100644
--- a/arch/arm/plat-s3c/pm.c
+++ b/arch/arm/plat-s3c/pm.c
@@ -254,10 +254,6 @@
 		return -EINVAL;
 	}
 
-	/* prepare check area if configured */
-
-	s3c_pm_check_prepare();
-
 	/* store the physical address of the register recovery block */
 
 	s3c_sleep_save_phys = virt_to_phys(regs_save);
@@ -329,8 +325,23 @@
 	return 0;
 }
 
+static int s3c_pm_prepare(void)
+{
+	/* prepare check area if configured */
+
+	s3c_pm_check_prepare();
+	return 0;
+}
+
+static void s3c_pm_finish(void)
+{
+	s3c_pm_check_cleanup();
+}
+
 static struct platform_suspend_ops s3c_pm_ops = {
 	.enter		= s3c_pm_enter,
+	.prepare	= s3c_pm_prepare,
+	.finish		= s3c_pm_finish,
 	.valid		= suspend_valid_only_mem,
 };