linux/arch/arm/kernel
Thomas Gleinxer eb0474544b ARM: 7133/1: SMP: fix per cpu timer setup before the cpu is marked online
The problem is related to the early enabling of interrupts and the
per cpu timer setup before the cpu is marked online. This doesn't
need to be done in order to call calibrate_delay().

calibrate_delay() monitors jiffies, which are updated from the CPU
which is waiting for the new CPU to set the online bit.

So simply calibrate_delay() can be called on the new CPU just from
the interrupt disabled region and move the local timer setup after
stored the cpu data and before enabling interrupts.

This solves both the cpu_online vs. cpu_active problem and the
affinity setting of the per cpu timers.

Signed-off-by: Thomas Gleinxer <tglx@linutronix.de>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2011-10-23 21:22:58 +01:00
..
.gitignore
armksyms.c ARM: 7068/1: process: change from __backtrace to dump_stack in show_regs 2011-10-17 09:12:41 +01:00
arthur.c
asm-offsets.c ARM: vfp: fix a hole in VFP thread migration 2011-07-09 17:22:12 +01:00
atags.c
atags.h
bios32.c PCI: Make the struct pci_dev * argument of pci_fixup_irqs const. 2011-07-22 08:26:06 -07:00
calls.S All Arch: remove linkage for sys_nfsservctl system call 2011-08-26 15:09:58 -07:00
compat.c ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
compat.h ARM: deprecate support for old way to pass kernel parameters 2010-07-07 16:38:36 +02:00
crash_dump.c crash_dump: export is_kdump_kernel to modules, consolidate elfcorehdr_addr, setup_elfcorehdr and saved_max_pfn 2011-03-23 19:47:19 -07:00
crunch-bits.S
crunch.c ARM: Convert VFP/Crunch/XscaleCP thread_release() to exit_thread() 2009-12-18 14:53:41 +00:00
debug.S ARM: 7137/1: Fix error upon adding LL debug 2011-10-20 22:03:57 +01:00
devtree.c irq: add irq_domain translation infrastructure 2011-07-28 01:32:04 -06:00
dma-isa.c ARM: dma-isa: request cascade channel after registering it 2009-12-24 18:34:08 +00:00
dma.c ARM: dma: add /proc/dma support to arch/arm/kernel/dma.c 2010-04-14 13:13:30 +01:00
early_printk.c ARM: Add an earlyprintk debug console 2009-12-09 10:02:18 +00:00
ecard.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
ecard.h
elf.c ARM: 6878/1: fix personality flag propagation across an exec 2011-04-14 09:15:24 +01:00
entry-armv.S ARM: 7031/1: entry: Fix Thumb-2 undef handling for multi-CPU kernels 2011-10-17 09:12:41 +01:00
entry-common.S ARM: 6952/1: fix lockdep warning of "unannotated irqs-off" 2011-06-06 10:56:22 +01:00
entry-header.S Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
etm.c ARM: 6838/1: etm: fix section mismatch warning 2011-03-28 19:01:17 +01:00
fiq.c ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
fiqasm.S ARM: 6938/1: fiq: Refactor {get,set}_fiq_regs() for Thumb-2 2011-05-26 10:31:06 +01:00
ftrace.c ARM: ftrace: graph tracer + dynamic ftrace 2010-11-19 21:43:27 +05:30
head-common.S arm/dt: Make __vet_atags also accept a dtb image 2011-05-11 15:12:32 +02:00
head-nommu.S ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state 2011-07-19 12:00:53 +01:00
head.S ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state 2011-07-19 12:00:53 +01:00
hw_breakpoint.c ARM: entry: avoid enabling interrupts in prefetch/data abort handlers 2011-07-02 10:56:00 +01:00
init_task.c
io.c
irq.c Merge branch 'next/devel' of ssh://master.kernel.org/pub/scm/linux/kernel/git/arm/linux-arm-soc 2011-07-26 17:41:04 -07:00
isa.c sysctl: Drop & in front of every proc_handler. 2009-11-18 08:37:40 -08:00
iwmmxt.S ARM: pxa: fix logic error in PJ4 iWMMXt handling 2011-08-11 10:10:26 +08:00
kgdb.c kgdb,arm: fix register dump 2010-10-29 13:14:40 -05:00
kprobes-arm.c ARM: kprobes: Remove now unused code 2011-07-13 17:32:51 +00:00
kprobes-common.c ARM: kprobes: Add alu_write_pc() 2011-07-13 17:32:48 +00:00
kprobes-thumb.c ARM: kprobes: Decode 32-bit Thumb multiply and absolute difference instructions 2011-07-13 17:32:48 +00:00
kprobes.c ARM: kprobes: Extend arch_specific_insn to add pointer to emulated instruction 2011-07-13 17:32:42 +00:00
kprobes.h ARM: kprobes: Add alu_write_pc() 2011-07-13 17:32:48 +00:00
leds.c ARM: Use struct syscore_ops instead of sysdevs for PM in common code 2011-04-24 19:16:08 +02:00
machine_kexec.c ARM: 7098/1: kdump: copy kernel relocation code at the kexec prepare stage 2011-10-17 09:13:41 +01:00
Makefile ARM: kprobes: Add Thumb instruction decoding stubs 2011-07-13 17:32:41 +00:00
module.c ARM: Fix build error for SMP=n builds 2011-08-04 08:24:29 +01:00
perf_event.c Merge branch 'devel-stable' into for-next 2011-07-22 23:09:07 +01:00
perf_event_v6.c perf, arch: Add generic NODE cache events 2011-07-01 11:06:38 +02:00
perf_event_v7.c Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-07-24 10:20:54 -07:00
perf_event_xscale.c perf, arch: Add generic NODE cache events 2011-07-01 11:06:38 +02:00
pj4-cp0.c ARM: pxa: add iwmmx support for PJ4 2010-12-20 23:07:36 +08:00
pmu.c ARM: perf: make name of arm_pmu_type consistent 2011-08-12 15:40:21 +01:00
process.c ARM: 7068/1: process: change from __backtrace to dump_stack in show_regs 2011-10-17 09:12:41 +01:00
ptrace.c Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2011-07-24 10:20:54 -07:00
relocate_kernel.S ARM: 7065/1: kexec: ensure new kernel is entered in ARM state 2011-08-28 10:39:41 +01:00
return_address.c ARM: fix some sparse errors in generic ARM code 2011-02-23 17:24:12 +00:00
sched_clock.c ARM: sched_clock: make minsec argument to clocks_calc_mult_shift() zero 2011-01-11 16:44:02 +00:00
setup.c ARM: 7062/1: cache: detect PIPT I-cache using CTR 2011-10-17 09:13:41 +01:00
signal.c ARM: 6892/1: handle ptrace requests to change PC during interrupted system calls 2011-05-12 10:52:00 +01:00
signal.h ARM: Fix signal restart issues with NX and OABI compat 2009-10-25 15:39:37 +00:00
sleep.S ARM: pm: allow suspend finisher to return error codes 2011-07-02 09:54:01 +01:00
smp.c ARM: 7133/1: SMP: fix per cpu timer setup before the cpu is marked online 2011-10-23 21:22:58 +01:00
smp_scu.c ARM: 6960/1: allow enabling SCU code on UP 2011-07-06 20:55:15 +01:00
smp_tlb.c ARM: SMP: split out software TLB maintainence broadcasting 2010-12-20 15:09:17 +00:00
smp_twd.c ARM: twd: register clockevents device before enabling PPI 2011-08-12 15:41:08 +01:00
stacktrace.c ARM: fix /proc/$PID/stack on SMP 2011-01-15 09:27:04 +00:00
swp_emulate.c perf: Remove the nmi parameter from the swevent and overflow interface 2011-07-01 11:06:35 +02:00
sys_arm.c Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
sys_oabi-compat.c ARM: 6891/1: prevent heap corruption in OABI semtimedop 2011-04-29 15:53:14 +01:00
tcm.c ARM: 6985/1: export functions to determine the presence of I/DTCM 2011-07-06 20:49:45 +01:00
tcm.h
thumbee.c
time.c ARM: Use struct syscore_ops instead of sysdevs for PM in common code 2011-04-24 19:16:08 +02:00
traps.c ARM: 7017/1: Use generic BUG() handler 2011-10-17 09:13:41 +01:00
unwind.c ARM: 6468/1: backtrace: fix calculation of thread stack base 2010-11-07 16:12:37 +00:00
vmlinux.lds.S ARM: 7017/1: Use generic BUG() handler 2011-10-17 09:13:41 +01:00
xscale-cp0.c ARM: Convert VFP/Crunch/XscaleCP thread_release() to exit_thread() 2009-12-18 14:53:41 +00:00