[PATCH] x86_64: Fix SMP bootup with CONFIG_KDUMP enabled
authorVivek Goyal <vgoyal@in.ibm.com>
Thu, 12 Jan 2006 02:35:20 +0000 (03:35 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 03:09:58 +0000 (19:09 -0800)
commit983d5dbdb2b38d024935f560a91cddcf704875f3
tree834cda0f26f3902aea74d1cd81a9202f78cc5f14
parent0d9cb75f2f41788a59bcd3dac30b264a4bebaf2e
[PATCH] x86_64: Fix SMP bootup with CONFIG_KDUMP enabled

o This fix was posted for i386 long back. Posting it for x86_64.

  http://marc.theaimsgroup.com/?l=linux-kernel&m=110380103229830&w=2

o This patch fixes the problem of secondary cpus boot up. This situation
  is faced when kernel is built for default locations like 16MB and
  onwards. In this configuration, only primary cpu (BP) comes and
  secondary cpus don't boot.

o Problem occurs because in trampoline code, lgdt is not able to load the
  GDT as it happens to be situated beyond 16MB. This is due to the fact
  that cpu is still in real mode and default operand size is 16bit.

o This patch uses lgdtl instead of lgdt to force operand size to 32
  instead of 16.

Signed-off-by: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/trampoline.S