hibernate.c (767bf7e7a1e82a81c59778348d156993d0a6175d) hibernate.c (045ab94e10ee17038066d71abc8fdce719ab56f9)
1/*
2 * Hibernation support specific for ARM
3 *
4 * Derived from work on ARM hibernation support by:
5 *
6 * Ubuntu project, hibernation support for mach-dove
7 * Copyright (C) 2010 Nokia Corporation (Hiroshi Doyu)
8 * Copyright (C) 2010 Texas Instruments, Inc. (Teerth Reddy et al.)

--- 86 unchanged lines hidden (view full) ---

95/*
96 * Resume from the hibernation image.
97 * Due to the kernel heap / data restore, stack contents change underneath
98 * and that would make function calls impossible; switch to a temporary
99 * stack within the nosave region to avoid that problem.
100 */
101int swsusp_arch_resume(void)
102{
1/*
2 * Hibernation support specific for ARM
3 *
4 * Derived from work on ARM hibernation support by:
5 *
6 * Ubuntu project, hibernation support for mach-dove
7 * Copyright (C) 2010 Nokia Corporation (Hiroshi Doyu)
8 * Copyright (C) 2010 Texas Instruments, Inc. (Teerth Reddy et al.)

--- 86 unchanged lines hidden (view full) ---

95/*
96 * Resume from the hibernation image.
97 * Due to the kernel heap / data restore, stack contents change underneath
98 * and that would make function calls impossible; switch to a temporary
99 * stack within the nosave region to avoid that problem.
100 */
101int swsusp_arch_resume(void)
102{
103 extern void call_with_stack(void (*fn)(void *), void *arg, void *sp);
104 call_with_stack(arch_restore_image, 0,
105 resume_stack + ARRAY_SIZE(resume_stack));
106 return 0;
107}
103 call_with_stack(arch_restore_image, 0,
104 resume_stack + ARRAY_SIZE(resume_stack));
105 return 0;
106}