ACPI/S3: simplify assembly code a bit

Pavel Machek (pavel@ucw.cz)
Thu, 12 Dec 2002 21:37:18 +0100


Hi!

Kill unused variable and simplify assembly portion a bit... Please
apply,

Pavel

--- clean/arch/i386/kernel/acpi.c 2002-12-11 23:33:53.000000000 +0100
+++ linux-swsusp/arch/i386/kernel/acpi.c 2002-12-12 19:05:13.000000000 +0100
@@ -448,10 +448,11 @@

/* address in low memory of the wakeup routine. */
unsigned long acpi_wakeup_address = 0;
+extern char wakeup_start, wakeup_end;

extern unsigned long FASTCALL(acpi_copy_wakeup_routine(unsigned long));

-static void init_low_mapping(pgd_t *pgd, int pgd_ofs, int pgd_limit)
+static void init_low_mapping(pgd_t *pgd, int pgd_limit)
{
int pgd_ofs = 0;

@@ -473,7 +474,8 @@
panic("S3 and PAE do not like each other for now.");
return 1;
#endif
- init_low_mapping(swapper_pg_dir, 0, USER_PTRS_PER_PGD);
+ init_low_mapping(swapper_pg_dir, USER_PTRS_PER_PGD);
+ memcpy((void *) acpi_wakeup_address, &wakeup_start, &wakeup_end - &wakeup_start);
acpi_copy_wakeup_routine(acpi_wakeup_address);

return 0;
@@ -506,7 +508,6 @@
*/
void __init acpi_reserve_bootmem(void)
{
- extern char wakeup_start, wakeup_end;
acpi_wakeup_address = (unsigned long)alloc_bootmem_low(PAGE_SIZE);
if ((&wakeup_end - &wakeup_start) > PAGE_SIZE)
printk(KERN_CRIT "ACPI: Wakeup code way too big, will crash on attempt to suspend\n");
--- clean/arch/i386/kernel/acpi_wakeup.S 2002-12-11 23:33:53.000000000 +0100
+++ linux-swsusp/arch/i386/kernel/acpi_wakeup.S 2002-12-05 18:02:30.000000000 +0100
@@ -239,20 +241,11 @@
#
ENTRY(acpi_copy_wakeup_routine)

- pushl %esi
- pushl %edi
-
sgdt saved_gdt
sidt saved_idt
sldt saved_ldt
str saved_tss

- movl %eax, %edi
- leal wakeup_start, %esi
- movl $(wakeup_end - wakeup_start + 3) >> 2, %ecx
-
- rep ; movsl
-
movl %cr3, %edx
movl %edx, real_save_cr3 - wakeup_start (%eax)
movl %cr4, %edx
@@ -265,10 +258,6 @@
movl %edx, video_mode - wakeup_start (%eax)
movl $0x12345678, real_magic - wakeup_start (%eax)
movl $0x12345678, saved_magic
-
- # restore the regs we used
- popl %edi
- popl %esi
ret

.data

-- 
Worst form of spam? Adding advertisment signatures ala sourceforge.net.
What goes next? Inserting advertisment *into* email?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/