Re: Bug#234976: kernel-source-2.6.4: Software Suspend doesn't work
From: Pavel Machek
Date: Tue Apr 27 2004 - 07:49:54 EST
Hi!
This should be better solution, could anyone test it? [It compiles,
and I'm out of time now].
Pavel
--- tmp/linux/arch/i386/mm/init.c 2004-04-05 10:45:11.000000000 +0200
+++ linux/arch/i386/mm/init.c 2004-04-27 14:44:00.000000000 +0200
@@ -343,6 +343,12 @@
#else
set_pgd(swapper_pg_dir+i, __pgd(0));
#endif
+#ifdef CONFIG_SOFTWARE_SUSPEND
+ {
+ extern char swsusp_pg_dir[PAGE_SIZE];
+ memcpy(swsusp_pg_dir, swapper_pg_dir, PAGE_SIZE);
+ }
+#endif
flush_tlb_all();
}
--- tmp/linux/arch/i386/power/cpu.c 2003-09-28 22:05:30.000000000 +0200
+++ linux/arch/i386/power/cpu.c 2004-04-27 14:44:03.000000000 +0200
@@ -35,6 +35,9 @@
unsigned long saved_context_esi, saved_context_edi;
unsigned long saved_context_eflags;
+/* Special page directory for resume */
+char swsusp_pg_dir[PAGE_SIZE];
+
extern void enable_sep_cpu(void *);
void save_processor_state(void)
--- tmp/linux/arch/i386/power/swsusp.S 2003-09-28 22:05:30.000000000 +0200
+++ linux/arch/i386/power/swsusp.S 2004-04-27 14:41:54.000000000 +0200
@@ -29,7 +38,7 @@
jmp .L1449
.p2align 4,,7
.L1450:
- movl $swapper_pg_dir-__PAGE_OFFSET,%ecx
+ movl $swsusp_pg_dir-__PAGE_OFFSET,%ecx
movl %ecx,%cr3
call do_magic_resume_1
--
934a471f20d6580d5aad759bf0d97ddc
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/