On Sun, Dec 23, 2012 at 6:33 AM, H. Peter Anvin <h...@zytor.com> wrote:
> Explanation please?
>

you have following change in the patch

        /* Finally jump to run C code and to be on real kernel address
         * Since we are running on identity-mapped space we have to jump
         * to the full 64bit address, this is only possible as indirect
         * jump.  In addition we need to ensure %cs is set so we make this
-        * a far return.
+        * a far jump.
         */
-       movq    initial_code(%rip),%rax
        pushq   $0              # fake return address to stop unwinder
-       pushq   $__KERNEL_CS    # set correct cs
-       pushq   %rax            # target address in negative space
-       lretq
+       /* gas 2.22 is buggy and mis-assembles ljmpq */
+       rex64 ljmp *initial_code(%rip)

 #ifdef CONFIG_HOTPLUG_CPU
 /*

remove that change, AMD systems works again.

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to