android_kernel_xiaomi_sm8350/arch/x86/kernel
Thomas Gleixner 89039b37be x86: force timer broadcast on late AMD C1E detection
The 64bit SMP bootup is slightly different to the 32bit one. It enables
the boot CPU local APIC timer before all CPUs are brought up. Some AMD C1E
systems have the C1E feature flag only set in the secondary CPU. Due to
the early enable of the boot CPU local APIC timer the APIC timer is
registered as a fully functional device. When we detect the wreckage during
the bringup of the secondary CPU, we need to force the boot CPU into
broadcast mode. 

Check the C1E caused APIC timer disable, when the secondary APIC timer is
initialized. If the boot CPU APIC timer was registered as a functional
clock event device, then fix this up and utilize the
CLOCK_EVT_NOTIFY_BROADCAST_FORCE mechanism to force the already
registered boot CPU APIC timer into broadcast mode.

Tested by force injecting the failure mode.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2007-10-14 22:57:45 +02:00
..
acpi
cpu Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpufreq
.gitignore
alternative.c x86: fix missing include for vsyscall 2007-10-14 22:57:45 +02:00
aperture_64.c
apic_32.c
apic_64.c x86: force timer broadcast on late AMD C1E detection 2007-10-14 22:57:45 +02:00
apm_32.c
asm-offsets_32.c
asm-offsets_64.c
asm-offsets.c
audit_64.c
bootflag.c
bugs_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
cpuid.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash_32.c
crash_64.c
crash_dump_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
crash_dump_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
doublefault_32.c
e820_32.c
e820_64.c
early_printk.c
early-quirks_64.c
efi_32.c
efi_stub_32.S
entry_32.S
entry_64.S
genapic_64.c
genapic_flat_64.c
geode_32.c
head64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
head_32.S
head_64.S
hpet.c
i386_ksyms_32.c
i387_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i387_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8237.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8253.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
i8259_32.c
i8259_64.c
init_task_32.c
init_task_64.c
io_apic_32.c
io_apic_64.c
ioport_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ioport_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
irq_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
k8.c
kprobes_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
kprobes_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ldt_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ldt_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
machine_kexec_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
machine_kexec_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
Makefile
Makefile_32
Makefile_64
mca_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
mce_64.c
mce_amd_64.c
mce_intel_64.c
mfgpt_32.c
microcode.c
module_32.c
module_64.c
mpparse_32.c
mpparse_64.c
msr.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
nmi_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
nmi_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
numaq_32.c
paravirt_32.c
pci-calgary_64.c
pci-dma_32.c
pci-dma_64.c
pci-gart_64.c
pci-nommu_64.c
pci-swiotlb_64.c
pcspeaker.c
pmtimer_64.c
process_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
process_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ptrace_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
ptrace_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
quirks.c
reboot_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
reboot_64.c
reboot_fixups_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
relocate_kernel_32.S
relocate_kernel_64.S
scx200_32.c long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
setup64.c
setup_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
setup_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
sigframe_32.h
signal_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
signal_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
smp_32.c
smp_64.c
smpboot_32.c
smpboot_64.c x86: move local APIC timer init to the end of start_secondary() 2007-10-14 22:57:45 +02:00
smpcommon_32.c
srat_32.c
stacktrace.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
summit_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
suspend_64.c
suspend_asm_64.S
sys_i386_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
sys_x86_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
syscall_64.c
syscall_table_32.S
sysenter_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tce_64.c
time_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
time_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
topology.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
trampoline_32.S
trampoline_64.S
traps_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
traps_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tsc_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
tsc_64.c
tsc_sync.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
verify_cpu_64.S
vm86_32.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vmi_32.c
vmiclock_32.c
vmlinux_32.lds.S
vmlinux_64.lds.S
vmlinux.lds.S
vsmp_64.c
vsyscall_32.lds.S
vsyscall_32.S
vsyscall_64.c Delete filenames in comments. 2007-10-13 10:01:23 -07:00
vsyscall-int80_32.S
vsyscall-note_32.S
vsyscall-sigreturn_32.S
vsyscall-sysenter_32.S
x8664_ksyms_64.c