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/