Hi,

During N900 boot I get the trace found below. The problem can be
seen in omap3_rom_rng_idle(), which is called by a kernel timer
(=softirq). In that function you call clk_disable_unprepare(), which
must not be called from atomic context, since clk_unprepare() may
sleep.

[    1.885131] ------------[ cut here ]------------
[    1.890075] WARNING: CPU: 0 PID: 6 at kernel/locking/mutex.c:868 
mutex_trylock+0x1fc/0x21c()
[    1.899169] DEBUG_LOCKS_WARN_ON(in_interrupt())
[    1.903808] Modules linked in:
[    1.907287] CPU: 0 PID: 6 Comm: kworker/u2:0 Tainted: G        W       
4.3.0-rc6-00012-g689422d8e6d2-dirty #630
[    1.917999] Hardware name: Nokia RX-51 board
[    1.922576] Workqueue: deferwq deferred_probe_work_func
[    1.928192] [<c0017c6c>] (unwind_backtrace) from [<c0013fd0>] 
(show_stack+0x10/0x14)
[    1.936462] [<c0013fd0>] (show_stack) from [<c035d4a4>] 
(dump_stack+0x84/0x9c)
[    1.944183] [<c035d4a4>] (dump_stack) from [<c0044d6c>] 
(warn_slowpath_common+0x78/0xb4)
[    1.952758] [<c0044d6c>] (warn_slowpath_common) from [<c0044dd8>] 
(warn_slowpath_fmt+0x30/0x40)
[    1.962036] [<c0044dd8>] (warn_slowpath_fmt) from [<c0869434>] 
(mutex_trylock+0x1fc/0x21c)
[    1.970855] [<c0869434>] (mutex_trylock) from [<c0620998>] 
(clk_prepare_lock+0xc/0xec)
[    1.979309] [<c0620998>] (clk_prepare_lock) from [<c0622a50>] 
(clk_unprepare+0x1c/0x2c)
[    1.987854] [<c0622a50>] (clk_unprepare) from [<c0417e88>] 
(omap3_rom_rng_idle+0x38/0x5c)
[    1.996582] [<c0417e88>] (omap3_rom_rng_idle) from [<c00b53bc>] 
(call_timer_fn+0x8c/0x194)
[    2.005371] [<c00b53bc>] (call_timer_fn) from [<c00b569c>] 
(run_timer_softirq+0x1d8/0x2c8)
[    2.014190] [<c00b569c>] (run_timer_softirq) from [<c004984c>] 
(__do_softirq+0xcc/0x34c)
[    2.022766] [<c004984c>] (__do_softirq) from [<c0049df0>] 
(irq_exit+0xbc/0x130)
[    2.030578] [<c0049df0>] (irq_exit) from [<c00a4920>] 
(__handle_domain_irq+0x6c/0xe0)
[    2.038940] [<c00a4920>] (__handle_domain_irq) from [<c086dc38>] 
(__irq_svc+0x58/0x78)
[    2.047363] [<c086dc38>] (__irq_svc) from [<c086d40c>] 
(_raw_spin_unlock_irqrestore+0x34/0x44)
[    2.056549] [<c086d40c>] (_raw_spin_unlock_irqrestore) from [<c04d3aa8>] 
(onenand_release_device+0x48/0x54)
[    2.066925] [<c04d3aa8>] (onenand_release_device) from [<c04d7ba4>] 
(onenand_bbt_read_oob+0x17c/0x1dc)
[    2.076843] [<c04d7ba4>] (onenand_bbt_read_oob) from [<c04d7d50>] 
(onenand_scan_bbt+0x104/0x24c)
[    2.086212] [<c04d7d50>] (onenand_scan_bbt) from [<c04d6f28>] 
(onenand_scan+0x4f4/0xe40)
[    2.094818] [<c04d6f28>] (onenand_scan) from [<c04d8de4>] 
(omap2_onenand_probe+0x250/0x49c)
[    2.103729] [<c04d8de4>] (omap2_onenand_probe) from [<c045b850>] 
(platform_drv_probe+0x44/0xac)
[    2.112945] [<c045b850>] (platform_drv_probe) from [<c0459f04>] 
(driver_probe_device+0x1f4/0x2f0)
[    2.122406] [<c0459f04>] (driver_probe_device) from [<c0458414>] 
(bus_for_each_drv+0x64/0x98)
[    2.131500] [<c0458414>] (bus_for_each_drv) from [<c0459c84>] 
(__device_attach+0xb0/0x118)
[    2.140289] [<c0459c84>] (__device_attach) from [<c0459230>] 
(bus_probe_device+0x88/0x90)
[    2.149017] [<c0459230>] (bus_probe_device) from [<c0457518>] 
(device_add+0x348/0x568)
[    2.157470] [<c0457518>] (device_add) from [<c045b59c>] 
(platform_device_add+0xf8/0x214)
[    2.166076] [<c045b59c>] (platform_device_add) from [<c003e0a8>] 
(gpmc_onenand_init+0x80/0x10c)
[    2.175384] [<c003e0a8>] (gpmc_onenand_init) from [<c0634978>] 
(gpmc_probe+0x3ac/0x7e8)
[    2.183898] [<c0634978>] (gpmc_probe) from [<c045b850>] 
(platform_drv_probe+0x44/0xac)
[    2.192291] [<c045b850>] (platform_drv_probe) from [<c0459f04>] 
(driver_probe_device+0x1f4/0x2f0)
[    2.201751] [<c0459f04>] (driver_probe_device) from [<c0458414>] 
(bus_for_each_drv+0x64/0x98)
[    2.210815] [<c0458414>] (bus_for_each_drv) from [<c0459c84>] 
(__device_attach+0xb0/0x118)
[    2.219635] [<c0459c84>] (__device_attach) from [<c0459230>] 
(bus_probe_device+0x88/0x90)
[    2.228363] [<c0459230>] (bus_probe_device) from [<c0459654>] 
(deferred_probe_work_func+0x60/0x90)
[    2.237884] [<c0459654>] (deferred_probe_work_func) from [<c005f144>] 
(process_one_work+0x1a4/0x558)
[    2.247619] [<c005f144>] (process_one_work) from [<c005f534>] 
(worker_thread+0x3c/0x514)
[    2.256256] [<c005f534>] (worker_thread) from [<c00652b8>] 
(kthread+0xd4/0xf0)
[    2.263946] [<c00652b8>] (kthread) from [<c000f870>] 
(ret_from_fork+0x14/0x24)
[    2.271606] ---[ end trace 814b02d2fa769522 ]---

-- Sebastian

Attachment: signature.asc
Description: PGP signature

Reply via email to