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} |