<7>kobject: 'tf_driver' (ef31382c): kobject_add_internal: parent: 'class', set: 'class'
<7>kobject: 'tf_driver' (ef31382c): kobject_uevent_env
<7>kobject: 'tf_driver' (ef31382c): fill_kobj_path: path = '/class/tf_driver'
=======================================================
[ INFO: possible circular locking dependency detected ]
3.0.21+ #68
-------------------------------------------------------
swapper/1 is trying to acquire lock:
(clk_lock){..-...}, at: [<c02d49e0>] tf_crypto_turn_off_clocks+0x1c/0x58
but task is already holding lock:
(clk_timer_lock){..-...}, at: [<c02d8b50>] tf_clock_timer_cb+0x1c/0x8c
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (clk_timer_lock){..-...}:
[<c00edb94>] validate_chain+0xaf8/0xff0
[<c00ee9c0>] __lock_acquire+0x934/0x9ec
[<c00ef070>] lock_acquire+0x110/0x134
[<c063c88c>] _raw_spin_lock_irqsave+0x6c/0x80
[<c02d8424>] tf_clock_timer_start+0x1c/0xa0
[<c02d4974>] tf_crypto_enable_clock+0x2c/0x60
[<c02d6c6c>] register_smc_public_crypto_aes+0x20/0x394
[<c02d8094>] tf_init+0x74/0x98
[<c0024f70>] tf_device_register+0x10c/0x1a8
[<c00636bc>] do_one_initcall+0xb8/0x18c
[<c000857c>] kernel_init+0x90/0x138
[<c00b89bc>] do_exit+0x0/0x710
-> #0 (clk_lock){..-...}:
[<c00ecd6c>] print_circular_bug+0x68/0x2c4
[<c00ed994>] validate_chain+0x8f8/0xff0
[<c00ee9c0>] __lock_acquire+0x934/0x9ec
[<c00ef070>] lock_acquire+0x110/0x134
[<c063c88c>] _raw_spin_lock_irqsave+0x6c/0x80
[<c02d49e0>] tf_crypto_turn_off_clocks+0x1c/0x58
[<c02d8b68>] tf_clock_timer_cb+0x34/0x8c
[<c00c3ae0>] run_timer_softirq+0x2b0/0x3f4
[<c00bbf34>] __do_softirq+0x128/0x29c
[<c00bc314>] irq_exit+0x6c/0xd0
[<c006f420>] ipi_timer+0x48/0x54
[<c00635a4>] do_local_timer+0x60/0x90
[<c006980c>] __irq_svc+0x4c/0xec
[<c0638cf8>] printk+0x30/0x38
[<c031376c>] kobject_get_path+0xbc/0xd8
[<c0313d28>] kobject_uevent_env+0x128/0x4f4
[<c0314108>] kobject_uevent+0x14/0x18
[<c0313404>] kset_register+0x3c/0x44
[<c0398e14>] __class_register+0xec/0x1d8
[<c0398f70>] __class_create+0x70/0x94
[<c0024f84>] tf_device_register+0x120/0x1a8
[<c00636bc>] do_one_initcall+0xb8/0x18c
[<c000857c>] kernel_init+0x90/0x138
[<c00b89bc>] do_exit+0x0/0x710
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(clk_timer_lock);
lock(clk_lock);
lock(clk_timer_lock);
lock(clk_lock);
*** DEADLOCK ***
2 locks held by swapper/1:
#0: (&tf_crypto_clock_timer){+.-...}, at: [<c00c3a14>] run_timer_softirq+0x1e4/0x3f4
#1: (clk_timer_lock){..-...}, at: [<c02d8b50>] tf_clock_timer_cb+0x1c/0x8c
stack backtrace:
Backtrace:
[<c006e16c>] (dump_backtrace+0x0/0x118) from [<c0638b04>] (dump_stack+0x20/0x24)
r7:ef880338 r6:c0900350 r5:c092d5d0 r4:c0900350
[<c0638ae4>] (dump_stack+0x0/0x24) from [<c00ecf7c>] (print_circular_bug+0x278/0x2c4)
[<c00ecd04>] (print_circular_bug+0x0/0x2c4) from [<c00ed994>] (validate_chain+0x8f8/0xff0)
[<c00ed09c>] (validate_chain+0x0/0xff0) from [<c00ee9c0>] (__lock_acquire+0x934/0x9ec)
[<c00ee08c>] (__lock_acquire+0x0/0x9ec) from [<c00ef070>] (lock_acquire+0x110/0x134)
[<c00eef60>] (lock_acquire+0x0/0x134) from [<c063c88c>] (_raw_spin_lock_irqsave+0x6c/0x80)
[<c063c820>] (_raw_spin_lock_irqsave+0x0/0x80) from [<c02d49e0>] (tf_crypto_turn_off_clocks+0x1c/0x58)
r6:c08ee900 r5:c0e1d4b0 r4:60000113
[<c02d49c4>] (tf_crypto_turn_off_clocks+0x0/0x58) from [<c02d8b68>] (tf_clock_timer_cb+0x34/0x8c)
r5:c0e1d4b0 r4:60000113
[<c02d8b34>] (tf_clock_timer_cb+0x0/0x8c) from [<c00c3ae0>] (run_timer_softirq+0x2b0/0x3f4)
r5:ef87a000 r4:c0e1d51c
[<c00c3830>] (run_timer_softirq+0x0/0x3f4) from [<c00bbf34>] (__do_softirq+0x128/0x29c)
[<c00bbe0c>] (__do_softirq+0x0/0x29c) from [<c00bc314>] (irq_exit+0x6c/0xd0)
[<c00bc2a8>] (irq_exit+0x0/0xd0) from [<c006f420>] (ipi_timer+0x48/0x54)
r5:01859000 r4:c0061040
[<c006f3d8>] (ipi_timer+0x0/0x54) from [<c00635a4>] (do_local_timer+0x60/0x90)
r7:00000002 r6:0000001d r5:c08ee740 r4:00000000
[<c0063544>] (do_local_timer+0x0/0x90) from [<c006980c>] (__irq_svc+0x4c/0xec)
Exception stack(0xef87bd50 to 0xef87bd98)
bd40: c063d218 00000001 00000000 ef880000
bd60: 00000051 00000001 c08ce2eb 00000003 60000013 c08ce2e8 c0888690 ef87be34
bd80: ef87bd98 ef87bd98 c00b596c c00b5974 60000013 ffffffff
r5:fa240100 r4:ffffffff
[<c00b5518>] (vprintk+0x0/0x4f0) from [<c0638cf8>] (printk+0x30/0x38)
[<c0638cc8>] (printk+0x0/0x38) from [<c031376c>] (kobject_get_path+0xbc/0xd8)
r3:c0672050 r2:ef31382c r1:ef390480 r0:c07c8665
[<c03136b0>] (kobject_get_path+0x0/0xd8) from [<c0313d28>] (kobject_uevent_env+0x128/0x4f4)
[<c0313c00>] (kobject_uevent_env+0x0/0x4f4) from [<c0314108>] (kobject_uevent+0x14/0x18)
[<c03140f4>] (kobject_uevent+0x0/0x18) from [<c0313404>] (kset_register+0x3c/0x44)
[<c03133c8>] (kset_register+0x0/0x44) from [<c0398e14>] (__class_register+0xec/0x1d8)
r5:ef313800 r4:ef38e880
[<c0398d28>] (__class_register+0x0/0x1d8) from [<c0398f70>] (__class_create+0x70/0x94)
r7:ef38e880 r6:c0e1d45c r5:c07c5e1b r4:00000000
[<c0398f00>] (__class_create+0x0/0x94) from [<c0024f84>] (tf_device_register+0x120/0x1a8)
r9:00000000 r8:c0898398 r7:00000000 r6:c0e1d41c r5:c07c5e1b
r4:c0e1d150
[<c0024e64>] (tf_device_register+0x0/0x1a8) from [<c00636bc>] (do_one_initcall+0xb8/0x18c)
r8:00000000 r7:00000013 r6:c00b89bc r5:c0024e64 r4:c003b2e4
[<c0063604>] (do_one_initcall+0x0/0x18c) from [<c000857c>] (kernel_init+0x90/0x138)
[<c00084ec>] (kernel_init+0x0/0x138) from [<c00b89bc>] (do_exit+0x0/0x710)
r5:c00084ec r4:00000000