diff options
Diffstat (limited to 'arch/x86_64/boot/compressed/head.S')
| -rw-r--r-- | arch/x86_64/boot/compressed/head.S | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86_64/boot/compressed/head.S b/arch/x86_64/boot/compressed/head.S index 1312bfaff306..9fd8030cc54f 100644 --- a/arch/x86_64/boot/compressed/head.S +++ b/arch/x86_64/boot/compressed/head.S | |||
| @@ -195,6 +195,11 @@ ENTRY(startup_64) | |||
| 195 | movl %eax, %ds | 195 | movl %eax, %ds |
| 196 | movl %eax, %es | 196 | movl %eax, %es |
| 197 | movl %eax, %ss | 197 | movl %eax, %ss |
| 198 | movl %eax, %fs | ||
| 199 | movl %eax, %gs | ||
| 200 | lldt %ax | ||
| 201 | movl $0x20, %eax | ||
| 202 | ltr %ax | ||
| 198 | 203 | ||
| 199 | /* Compute the decompressed kernel start address. It is where | 204 | /* Compute the decompressed kernel start address. It is where |
| 200 | * we were loaded at aligned to a 2M boundary. %rbp contains the | 205 | * we were loaded at aligned to a 2M boundary. %rbp contains the |
| @@ -295,6 +300,8 @@ gdt: | |||
| 295 | .quad 0x0000000000000000 /* NULL descriptor */ | 300 | .quad 0x0000000000000000 /* NULL descriptor */ |
| 296 | .quad 0x00af9a000000ffff /* __KERNEL_CS */ | 301 | .quad 0x00af9a000000ffff /* __KERNEL_CS */ |
| 297 | .quad 0x00cf92000000ffff /* __KERNEL_DS */ | 302 | .quad 0x00cf92000000ffff /* __KERNEL_DS */ |
| 303 | .quad 0x0080890000000000 /* TS descriptor */ | ||
| 304 | .quad 0x0000000000000000 /* TS continued */ | ||
| 298 | gdt_end: | 305 | gdt_end: |
| 299 | .bss | 306 | .bss |
| 300 | /* Stack for uncompression */ | 307 | /* Stack for uncompression */ |
