https://github.com/torvalds/linux
Revision 8f0712037b4ed63dfce844939ac9866054f15ca0 authored by Leo Yan on 16 April 2014, 12:26:35 UTC, committed by Catalin Marinas on 25 April 2014, 15:46:51 UTC
ARM64 has defined the spinlock for init_mm's context, so need initialize
the spinlock structure; otherwise during the suspend flow it will dump
the info for spinlock's bad magic warning as below:

[   39.084394] Disabling non-boot CPUs ...
[   39.092871] BUG: spinlock bad magic on CPU#1, swapper/1/0
[   39.092896]  lock: init_mm+0x338/0x3e0, .magic: 00000000, .owner: <none>/-1, .owner_cpu: 0
[   39.092907] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G           O 3.10.33 #125
[   39.092912] Call trace:
[   39.092927] [<ffffffc000087e64>] dump_backtrace+0x0/0x16c
[   39.092934] [<ffffffc000087fe0>] show_stack+0x10/0x1c
[   39.092947] [<ffffffc000765334>] dump_stack+0x1c/0x28
[   39.092953] [<ffffffc0007653b8>] spin_dump+0x78/0x88
[   39.092960] [<ffffffc0007653ec>] spin_bug+0x24/0x34
[   39.092971] [<ffffffc000300a28>] do_raw_spin_lock+0x98/0x17c
[   39.092979] [<ffffffc00076cf08>] _raw_spin_lock_irqsave+0x4c/0x60
[   39.092990] [<ffffffc000094044>] set_mm_context+0x1c/0x6c
[   39.092996] [<ffffffc0000941c8>] __new_context+0x94/0x10c
[   39.093007] [<ffffffc0000d63d4>] idle_task_exit+0x104/0x1b0
[   39.093014] [<ffffffc00008d91c>] cpu_die+0x14/0x74
[   39.093021] [<ffffffc000084f74>] arch_cpu_idle_dead+0x8/0x14
[   39.093030] [<ffffffc0000e7f18>] cpu_startup_entry+0x1ec/0x258
[   39.093036] [<ffffffc00008d810>] secondary_start_kernel+0x114/0x124

Signed-off-by: Leo Yan <leoy@marvell.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
1 parent 43683af
History
Tip revision: 8f0712037b4ed63dfce844939ac9866054f15ca0 authored by Leo Yan on 16 April 2014, 12:26:35 UTC
arm64: initialize spinlock for init_mm's context
Tip revision: 8f07120
File Mode Size
debug
events
gcov
irq
locking
power
printk
rcu
sched
time
trace
.gitignore -rw-r--r-- 91 bytes
Kconfig.freezer -rw-r--r-- 52 bytes
Kconfig.hz -rw-r--r-- 1.6 KB
Kconfig.locks -rw-r--r-- 4.3 KB
Kconfig.preempt -rw-r--r-- 2.1 KB
Makefile -rw-r--r-- 7.7 KB
acct.c -rw-r--r-- 16.8 KB
async.c -rw-r--r-- 9.9 KB
audit.c -rw-r--r-- 51.0 KB
audit.h -rw-r--r-- 10.3 KB
audit_tree.c -rw-r--r-- 22.0 KB
audit_watch.c -rw-r--r-- 13.6 KB
auditfilter.c -rw-r--r-- 33.6 KB
auditsc.c -rw-r--r-- 65.9 KB
backtracetest.c -rw-r--r-- 2.1 KB
bounds.c -rw-r--r-- 773 bytes
capability.c -rw-r--r-- 11.9 KB
cgroup.c -rw-r--r-- 130.4 KB
cgroup_freezer.c -rw-r--r-- 13.6 KB
compat.c -rw-r--r-- 28.7 KB
configs.c -rw-r--r-- 2.8 KB
context_tracking.c -rw-r--r-- 6.8 KB
cpu.c -rw-r--r-- 18.2 KB
cpu_pm.c -rw-r--r-- 6.5 KB
cpuset.c -rw-r--r-- 74.5 KB
crash_dump.c -rw-r--r-- 1.2 KB
cred.c -rw-r--r-- 21.2 KB
delayacct.c -rw-r--r-- 5.0 KB
dma.c -rw-r--r-- 3.6 KB
elfcore.c -rw-r--r-- 396 bytes
exec_domain.c -rw-r--r-- 4.3 KB
exit.c -rw-r--r-- 42.6 KB
extable.c -rw-r--r-- 3.9 KB
fork.c -rw-r--r-- 46.1 KB
freezer.c -rw-r--r-- 4.6 KB
futex.c -rw-r--r-- 77.5 KB
futex_compat.c -rw-r--r-- 4.5 KB
groups.c -rw-r--r-- 5.8 KB
hrtimer.c -rw-r--r-- 47.5 KB
hung_task.c -rw-r--r-- 5.7 KB
irq_work.c -rw-r--r-- 4.5 KB
itimer.c -rw-r--r-- 7.3 KB
jump_label.c -rw-r--r-- 11.0 KB
kallsyms.c -rw-r--r-- 15.0 KB
kcmp.c -rw-r--r-- 4.3 KB
kexec.c -rw-r--r-- 42.5 KB
kmod.c -rw-r--r-- 19.4 KB
kprobes.c -rw-r--r-- 58.8 KB
ksysfs.c -rw-r--r-- 5.6 KB
kthread.c -rw-r--r-- 18.6 KB
latencytop.c -rw-r--r-- 7.6 KB
module-internal.h -rw-r--r-- 458 bytes
module.c -rw-r--r-- 96.4 KB
module_signing.c -rw-r--r-- 5.9 KB
notifier.c -rw-r--r-- 16.0 KB
nsproxy.c -rw-r--r-- 6.3 KB
padata.c -rw-r--r-- 26.9 KB
panic.c -rw-r--r-- 11.3 KB
params.c -rw-r--r-- 21.8 KB
pid.c -rw-r--r-- 14.9 KB
pid_namespace.c -rw-r--r-- 9.0 KB
posix-cpu-timers.c -rw-r--r-- 38.2 KB
posix-timers.c -rw-r--r-- 30.2 KB
profile.c -rw-r--r-- 16.2 KB
ptrace.c -rw-r--r-- 29.9 KB
range.c -rw-r--r-- 3.0 KB
reboot.c -rw-r--r-- 9.6 KB
relay.c -rw-r--r-- 32.6 KB
res_counter.c -rw-r--r-- 4.4 KB
resource.c -rw-r--r-- 31.7 KB
seccomp.c -rw-r--r-- 13.4 KB
signal.c -rw-r--r-- 94.9 KB
smp.c -rw-r--r-- 16.9 KB
smpboot.c -rw-r--r-- 6.9 KB
smpboot.h -rw-r--r-- 564 bytes
softirq.c -rw-r--r-- 18.8 KB
stacktrace.c -rw-r--r-- 1.1 KB
stop_machine.c -rw-r--r-- 17.1 KB
sys.c -rw-r--r-- 50.5 KB
sys_ni.c -rw-r--r-- 6.0 KB
sysctl.c -rw-r--r-- 61.2 KB
sysctl_binary.c -rw-r--r-- 51.0 KB
system_certificates.S -rw-r--r-- 470 bytes
system_keyring.c -rw-r--r-- 2.7 KB
task_work.c -rw-r--r-- 3.4 KB
taskstats.c -rw-r--r-- 16.2 KB
test_kprobes.c -rw-r--r-- 8.5 KB
time.c -rw-r--r-- 18.8 KB
timeconst.bc -rw-r--r-- 2.7 KB
timer.c -rw-r--r-- 47.2 KB
torture.c -rw-r--r-- 19.2 KB
tracepoint.c -rw-r--r-- 13.4 KB
tsacct.c -rw-r--r-- 5.0 KB
uid16.c -rw-r--r-- 5.0 KB
up.c -rw-r--r-- 1.7 KB
user-return-notifier.c -rw-r--r-- 1.3 KB
user.c -rw-r--r-- 5.3 KB
user_namespace.c -rw-r--r-- 22.9 KB
utsname.c -rw-r--r-- 2.9 KB
utsname_sysctl.c -rw-r--r-- 3.0 KB
watchdog.c -rw-r--r-- 15.8 KB
workqueue.c -rw-r--r-- 141.1 KB
workqueue_internal.h -rw-r--r-- 2.1 KB

back to top