firmware/br-ext-chip-allwinner/board/v83x/kernel/patches/00000-arch_arm_kernel_suspe...

19 lines
582 B
Diff

diff -drupN a/arch/arm/kernel/suspend.c b/arch/arm/kernel/suspend.c
--- a/arch/arm/kernel/suspend.c 2018-08-06 17:23:04.000000000 +0300
+++ b/arch/arm/kernel/suspend.c 2022-06-12 05:28:14.000000000 +0300
@@ -56,6 +56,14 @@ void __cpu_suspend_save(u32 *ptr, u32 pt
{
u32 *ctx = ptr;
+ /*
+ * ptr is the pointer of stack
+ */
+#if IS_ENABLED(CONFIG_VMAP_STACK)
+ if (is_vmalloc_addr(ptr))
+ *save_ptr = page_to_phys(vmalloc_to_page(ptr)) + offset_in_page(ptr);
+ else
+#endif
*save_ptr = virt_to_phys(ptr);
/* This must correspond to the LDM in cpu_resume() assembly */