[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>
This commit is contained in:
@@ -254,10 +254,6 @@ static int s3c_pm_enter(suspend_state_t state)
|
||||
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 @@ static int s3c_pm_enter(suspend_state_t state)
|
||||
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,
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user