android_kernel_motorola_sm6225/arch
Eric W. Biederman 3d483f4757 [PATCH] Fix sync_tsc hang
sync_tsc was using smp_call_function to ask the boot processor to report
it's tsc value.  smp_call_function performs an IPI_send_allbutself which is
a broadcast ipi.  There is a window during processor startup during which
the target cpu has started and before it has initialized it's interrupt
vectors so it can properly process an interrupt.  Receveing an interrupt
during that window will triple fault the cpu and do other nasty things.

Why cli does not protect us from that is beyond me.

The simple fix is to match ia64 and provide a smp_call_function_single.
Which avoids the broadcast and is more efficient.

This certainly fixes the problem of getting stuck on boot which was
very easy to trigger on my SMP Hyperthreaded Xeon, and I think
it fixes it for the right reasons.

Minor changes by AK

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-07-29 15:01:13 -07:00
..
alpha [PATCH] new alpha syscalls 2005-07-27 18:24:24 -07:00
arm [ARM SMP] Ensure secondary CPUs see their pen release 2005-07-29 16:36:48 +01:00
arm26 [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
cris [PATCH] CRIS update: new subarchitecture v32 2005-07-27 16:26:01 -07:00
frv [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc... 2005-07-12 17:21:56 -04:00
h8300 [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
i386 [PATCH] mm: Ensure proper alignment for node_remap_start_pfn 2005-07-29 15:01:13 -07:00
ia64 [IA64] unwind.c uses wrong unat from switch_stack 2005-07-27 14:18:08 -07:00
m32r [PATCH] m32r: add missing Kconfig help text 2005-07-27 16:25:59 -07:00
m68k [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
m68knommu [PATCH] Don't export machine_restart, machine_halt, or machine_power_off. 2005-07-26 14:35:42 -07:00
mips [PATCH] mips: remove obsolete GIU driver for vr41xx 2005-07-27 16:25:58 -07:00
parisc [PATCH] Add pcibios_bus_to_resource for parisc 2005-07-27 16:25:51 -07:00
ppc [PATCH] ppc32: 8xx remove BROKEN Kconfig entry 2005-07-27 16:35:39 -07:00
ppc64 [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
s390 [PATCH] s390: cpu timer reset in machine check handler 2005-07-27 16:26:05 -07:00
sh [PATCH] try_to_freeze() call fixes 2005-07-27 16:25:49 -07:00
sh64 [PATCH] try_to_freeze() call fixes 2005-07-27 16:25:49 -07:00
sparc [SPARC]: Add inotify syscall entries. 2005-07-27 14:14:39 -07:00
sparc64 [SPARC64]: Fix ugly dependency on NR_CPUS being a power-of-2. 2005-07-27 16:08:44 -07:00
um [PATCH] uml: implement hostfs syncing 2005-07-28 21:46:05 -07:00
v850 [PATCH] v850: Update PCI support 2005-07-27 16:26:03 -07:00
x86_64 [PATCH] Fix sync_tsc hang 2005-07-29 15:01:13 -07:00
xtensa [PATCH] xtensa: use ssleep() instead of schedule_timeout() 2005-07-12 16:01:01 -07:00