Commit b154886f authored by Zhizhou Zhang's avatar Zhizhou Zhang Committed by Catalin Marinas

arm64: make secondary_start_kernel() notrace

We can't call function trace hook before setup percpu offset.
When entering secondary_start_kernel(), percpu offset has not
been initialized.  So this lead hotplug malfunction.
Here is the flow to reproduce this bug:

echo 0 > /sys/devices/system/cpu/cpu1/online
echo function > /sys/kernel/debug/tracing/current_tracer
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo 1 > /sys/devices/system/cpu/cpu1/online
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Tested-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: default avatarZhizhou Zhang <zhizhouzhang@asrmicro.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent dd65a941
...@@ -179,7 +179,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle) ...@@ -179,7 +179,7 @@ int __cpu_up(unsigned int cpu, struct task_struct *idle)
* This is the secondary CPU boot entry. We're using this CPUs * This is the secondary CPU boot entry. We're using this CPUs
* idle thread stack, but a set of temporary page tables. * idle thread stack, but a set of temporary page tables.
*/ */
asmlinkage void secondary_start_kernel(void) asmlinkage notrace void secondary_start_kernel(void)
{ {
u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK; u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
struct mm_struct *mm = &init_mm; struct mm_struct *mm = &init_mm;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment