clean acpi wakeup code after merge
Subsystems (3)
PATCH 2/2 clean acpi wakeup code after merge
This remove unsued pmode_* entry in wakeup header and saved_*dt in wakeup_32.
---
arch/x86/kernel/acpi/realmode/wakeup.S | 8 -------- arch/x86/kernel/acpi/realmode/wakeup.h | 11 +---------- arch/x86/kernel/acpi/sleep.c | 2 -- arch/x86/kernel/acpi/wakeup_32.S | 24 +----------------------- 4 files changed, 2 insertions(+), 43 deletions(-)
arch/x86/kernel/acpi/realmode/wakeup.S +0 -0
@@ -20,14 +20,6 @@ _start:
.globl wakeup_headerwakeup_header:video_mode: .short 0 /* Video mode number */
-pmode_return: .byte 0x66, 0xea /* ljmpl */
- .long 0 /* offset goes here */
- .short __KERNEL_CS
-pmode_cr0: .long 0 /* Saved %cr0 */
-pmode_cr3: .long 0 /* Saved %cr3 */
-pmode_cr4: .long 0 /* Saved %cr4 */
-pmode_efer: .quad 0 /* Saved EFER */
-pmode_gdt: .quad 0realmode_flags: .long 0real_magic: .long 0trampoline_segment: .word 0
arch/x86/kernel/acpi/realmode/wakeup.h +0 -0
@@ -12,18 +12,9 @@
/* This must match data at wakeup.S */
struct wakeup_header {
u16 video_mode; /* Video mode number */
- u16 _jmp1; /* ljmpl opcode, 32-bit only */
- u32 pmode_entry; /* Protected mode resume point, 32-bit only */
- u16 _jmp2; /* CS value, 32-bit only */
- u32 pmode_cr0; /* Protected mode cr0 */
- u32 pmode_cr3; /* Protected mode cr3 */
- u32 pmode_cr4; /* Protected mode cr4 */
- u32 pmode_efer_low; /* Protected mode EFER */
- u32 pmode_efer_high;
- u64 pmode_gdt; u32 realmode_flags; u32 real_magic; - u16 trampoline_segment; /* segment with trampoline code, 64-bit only */ + u16 trampoline_segment; /* segment with trampoline code */ u8 _pad1; u8 wakeup_jmp; u16 wakeup_jmp_off;
arch/x86/kernel/acpi/sleep.c +0 -0
@@ -67,8 +67,6 @@ int acpi_save_state_mem(void)
header->wakeup_gdt[2] = GDT_ENTRY(0x8093, acpi_wakeup_address, 0xfffff);
- header->pmode_cr0 = read_cr0();
- header->pmode_cr4 = read_cr4_safe(); header->realmode_flags = acpi_realmode_flags; header->real_magic = 0x12345678; header->trampoline_segment = trampoline_address() >> 4;
arch/x86/kernel/acpi/wakeup_32.S +0 -0
@@ -17,17 +17,7 @@ wakeup_pmode_return:
movw %ax, %fs movw %ax, %gs
- # reload the gdt, as we need the full 32 bit address
- lgdt saved_gdt
- lidt saved_idt
- lldt saved_ldt
- ljmp $(__KERNEL_CS), $1f
-1:
- movl %cr3, %eax
- movl %eax, %cr3
- wbinvd
-
- # and restore the stack ... but you need gdt for this to work
+ # and restore the stack ...
movl saved_context_esp, %esp
movl %cs:saved_magic, %eax
@@ -44,11 +34,6 @@ bogus_magic:
save_registers:
- sgdt saved_gdt
- sidt saved_idt
- sldt saved_ldt
- str saved_tss
-
leal 4(%esp), %eax
movl %eax, saved_context_esp
movl %ebx, saved_context_ebx
@@ -91,10 +76,3 @@ ret_point:
ALIGNENTRY(saved_magic) .long 0ENTRY(saved_eip) .long 0
-
-# saved registers
-saved_gdt: .long 0,0
-saved_idt: .long 0,0
-saved_ldt: .long 0
-saved_tss: .long 0
-
Signature · 1 line
1.7.4.1
Quoted 5 lines · matthieu castet
This remove unsued pmode_* entry in wakeup header and saved_*dt in
wakeup_32.Signed-off-by Matthieu CASTET <[email protected]>
Quoted 110 lines
--- arch/x86/kernel/acpi/realmode/wakeup.S | 8 -------- arch/x86/kernel/acpi/realmode/wakeup.h | 11 +---------- arch/x86/kernel/acpi/sleep.c | 2 -- arch/x86/kernel/acpi/wakeup_32.S | 24 +----------------------- 4 files changed, 2 insertions(+), 43 deletions(-)arch/x86/kernel/acpi/realmode/wakeup.S +0
-8@@ -20,14 +20,6 @@ _start: .globl wakeup_header wakeup_header: video_mode: .short 0 /* Video mode number */ -pmode_return: .byte 0x66, 0xea /* ljmpl */ - .long 0 /* offset goes here */ - .short __KERNEL_CS -pmode_cr0: .long 0 /* Saved %cr0 */ -pmode_cr3: .long 0 /* Saved %cr3 */ -pmode_cr4: .long 0 /* Saved %cr4 */ -pmode_efer: .quad 0 /* Saved EFER */ -pmode_gdt: .quad 0 realmode_flags: .long 0 real_magic: .long 0 trampoline_segment: .word 0arch/x86/kernel/acpi/realmode/wakeup.h +1
-10@@ -12,18 +12,9 @@/* This must match data at wakeup.S */ struct wakeup_header {u16 video_mode;/* Video mode number */ -u16 _jmp1;/* ljmpl opcode, 32-bit only */ -u32 pmode_entry;/* Protected mode resume point, 32-bit only */ -u16 _jmp2;/* CS value, 32-bit only */ -u32 pmode_cr0;/* Protected mode cr0 */ -u32 pmode_cr3;/* Protected mode cr3 */ -u32 pmode_cr4;/* Protected mode cr4 */ -u32 pmode_efer_low;/* Protected mode EFER */ -u32 pmode_efer_high; -u64 pmode_gdt;u32 realmode_flags;u32 real_magic; -u16 trampoline_segment;/* segment with trampoline code, 64-bit only */ +u16 trampoline_segment;/* segment with trampoline code */ u8 _pad1;u8 wakeup_jmp;u16 wakeup_jmp_off;arch/x86/kernel/acpi/sleep.c +0
-2@@ -67,8 +67,6 @@ int acpi_save_state_mem(void) header->wakeup_gdt[2 ] =GDT_ENTRY (0x8093 , acpi_wakeup_address,0xfffff ); - header->pmode_cr0 =read_cr0 (); - header->pmode_cr4 =read_cr4_safe (); header->realmode_flags = acpi_realmode_flags; header->real_magic =0x12345678 ; header->trampoline_segment =trampoline_address () >>4 ;arch/x86/kernel/acpi/wakeup_32.S +1
-23@@ -17,17 +17,7 @@ wakeup_pmode_return: movw %ax, %fs movw %ax, %gs - # reload the gdt, as we need the full 32 bit address - lgdt saved_gdt - lidt saved_idt - lldt saved_ldt - ljmp $(__KERNEL_CS), $1f -1: - movl %cr3, %eax - movl %eax, %cr3 - wbinvd - - # and restore the stack ... but you need gdt for this to work + # and restore the stack ... movl saved_context_esp, %esp movl %cs:saved_magic, %eax@@ -44,11 +34,6 @@ bogus_magic: save_registers: - sgdt saved_gdt - sidt saved_idt - sldt saved_ldt - str saved_tss - leal 4(%esp), %eax movl %eax, saved_context_esp movl %ebx, saved_context_ebx@@ -91,10 +76,3 @@ ret_point: ALIGN ENTRY(saved_magic) .long 0 ENTRY(saved_eip) .long 0 - -# saved registers -saved_gdt: .long 0,0 -saved_idt: .long 0,0 -saved_ldt: .long 0 -saved_tss: .long 0 -