> Am 19.04.2016 um 10:08 schrieb H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>: > > >> Am 19.04.2016 um 10:01 schrieb Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>: >> >> On Tue, Apr 19, 2016 at 09:49:01AM +0200, H. Nikolaus Schaller wrote: >>> >>>> Am 18.04.2016 um 23:20 schrieb Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>: >>>> >>>> On Mon, Apr 18, 2016 at 09:55:41PM +0200, H. Nikolaus Schaller wrote: >>>>> The mutex does not seem to be needed. >>>> >>>> twl6040_vibra_suspend() and vibra_play_work() may run concurrently, no? >>> >>> Hm. I don't know about the rule that would give an answer to this question... >> >> Sorry, that was actually a statement, not really a question. > > Indeed. In doubt about the answer we should take measures for the worst case. > >> It is >> possible (although very unlikely) that userspace posts play request and >> workqueue will not run until after suspend callback. >> >> Thinking about it some more I wonder if we better do what >> twl6040_vibra_close() does and cancel the work before shutting off the >> device, so that there is no chance of work executing after suspend >> callback and reenabling the device. This way we can indeed remove the >> mutex. > > Ok, I am fine with this. > > Will post an update ASAP. While doing testing I did run again into another locking related issue which I had not yet tried to address with my patch set. It is a: BUG: scheduling while atomic report which sometimes ends in a kernel panic. I have attached such a log. vibra.py is here: http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=Letux/root/vibra.py;hb=refs/heads/letux-4.6-rc4 Basically it does an ioctl(EVIOCSFF) which triggers vibra_play. Maybe, can you decipher from the log what the reason could be? I only conjecture that it happens when vibra_play tries to read the regmap of the twl6040 to get twl6040_get_vibralr_status (which has no pendant in the twl4030 driver). Do we have to configure the twl6040 regmap differently? BR and thanks, Nikolaus root@letux:~# ./vibra.py [ 503.058501] BUG: scheduling while atomic: python/2591/0x00000002 [ 503.064866] 4 locks held by python/2591: [ 503.069010] #0: (&evdev->mutex){+.+.+.}, at: [<c068e9b0>] evdev_write+0x38/0xc0 [ 503.077000] #1: (&(&dev->event_lock)->rlock){......}, at: [<c0688ba4>] input_inject_event+0x40/0x1ac [ 503.086913] #2: (rcu_read_lock){......}, at: [<c0688b98>] input_inject_event+0x34/0x1ac [ 503.095616] #3: (twl6040:642:(&twl6040_regmap_config)->lock){+.+...}, at: [<c05c5500>] regmap_read+0x30/0x58 [ 503.106269] Modules linked in: bluetooth autofs4 usb_f_ecm g_ether usb_f_rndis u_ether libcomposite configfs ipv6 arc4 wl18xx wlcore mac80211 omapdrm cfg80211 drm_kms_helper cfbfillrect syscopyarea cfbimgblt sysfillrect snd_soc_omap_hdmi_audio sysimgblt panel_mipi_debug fb_sys_fops dwc3 cfbcopyarea drm connector_hdmi encoder_tpd12s015 snd_soc_omap_abe_twl6040 w2cbw003_bluetooth snd_soc_twl6040 omapdss wwan_on_off leds_gpio wlcore_sdio pwm_bl pwm_omap_dmtimer ehci_omap dwc3_omap snd_soc_ts3a225e leds_is31fl319x leds_tca6507 tsc2007 bq27xxx_battery_i2c bq2429x_charger bq27xxx_battery gpio_twl6040 twl6040_vibra ina2xx palmas_gpadc tca8418_keypad bmp085_i2c palmas_pwrbutton as5013 bmg160_i2c usb3503 bmp280 bmp085 bma150 bmg160_core input_polldev snd_soc_omap_mcbsp snd_soc_omap_mcpdm snd_soc_omap snd_pcm_dmaengine [ 503.182770] irq event stamp: 29172 [ 503.186366] hardirqs last enabled at (29171): [<c0809f94>] _raw_spin_unlock_irq+0x24/0x60 [ 503.195114] hardirqs last disabled at (29172): [<c08097e8>] _raw_spin_lock_irqsave+0x18/0x54 [ 503.204028] softirqs last enabled at (29154): [<c024ff80>] __do_softirq+0x5bc/0x66c [ 503.212216] softirqs last disabled at (29041): [<c0250328>] irq_exit+0x98/0x118 [ 503.219954] Preemption disabled at:[< (null)>] (null) [ 503.225571] [ 503.227162] CPU: 1 PID: 2591 Comm: python Tainted: G W 4.6.0-rc4-letux+ #69 [ 503.235693] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 503.242062] [<c022789c>] (unwind_backtrace) from [<c022403c>] (show_stack+0x10/0x14) [ 503.250259] [<c022403c>] (show_stack) from [<c0517e44>] (dump_stack+0x88/0xc0) [ 503.257897] [<c0517e44>] (dump_stack) from [<c0318e38>] (__schedule_bug+0xa8/0xcc) [ 503.265900] [<c0318e38>] (__schedule_bug) from [<c08042e4>] (__schedule+0x70/0x7fc) [ 503.273993] [<c08042e4>] (__schedule) from [<c0804ca8>] (schedule+0x9c/0xc0) [ 503.281451] [<c0804ca8>] (schedule) from [<c0804ed4>] (schedule_preempt_disabled+0x14/0x20) [ 503.290278] [<c0804ed4>] (schedule_preempt_disabled) from [<c0806ab4>] (mutex_lock_nested+0x258/0x43c) [ 503.300115] [<c0806ab4>] (mutex_lock_nested) from [<c05c5500>] (regmap_read+0x30/0x58) [ 503.308488] [<c05c5500>] (regmap_read) from [<c05d5208>] (twl6040_get_vibralr_status+0x18/0x48) [ 503.317680] [<c05d5208>] (twl6040_get_vibralr_status) from [<bf080674>] (vibra_play+0x18/0x7c [twl6040_vibra]) [ 503.328333] [<bf080674>] (vibra_play [twl6040_vibra]) from [<c068a94c>] (ml_play_effects+0x34/0x5c) [ 503.337897] [<c068a94c>] (ml_play_effects) from [<c068aa2c>] (ml_ff_playback+0x88/0x94) [ 503.346359] [<c068aa2c>] (ml_ff_playback) from [<c0689bf4>] (input_ff_event+0x9c/0xa4) [ 503.354722] [<c0689bf4>] (input_ff_event) from [<c0688a7c>] (input_handle_event+0x4c/0x134) [ 503.363543] [<c0688a7c>] (input_handle_event) from [<c0688c7c>] (input_inject_event+0x118/0x1ac) [ 503.372824] [<c0688c7c>] (input_inject_event) from [<c068ea00>] (evdev_write+0x88/0xc0) [ 503.381281] [<c068ea00>] (evdev_write) from [<c036eff8>] (__vfs_write+0x18/0x38) [ 503.389092] [<c036eff8>] (__vfs_write) from [<c036fdc8>] (vfs_write+0xac/0x130) [ 503.396819] [<c036fdc8>] (vfs_write) from [<c036ffec>] (SyS_write+0x40/0x78) [ 503.404275] [<c036ffec>] (SyS_write) from [<c0220740>] (ret_fast_syscall+0x0/0x1c) [ 503.414230] [ 503.415818] ========================================================= [ 503.422608] [ INFO: possible irq lock inversion dependency detected ] [ 503.429403] 4.6.0-rc4-letux+ #69 Tainted: G W [ 503.435207] --------------------------------------------------------- [ 503.441998] swapper/1/0 just changed the state of lock: [ 503.447510] (&(&dev->event_lock)->rlock){..-...}, at: [<c068aa50>] ml_effect_timer+0x18/0x34 [ 503.456578] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 503.463646] (twl6040:642:(&twl6040_regmap_config)->lock){+.+...} and interrupts could create inverse lock ordering between them. [ 503.476449] [ 503.476449] other info that might help us debug this: [ 503.483339] Possible interrupt unsafe locking scenario: [ 503.483339] [ 503.490516] CPU0 CPU1 [ 503.495307] ---- ---- [ 503.500094] lock(twl6040:642:(&twl6040_regmap_config)->lock); [ 503.506370] local_irq_disable(); [ 503.512627] lock(&(&dev->event_lock)->rlock); [ 503.520092] lock(twl6040:642:(&twl6040_regmap_config)->lock); [ 503.529020] <Interrupt> [ 503.531793] lock(&(&dev->event_lock)->rlock); [ 503.536781] [ 503.536781] *** DEADLOCK *** [ 503.536781] [ 503.543033] 1 lock held by swapper/1/0: [ 503.547090] #0: (((&ml->timer))){+.-...}, at: [<c02b75b8>] call_timer_fn+0x0/0x47c [ 503.555344] [ 503.555344] the shortest dependencies between 2nd lock and 1st lock: [ 503.563643] -> (twl6040:642:(&twl6040_regmap_config)->lock){+.+...} ops: 93 { [ 503.571339] HARDIRQ-ON-W at: [ 503.574757] [<c0299fc8>] lock_acquire+0x25c/0x290 [ 503.581785] [<c08068a8>] mutex_lock_nested+0x4c/0x43c [ 503.589162] [<c05c78f8>] regmap_register_patch+0xa0/0xfc [ 503.596819] [<c05d53a4>] twl6040_probe+0x150/0x414 [ 503.603917] [<c0698dc8>] i2c_device_probe+0x198/0x1ec [ 503.611304] [<c05aa3ac>] really_probe+0xfc/0x258 [ 503.618227] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 503.625706] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 503.632916] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 503.640025] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 503.647218] [<c05a8068>] device_add+0x204/0x34c [ 503.654050] [<c0699e7c>] i2c_new_device+0x10c/0x18c [ 503.661253] [<c069a1d8>] of_i2c_register_device+0x15c/0x180 [ 503.669187] [<c069a49c>] i2c_register_adapter+0x1e0/0x30c [ 503.676947] [<c069e8e4>] omap_i2c_probe+0x330/0x42c [ 503.684148] [<c05ac2d8>] platform_drv_probe+0x50/0x98 [ 503.691531] [<c05aa3ac>] really_probe+0xfc/0x258 [ 503.698455] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 503.705926] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 503.713119] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 503.720221] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 503.727418] [<c05a9e50>] deferred_probe_work_func+0x5c/0x8c [ 503.735351] [<c02653c8>] process_one_work+0x3fc/0x770 [ 503.742738] [<c0265964>] worker_thread+0x1f8/0x2fc [ 503.749840] [<c026ad08>] kthread+0xdc/0xf0 [ 503.756210] [<c02207c8>] ret_from_fork+0x14/0x2c [ 503.763126] SOFTIRQ-ON-W at: [ 503.766544] [<c0299fc8>] lock_acquire+0x25c/0x290 [ 503.773562] [<c08068a8>] mutex_lock_nested+0x4c/0x43c [ 503.780953] [<c05c78f8>] regmap_register_patch+0xa0/0xfc [ 503.788594] [<c05d53a4>] twl6040_probe+0x150/0x414 [ 503.795698] [<c0698dc8>] i2c_device_probe+0x198/0x1ec [ 503.803069] [<c05aa3ac>] really_probe+0xfc/0x258 [ 503.809972] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 503.817440] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 503.824627] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 503.831726] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 503.838929] [<c05a8068>] device_add+0x204/0x34c [ 503.845762] [<c0699e7c>] i2c_new_device+0x10c/0x18c [ 503.852949] [<c069a1d8>] of_i2c_register_device+0x15c/0x180 [ 503.860874] [<c069a49c>] i2c_register_adapter+0x1e0/0x30c [ 503.868634] [<c069e8e4>] omap_i2c_probe+0x330/0x42c [ 503.875836] [<c05ac2d8>] platform_drv_probe+0x50/0x98 [ 503.883211] [<c05aa3ac>] really_probe+0xfc/0x258 [ 503.890130] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 503.897602] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 503.904794] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 503.911903] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 503.919104] [<c05a9e50>] deferred_probe_work_func+0x5c/0x8c [ 503.927034] [<c02653c8>] process_one_work+0x3fc/0x770 [ 503.934418] [<c0265964>] worker_thread+0x1f8/0x2fc [ 503.941537] [<c026ad08>] kthread+0xdc/0xf0 [ 503.947902] [<c02207c8>] ret_from_fork+0x14/0x2c [ 503.954815] INITIAL USE at: [ 503.958145] [<c08068a8>] mutex_lock_nested+0x4c/0x43c [ 503.965433] [<c05c78f8>] regmap_register_patch+0xa0/0xfc [ 503.973003] [<c05d53a4>] twl6040_probe+0x150/0x414 [ 503.980022] [<c0698dc8>] i2c_device_probe+0x198/0x1ec [ 503.987314] [<c05aa3ac>] really_probe+0xfc/0x258 [ 503.994145] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 504.001518] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 504.008629] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 504.015643] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 504.022734] [<c05a8068>] device_add+0x204/0x34c [ 504.029475] [<c0699e7c>] i2c_new_device+0x10c/0x18c [ 504.036577] [<c069a1d8>] of_i2c_register_device+0x15c/0x180 [ 504.044421] [<c069a49c>] i2c_register_adapter+0x1e0/0x30c [ 504.052072] [<c069e8e4>] omap_i2c_probe+0x330/0x42c [ 504.059173] [<c05ac2d8>] platform_drv_probe+0x50/0x98 [ 504.066472] [<c05aa3ac>] really_probe+0xfc/0x258 [ 504.073285] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 504.080657] [<c05a8e2c>] bus_for_each_drv+0x4c/0x84 [ 504.087760] [<c05aa5d4>] __device_attach+0x84/0xf8 [ 504.094773] [<c05a99e8>] bus_probe_device+0x28/0x84 [ 504.101880] [<c05a9e50>] deferred_probe_work_func+0x5c/0x8c [ 504.109712] [<c02653c8>] process_one_work+0x3fc/0x770 [ 504.117007] [<c0265964>] worker_thread+0x1f8/0x2fc [ 504.124021] [<c026ad08>] kthread+0xdc/0xf0 [ 504.130299] [<c02207c8>] ret_from_fork+0x14/0x2c [ 504.137126] } [ 504.138974] ... key at: [<c186b9e0>] _key.26438+0x0/0x8 [ 504.145144] ... acquired at: [ 504.148371] [<c0299748>] __lock_acquire+0x7d0/0x8d0 [ 504.153806] [<c0299fc8>] lock_acquire+0x25c/0x290 [ 504.159060] [<c08068a8>] mutex_lock_nested+0x4c/0x43c [ 504.164674] [<c05c5500>] regmap_read+0x30/0x58 [ 504.169655] [<c05d5208>] twl6040_get_vibralr_status+0x18/0x48 [ 504.176007] [<bf080674>] vibra_play+0x18/0x7c [twl6040_vibra] [ 504.182368] [<c068a94c>] ml_play_effects+0x34/0x5c [ 504.187726] [<c068aa2c>] ml_ff_playback+0x88/0x94 [ 504.192985] [<c0689bf4>] input_ff_event+0x9c/0xa4 [ 504.198246] [<c0688a7c>] input_handle_event+0x4c/0x134 [ 504.203968] [<c0688c7c>] input_inject_event+0x118/0x1ac [ 504.209777] [<c068ea00>] evdev_write+0x88/0xc0 [ 504.214755] [<c036eff8>] __vfs_write+0x18/0x38 [ 504.219735] [<c036fdc8>] vfs_write+0xac/0x130 [ 504.224623] [<c036ffec>] SyS_write+0x40/0x78 [ 504.229417] [<c0220740>] ret_fast_syscall+0x0/0x1c [ 504.234763] [ 504.236341] -> (&(&dev->event_lock)->rlock){..-...} ops: 95 { [ 504.242479] IN-SOFTIRQ-W at: [ 504.245808] [<c0299fc8>] lock_acquire+0x25c/0x290 [ 504.252636] [<c0809810>] _raw_spin_lock_irqsave+0x40/0x54 [ 504.260195] [<c068aa50>] ml_effect_timer+0x18/0x34 [ 504.267124] [<c02b77dc>] call_timer_fn+0x224/0x47c [ 504.274044] [<c02b7dc4>] run_timer_softirq+0x390/0x3f8 [ 504.281320] [<c024fca8>] __do_softirq+0x2e4/0x66c [ 504.288147] [<c0250328>] irq_exit+0x98/0x118 [ 504.294521] [<c02a5a78>] __handle_domain_irq+0xa0/0xdc [ 504.301801] [<c0201578>] gic_handle_irq+0x50/0x8c [ 504.308629] [<c080af04>] __irq_svc+0x44/0x7c [ 504.314996] [<c0809f98>] _raw_spin_unlock_irq+0x28/0x60 [ 504.322364] [<c0809f98>] _raw_spin_unlock_irq+0x28/0x60 [ 504.329749] [<c0271eb8>] finish_task_switch+0x188/0x2c0 [ 504.337136] [<c08049a8>] __schedule+0x734/0x7fc [ 504.343790] [<c0804ca8>] schedule+0x9c/0xc0 [ 504.350073] [<c0804ed4>] schedule_preempt_disabled+0x14/0x20 [ 504.357911] [<c028f4d4>] cpu_idle_loop+0x37c/0x3ac [ 504.364840] [<c028f51c>] cpupri_find+0x0/0xe4 [ 504.371296] INITIAL USE at: [ 504.374529] [<c0809810>] _raw_spin_lock_irqsave+0x40/0x54 [ 504.382004] [<c0688d48>] input_event+0x38/0x60 [ 504.388460] [<c0691a60>] gpio_keys_gpio_report_event+0x88/0xa4 [ 504.396390] [<c0691ab8>] gpio_keys_report_state+0x3c/0x68 [ 504.403879] [<c0691b14>] gpio_keys_open+0x30/0x38 [ 504.410621] [<c0686a88>] input_open_device+0x68/0xa4 [ 504.417634] [<c0589d58>] kbd_connect+0x50/0x7c [ 504.424098] [<c0686e80>] input_attach_handler+0x34/0x64 [ 504.431397] [<c0687428>] input_register_device+0x18c/0x248 [ 504.438974] [<c0692674>] gpio_keys_probe+0x198/0x208 [ 504.445981] [<c05ac2d8>] platform_drv_probe+0x50/0x98 [ 504.453090] [<c05aa3ac>] really_probe+0xfc/0x258 [ 504.459728] [<c05aa6ac>] driver_probe_device+0x44/0x70 [ 504.466921] [<c05aa760>] __driver_attach+0x88/0xac [ 504.473738] [<c05a8eb4>] bus_for_each_dev+0x50/0x84 [ 504.480659] [<c05a9bfc>] bus_add_driver+0xcc/0x1e4 [ 504.487485] [<c05ab6d0>] driver_register+0xac/0xf4 [ 504.494321] [<c02018c0>] do_one_initcall+0x100/0x1b8 [ 504.501331] [<c0e00d28>] do_basic_setup+0x98/0xd4 [ 504.508077] [<c0e00de8>] kernel_init_freeable+0x84/0x124 [ 504.515458] [<c080381c>] kernel_init+0x8/0x110 [ 504.521923] [<c02207c8>] ret_from_fork+0x14/0x2c [ 504.528570] } [ 504.530327] ... key at: [<c186df3c>] __key.23309+0x0/0x8 [ 504.536498] ... acquired at: [ 504.539636] [<c031a9f8>] mark_lock_irq+0xec/0x28c [ 504.544897] [<c0298c8c>] mark_lock+0x2e8/0x448 [ 504.549875] [<c0298e8c>] mark_irqflags+0xa0/0x18c [ 504.555126] [<c02995b8>] __lock_acquire+0x640/0x8d0 [ 504.560559] [<c0299fc8>] lock_acquire+0x25c/0x290 [ 504.565809] [<c0809810>] _raw_spin_lock_irqsave+0x40/0x54 [ 504.571798] [<c068aa50>] ml_effect_timer+0x18/0x34 [ 504.577147] [<c02b77dc>] call_timer_fn+0x224/0x47c [ 504.582495] [<c02b7dc4>] run_timer_softirq+0x390/0x3f8 [ 504.588209] [<c024fca8>] __do_softirq+0x2e4/0x66c [ 504.593465] [<c0250328>] irq_exit+0x98/0x118 [ 504.598264] [<c02a5a78>] __handle_domain_irq+0xa0/0xdc [ 504.603984] [<c0201578>] gic_handle_irq+0x50/0x8c [ 504.609241] [<c080af04>] __irq_svc+0x44/0x7c [ 504.614037] [<c0809f98>] _raw_spin_unlock_irq+0x28/0x60 [ 504.619845] [<c0809f98>] _raw_spin_unlock_irq+0x28/0x60 [ 504.625649] [<c0271eb8>] finish_task_switch+0x188/0x2c0 [ 504.631465] [<c08049a8>] __schedule+0x734/0x7fc [ 504.636533] [<c0804ca8>] schedule+0x9c/0xc0 [ 504.641238] [<c0804ed4>] schedule_preempt_disabled+0x14/0x20 [ 504.647503] [<c028f4d4>] cpu_idle_loop+0x37c/0x3ac [ 504.652856] [<c028f51c>] cpupri_find+0x0/0xe4 [ 504.657756] [ 504.659341] [ 504.659341] stack backtrace: [ 504.663948] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W 4.6.0-rc4-letux+ #69 [ 504.672497] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 504.678871] [<c022789c>] (unwind_backtrace) from [<c022403c>] (show_stack+0x10/0x14) [ 504.687083] [<c022403c>] (show_stack) from [<c0517e44>] (dump_stack+0x88/0xc0) [ 504.694743] [<c0517e44>] (dump_stack) from [<c031a6b8>] (print_irq_inversion_bug.part.12+0x16c/0x1a4) [ 504.704509] [<c031a6b8>] (print_irq_inversion_bug.part.12) from [<c029726c>] (print_irq_inversion_bug+0x74/0x84) [ 504.715299] [<c029726c>] (print_irq_inversion_bug) from [<c029735c>] (check_usage_forwards+0xe0/0x10c) [ 504.725152] [<c029735c>] (check_usage_forwards) from [<c031a9f8>] (mark_lock_irq+0xec/0x28c) [ 504.734094] [<c031a9f8>] (mark_lock_irq) from [<c0298c8c>] (mark_lock+0x2e8/0x448) [ 504.742114] [<c0298c8c>] (mark_lock) from [<c0298e8c>] (mark_irqflags+0xa0/0x18c) [ 504.750026] [<c0298e8c>] (mark_irqflags) from [<c02995b8>] (__lock_acquire+0x640/0x8d0) [ 504.758491] [<c02995b8>] (__lock_acquire) from [<c0299fc8>] (lock_acquire+0x25c/0x290) [ 504.766878] [<c0299fc8>] (lock_acquire) from [<c0809810>] (_raw_spin_lock_irqsave+0x40/0x54) [ 504.775823] [<c0809810>] (_raw_spin_lock_irqsave) from [<c068aa50>] (ml_effect_timer+0x18/0x34) [ 504.785043] [<c068aa50>] (ml_effect_timer) from [<c02b77dc>] (call_timer_fn+0x224/0x47c) [ 504.793613] [<c02b77dc>] (call_timer_fn) from [<c02b7dc4>] (run_timer_softirq+0x390/0x3f8) [ 504.802367] [<c02b7dc4>] (run_timer_softirq) from [<c024fca8>] (__do_softirq+0x2e4/0x66c) [ 504.811025] [<c024fca8>] (__do_softirq) from [<c0250328>] (irq_exit+0x98/0x118) [ 504.818768] [<c0250328>] (irq_exit) from [<c02a5a78>] (__handle_domain_irq+0xa0/0xdc) [ 504.827062] [<c02a5a78>] (__handle_domain_irq) from [<c0201578>] (gic_handle_irq+0x50/0x8c) [ 504.835910] [<c0201578>] (gic_handle_irq) from [<c080af04>] (__irq_svc+0x44/0x7c) [ 504.843825] Exception stack(0xee0dbee8 to 0xee0dbf30) [ 504.849178] bee0: 00000001 00000004 00000000 ee0d8e80 eefab600 eefab600 [ 504.857845] bf00: 00000000 ee0d8e80 c08049a8 00000000 00000002 ee0dbf74 00000000 ee0dbf38 [ 504.866504] bf20: c029aa18 c0809f98 200f0013 ffffffff [ 504.871860] [<c080af04>] (__irq_svc) from [<c0809f98>] (_raw_spin_unlock_irq+0x28/0x60) [ 504.880338] [<c0809f98>] (_raw_spin_unlock_irq) from [<c0271eb8>] (finish_task_switch+0x188/0x2c0) [ 504.889829] [<c0271eb8>] (finish_task_switch) from [<c08049a8>] (__schedule+0x734/0x7fc) [ 504.898398] [<c08049a8>] (__schedule) from [<c0804ca8>] (schedule+0x9c/0xc0) [ 504.905871] [<c0804ca8>] (schedule) from [<c0804ed4>] (schedule_preempt_disabled+0x14/0x20) [ 504.914720] [<c0804ed4>] (schedule_preempt_disabled) from [<c028f4d4>] (cpu_idle_loop+0x37c/0x3ac) [ 504.924210] [<c028f4d4>] (cpu_idle_loop) from [<c028f51c>] (cpupri_find+0x0/0xe4) [ 506.142849] BUG: spinlock lockup suspected on CPU#1, swapper/1/0 [ 506.149219] lock: 0xed1a019c, .magic: dead4ead, .owner: python/2591, .owner_cpu: 1 [ 506.157338] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W 4.6.0-rc4-letux+ #69 [ 506.165873] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 506.172231] [<c022789c>] (unwind_backtrace) from [<c022403c>] (show_stack+0x10/0x14) [ 506.180427] [<c022403c>] (show_stack) from [<c0517e44>] (dump_stack+0x88/0xc0) [ 506.188081] [<c0517e44>] (dump_stack) from [<c031ae24>] (__spin_lock_debug+0x8c/0xdc) [ 506.196384] [<c031ae24>] (__spin_lock_debug) from [<c029d15c>] (do_raw_spin_lock+0xa8/0xd8) [ 506.205230] [<c029d15c>] (do_raw_spin_lock) from [<c0809818>] (_raw_spin_lock_irqsave+0x48/0x54) [ 506.214539] [<c0809818>] (_raw_spin_lock_irqsave) from [<c068aa50>] (ml_effect_timer+0x18/0x34) [ 506.223742] [<c068aa50>] (ml_effect_timer) from [<c02b77dc>] (call_timer_fn+0x224/0x47c) [ 506.232311] [<c02b77dc>] (call_timer_fn) from [<c02b7dc4>] (run_timer_softirq+0x390/0x3f8) [ 506.241070] [<c02b7dc4>] (run_timer_softirq) from [<c024fca8>] (__do_softirq+0x2e4/0x66c) [ 506.249730] [<c024fca8>] (__do_softirq) from [<c0250328>] (irq_exit+0x98/0x118) [ 506.257483] [<c0250328>] (irq_exit) from [<c02a5a78>] (__handle_domain_irq+0xa0/0xdc) [ 506.265788] [<c02a5a78>] (__handle_domain_irq) from [<c0201578>] (gic_handle_irq+0x50/0x8c) [ 506.274637] [<c0201578>] (gic_handle_irq) from [<c080af04>] (__irq_svc+0x44/0x7c) [ 506.282558] Exception stack(0xee0dbee8 to 0xee0dbf30) [ 506.287891] bee0: 00000001 00000004 00000000 ee0d8e80 eefab600 eefab600 [ 506.296529] bf00: 00000000 ee0d8e80 c08049a8 00000000 00000002 ee0dbf74 00000000 ee0dbf38 [ 506.305162] bf20: c029aa18 c0809f98 200f0013 ffffffff [ 506.310501] [<c080af04>] (__irq_svc) from [<c0809f98>] (_raw_spin_unlock_irq+0x28/0x60) [ 506.318972] [<c0809f98>] (_raw_spin_unlock_irq) from [<c0271eb8>] (finish_task_switch+0x188/0x2c0) [ 506.328460] [<c0271eb8>] (finish_task_switch) from [<c08049a8>] (__schedule+0x734/0x7fc) [ 506.337041] [<c08049a8>] (__schedule) from [<c0804ca8>] (schedule+0x9c/0xc0) [ 506.344512] [<c0804ca8>] (schedule) from [<c0804ed4>] (schedule_preempt_disabled+0x14/0x20) [ 506.353359] [<c0804ed4>] (schedule_preempt_disabled) from [<c028f4d4>] (cpu_idle_loop+0x37c/0x3ac) [ 506.362845] [<c028f4d4>] (cpu_idle_loop) from [<c028f51c>] (cpupri_find+0x0/0xe4) [ 506.370766] Sending NMI to all CPUs: [ 506.375928] NMI backtrace for cpu 0 [ 506.379616] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.6.0-rc4-letux+ #69 [ 506.388171] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 506.394529] task: c1005e80 ti: c1000000 task.ti: c1000000 [ 506.400238] PC is at arch_cpu_idle+0x30/0x3c [ 506.404752] LR is at arch_cpu_idle+0x2c/0x3c [ 506.409277] pc : [<c02211e0>] lr : [<c02211dc>] psr: 60000013 [ 506.415916] sp : c1001fa8 ip : c1001f88 fp : 00000000 [ 506.421453] r10: 00000000 r9 : 412fc0f2 r8 : 80007000 [ 506.426981] r7 : c1009a00 r6 : c10025d4 r5 : c100256c r4 : 0000002b [ 506.433886] r3 : 00000000 r2 : fe600000 r1 : c1001fa8 r0 : c02211dc [ 506.440799] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 506.448528] Control: 30c5387d Table: a8b8ff00 DAC: fffffffd [ 506.454608] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.6.0-rc4-letux+ #69 [ 506.463165] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 506.469520] [<c022789c>] (unwind_backtrace) from [<c022403c>] (show_stack+0x10/0x14) [ 506.477714] [<c022403c>] (show_stack) from [<c0517e44>] (dump_stack+0x88/0xc0) [ 506.485354] [<c0517e44>] (dump_stack) from [<c051c0ec>] (nmi_cpu_backtrace+0xc4/0x108) [ 506.493715] [<c051c0ec>] (nmi_cpu_backtrace) from [<c0225f50>] (handle_IPI+0x240/0x3dc) [ 506.502180] [<c0225f50>] (handle_IPI) from [<c02015a8>] (gic_handle_irq+0x80/0x8c) [ 506.510189] [<c02015a8>] (gic_handle_irq) from [<c080af04>] (__irq_svc+0x44/0x7c) [ 506.518102] Exception stack(0xc1001f58 to 0xc1001fa0) [ 506.523444] 1f40: c02211dc c1001fa8 [ 506.532097] 1f60: fe600000 00000000 0000002b c100256c c10025d4 c1009a00 80007000 412fc0f2 [ 506.540754] 1f80: 00000000 00000000 c1001f88 c1001fa8 c02211dc c02211e0 60000013 ffffffff [ 506.549403] [<c080af04>] (__irq_svc) from [<c02211e0>] (arch_cpu_idle+0x30/0x3c) [ 506.557234] [<c02211e0>] (arch_cpu_idle) from [<c028f470>] (cpu_idle_loop+0x318/0x3ac) [ 506.565615] [<c028f470>] (cpu_idle_loop) from [<c028f51c>] (cpupri_find+0x0/0xe4) [ 506.573528] [<c028f51c>] (cpupri_find) from [<c10a54c0>] (processor_id+0x0/0x40) [ 506.581346] NMI backtrace for cpu 1 [ 506.585033] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W 4.6.0-rc4-letux+ #69 [ 506.593591] Hardware name: Generic OMAP5 (Flattened Device Tree) [ 506.599949] [<c022789c>] (unwind_backtrace) from [<c022403c>] (show_stack+0x10/0x14) [ 506.608147] [<c022403c>] (show_stack) from [<c0517e44>] (dump_stack+0x88/0xc0) [ 506.615784] [<c0517e44>] (dump_stack) from [<c051c0f4>] (nmi_cpu_backtrace+0xcc/0x108) [ 506.624155] [<c051c0f4>] (nmi_cpu_backtrace) from [<c0225598>] (raise_nmi+0x44/0x54) [ 506.632343] [<c0225598>] (raise_nmi) from [<c051c280>] (nmi_trigger_all_cpu_backtrace+0xf0/0x254) [ 506.641732] [<c051c280>] (nmi_trigger_all_cpu_backtrace) from [<c031ae2c>] (__spin_lock_debug+0x94/0xdc) [ 506.651766] [<c031ae2c>] (__spin_lock_debug) from [<c029d15c>] (do_raw_spin_lock+0xa8/0xd8) [ 506.660607] [<c029d15c>] (do_raw_spin_lock) from [<c0809818>] (_raw_spin_lock_irqsave+0x48/0x54) [ 506.669901] [<c0809818>] (_raw_spin_lock_irqsave) from [<c068aa50>] (ml_effect_timer+0x18/0x34) [ 506.679103] [<c068aa50>] (ml_effect_timer) from [<c02b77dc>] (call_timer_fn+0x224/0x47c) [ 506.687655] [<c02b77dc>] (call_timer_fn) from [<c02b7dc4>] (run_timer_softirq+0x390/0x3f8) [ 506.696407] [<c02b7dc4>] (run_timer_softirq) from [<c024fca8>] (__do_softirq+0x2e4/0x66c) [ 506.705067] [<c024fca8>] (__do_softirq) from [<c0250328>] (irq_exit+0x98/0x118) [ 506.712807] [<c0250328>] (irq_exit) from [<c02a5a78>] (__handle_domain_irq+0xa0/0xdc) [ 506.721086] [<c02a5a78>] (__handle_domain_irq) from [<c0201578>] (gic_handle_irq+0x50/0x8c) [ 506.729911] [<c0201578>] (gic_handle_irq) from [<c080af04>] (__irq_svc+0x44/0x7c) [ 506.737818] Exception stack(0xee0dbee8 to 0xee0dbf30) [ 506.743169] bee0: 00000001 00000004 00000000 ee0d8e80 eefab600 eefab600 [ 506.751820] bf00: 00000000 ee0d8e80 c08049a8 00000000 00000002 ee0dbf74 00000000 ee0dbf38 [ 506.760464] bf20: c029aa18 c0809f98 200f0013 ffffffff [ 506.765800] [<c080af04>] (__irq_svc) from [<c0809f98>] (_raw_spin_unlock_irq+0x28/0x60) [ 506.774273] [<c0809f98>] (_raw_spin_unlock_irq) from [<c0271eb8>] (finish_task_switch+0x188/0x2c0) [ 506.783731] [<c0271eb8>] (finish_task_switch) from [<c08049a8>] (__schedule+0x734/0x7fc) [ 506.792279] [<c08049a8>] (__schedule) from [<c0804ca8>] (schedule+0x9c/0xc0) [ 506.799745] [<c0804ca8>] (schedule) from [<c0804ed4>] (schedule_preempt_disabled+0x14/0x20) [ 506.808577] [<c0804ed4>] (schedule_preempt_disabled) from [<c028f4d4>] (cpu_idle_loop+0x37c/0x3ac) [ 506.818058] [<c028f4d4>] (cpu_idle_loop) from [<c028f51c>] (cpupri_find+0x0/0xe4) -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html