From: Linus Torvalds Date: Thu, 28 Feb 2013 00:16:39 +0000 (-0800) Subject: Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: v3.9-rc1~48 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=18a44a7ff1075ce5157ac07cde573aca6b5e9973;p=platform%2Fupstream%2Fkernel-adaptation-pc.git Merge branch 'x86-urgent-for-linus' of git://git./linux/kernel/git/tip/tip Pull more x86 fixes from Peter Anvin: "Additional x86 fixes. Three of these patches are pure documentation, two are pretty trivial; the remaining one fixes boot problems on some non-BIOS machines." * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86: Make sure we can boot in the case the BDA contains pure garbage x86, efi: Mark disable_runtime as __initdata x86, doc: Fix incorrect comment about 64-bit code segment descriptors doc, kernel-parameters: Document 'console=hvc' doc, xen: Mention 'earlyprintk=xen' in the documentation. ACPI: Overriding ACPI tables via initrd only works with an initrd and on X86 --- 18a44a7ff1075ce5157ac07cde573aca6b5e9973 diff --cc arch/x86/kernel/head_64.S index b7de3b2,37f5304..6859e96 --- a/arch/x86/kernel/head_64.S +++ b/arch/x86/kernel/head_64.S @@@ -47,8 -47,9 +47,8 @@@ L3_START_KERNEL = pud_index(__START_KER .code64 .globl startup_64 startup_64: - /* - * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 1, + * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 0, * and someone has loaded an identity mapped page table * for us. These identity mapped page tables map all of the * kernel pages and possibly all of memory. @@@ -155,14 -139,17 +155,14 @@@ /* Fixup phys_base */ addq %rbp, phys_base(%rip) - /* Due to ENTRY(), sometimes the empty space gets filled with - * zeros. Better take a jmp than relying on empty space being - * filled with 0x90 (nop) - */ - jmp secondary_startup_64 + movq $(early_level4_pgt - __START_KERNEL_map), %rax + jmp 1f ENTRY(secondary_startup_64) /* - * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 1, + * At this point the CPU runs in 64bit mode CS.L = 1 CS.D = 0, * and someone has loaded a mapped page table. * - * %esi holds a physical pointer to real_mode_data. + * %rsi holds a physical pointer to real_mode_data. * * We come here either from startup_64 (using physical addresses) * or from trampoline.S (using virtual addresses).