mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| xen | ||
| Kbuild | ||
| arch_timer.h | ||
| asm-offsets.h | ||
| assembler.h | ||
| atomic.h | ||
| barrier.h | ||
| bitops.h | ||
| cache.h | ||
| cacheflush.h | ||
| cachetype.h | ||
| cmpxchg.h | ||
| compat.h | ||
| compiler.h | ||
| cpu_ops.h | ||
| cpufeature.h | ||
| cputable.h | ||
| cputype.h | ||
| debug-monitors.h | ||
| device.h | ||
| dma-contiguous.h | ||
| dma-mapping.h | ||
| elf.h | ||
| esr.h | ||
| exception.h | ||
| exec.h | ||
| fb.h | ||
| fixmap.h | ||
| fpsimd.h | ||
| fpsimdmacros.h | ||
| futex.h | ||
| hardirq.h | ||
| hugetlb.h | ||
| hw_breakpoint.h | ||
| hwcap.h | ||
| hypervisor.h | ||
| insn.h | ||
| io.h | ||
| irq.h | ||
| irqflags.h | ||
| jump_label.h | ||
| kgdb.h | ||
| kvm_arm.h | ||
| kvm_asm.h | ||
| kvm_coproc.h | ||
| kvm_emulate.h | ||
| kvm_host.h | ||
| kvm_mmio.h | ||
| kvm_mmu.h | ||
| kvm_psci.h | ||
| linkage.h | ||
| memblock.h | ||
| memory.h | ||
| mmu.h | ||
| mmu_context.h | ||
| module.h | ||
| neon.h | ||
| page.h | ||
| percpu.h | ||
| perf_event.h | ||
| pgalloc.h | ||
| pgtable-2level-hwdef.h | ||
| pgtable-2level-types.h | ||
| pgtable-3level-hwdef.h | ||
| pgtable-3level-types.h | ||
| pgtable-hwdef.h | ||
| pgtable.h | ||
| pmu.h | ||
| proc-fns.h | ||
| processor.h | ||
| psci.h | ||
| ptrace.h | ||
| shmparam.h | ||
| sigcontext.h | ||
| signal32.h | ||
| smp.h | ||
| smp_plat.h | ||
| sparsemem.h | ||
| spinlock.h | ||
| spinlock_types.h | ||
| stacktrace.h | ||
| stat.h | ||
| string.h | ||
| suspend.h | ||
| sync_bitops.h | ||
| syscall.h | ||
| syscalls.h | ||
| system_misc.h | ||
| thread_info.h | ||
| timex.h | ||
| tlb.h | ||
| tlbflush.h | ||
| topology.h | ||
| traps.h | ||
| uaccess.h | ||
| ucontext.h | ||
| unistd.h | ||
| unistd32.h | ||
| vdso.h | ||
| vdso_datapage.h | ||
| virt.h | ||
| word-at-a-time.h | ||