This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TF bug report in omapzoom latest p-android-omap-3.0 branch

<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

  • Aleksander,

    Can you please tell us which OMAP device you are using (ie, OMAP4430OMAP4460), what board you are testing with (ie, Blaze, Blaze Tablet, or custom), and what software release you are using (ie, 4AI.1.4)?  We generally don't recommend that you just take the top of the kernel tree; rather, use the x-loader, u-boot, kernel, and filesystem matched to a particular release, as listed in the omappedia release notes.  Did you see this issue on a previous release as well?

    Thank you,

    Gina