This is the problem report We implemented a SOC running the Linux Kernel 3.10.61, which is based on Linaro-stable-kernel 3.10.61. A recursion spinlock Bug was found in HMP feature when running memory test program. Enabling the spinlock debug feature, We got the following log. [ 6411.494780s][1970:01:02 13:47:35][pid:7,cpu0,migration/0]BUG: spinlock recursion on CPU#0, migration/0/7 [ 6411.494872s][1970:01:02 13:47:35][pid:7,cpu0,migration/0] lock: 0xc25d1140, .magic: dead4ead, .owner: migration/0/7, .owner_cpu: 0 [ 6411.494963s][1970:01:02 13:47:35][pid:7,cpu0,migration/0]CPU: 0 PID: 7 Comm: migration/0 Tainted: G W 3.10.49-g748bb75 #1 [ 6411.494994s]Backtrace: [ 6411.495055s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (dump_backtrace+0x0/0x10c) from [] (show_stack+0x18/0x1c) [ 6411.495086s] r6:00000000 r5:c25d1140 r4:e7a82b80 r3:00000000 [ 6411.495147s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (show_stack+0x0/0x1c) from [] (dump_stack+0x20/0x28) [ 6411.495177s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (dump_stack+0x0/0x28) from [] (spin_dump+0x80/0x94) [ 6411.495208s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (spin_dump+0x0/0x94) from [] (spin_bug+0x2c/0x30) [ 6411.495208s] r5:c25d1140 r4:c0f36088 [ 6411.495269s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (spin_bug+0x0/0x30) from [] (do_raw_spin_lock+0x150/0x188) [ 6411.495299s] r5:e7a83e3c r4:e7a83a00 [ 6411.495330s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (do_raw_spin_lock+0x0/0x188) from [] (_raw_spin_lock+0x28/0x2c) [ 6411.495360s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (_raw_spin_lock+0x0/0x2c) from [] (try_to_wake_up+0x17c/0x2e4) [ 6411.495391s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (try_to_wake_up+0x0/0x2e4) from [] (default_wake_function+0x14/0x18) [ 6411.495421s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (default_wake_function+0x0/0x18) from [] (autoremove_wake_function+0x14/0x3c) [ 6411.495452s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (autoremove_wake_function+0x0/0x3c) from [] (__wake_up_common+0x58/0x98) [ 6411.495482s] r4:c25cecb4 r3:00000000 [ 6411.495513s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__wake_up_common+0x0/0x98) from [] (__wake_up+0x40/0x54) [ 6411.495543s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__wake_up+0x0/0x54) from [] (__call_rcu_nocb_enqueue+0xcc/0xdc) [ 6411.495574s] r8:00000000 r7:c1225880 r6:00000000 r5:c25cec98 r4:c25cebf8 [ 6411.495635s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__call_rcu_nocb_enqueue+0x0/0xdc) from [] (__call_rcu+0xac/0x2a8) [ 6411.495665s] r6:40000193 r5:e24ccbec r4:c25cebf8 r3:00000001 [ 6411.495757s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__call_rcu+0x0/0x2a8) from [] (call_rcu+0x24/0x30) [ 6411.495788s] r8:00000007 r7:00000000 r6:e26ca440 r5:c25d1140 r4:e26ca440 [ 6411.495849s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (call_rcu+0x0/0x30) from [] (__put_cred+0x50/0x64) [ 6411.495879s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__put_cred+0x0/0x64) from [] (exit_creds+0x94/0xa4) [ 6411.495910s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (exit_creds+0x0/0xa4) from [] (__put_task_struct+0x50/0xf0) [ 6411.495910s] r4:e26ca440 r3:c05f5220 [ 6411.495971s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__put_task_struct+0x0/0xf0) from [] (__do_active_load_balance_cpu_stop+0x1a4/0x2f8) [ 6411.496001s] r4:e7b4e600 r3:e26ca448 [ 6411.496032s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (__do_active_load_balance_cpu_stop+0x0/0x2f8) from [] (hmp_active_task_migration_cpu_stop+0x14/0x18) [ 6411.496062s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (hmp_active_task_migration_cpu_stop+0x0/0x18) from [] (cpu_stopper_thread+0x78/0x13c) [ 6411.496093s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (cpu_stopper_thread+0x0/0x13c) from [] (smpboot_thread_fn+0x188/0x258) [ 6411.496123s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (smpboot_thread_fn+0x0/0x258) from [] (kthread+0xac/0xb8) [ 6411.496154s][1970:01:02 13:47:35][pid:7,cpu0,migration/0][] (kthread+0x0/0xb8) from [] (ret_from_fork+0x14/0x3c)