This bug is still happening with latest SGX drop from TI: pvr-omap4 - 1.7.9.0.1.5-1 pvr-omap4-dkms - 1.7.9.0.1.3-1 hwpack: hwpack_linaro-lt-panda-x11-base_20111016-0_armel_supported.tar.gz image: linaro-o-ubuntu-desktop-tar-20111016-1.tar.gz [ 36.257171] omap_device: omapdrm_pvr.0: new worst case activate latency 0: 305175 [ 36.274078] omaplfb: Device 31: Framebuffer physical address: 0xbd000000 [ 36.274108] omaplfb: Device 31: Framebuffer virtual address: 0xf1000000 [ 36.274108] omaplfb: Device 31: Framebuffer size: 8294400 [ 36.274139] omaplfb: Device 31: Framebuffer width: 1920 [ 36.274139] omaplfb: Device 31: Framebuffer height: 1080 [ 36.274169] omaplfb: Device 31: Framebuffer stride: 7680 [ 36.274169] omaplfb: Device 31: LCM of stride and page size: 61440 [ 36.274200] omaplfb: Device 31: Maximum number of swap chain buffers: 3 [ 36.274200] omaplfb: Device 31: PVR Device ID: 1 [ 36.277526] [ 36.277526] ============================================= [ 36.284790] [ INFO: possible recursive locking detected ] [ 36.289031] 3.0.0-1404-linaro-lt-omap #9~ppa-Ubuntu [ 36.289031] --------------------------------------------- [ 36.301269] Xorg/1594 is trying to acquire lock: [ 36.302642] (psPVRSRVMutex){+.+.+.}, at: [] LinuxLockMutex+0x1c/0x20 [omapdrm_pvr] [ 36.308502] [ 36.308502] but task is already holding lock: [ 36.321319] (psPVRSRVMutex){+.+.+.}, at: [] LinuxLockMutex+0x1c/0x20 [omapdrm_pvr] [ 36.328704] [ 36.328704] other info that might help us debug this: [ 36.336517] Possible unsafe locking scenario: [ 36.336517] [ 36.342742] CPU0 [ 36.345642] ---- [ 36.347747] lock(psPVRSRVMutex); [ 36.347747] lock(psPVRSRVMutex); [ 36.355560] [ 36.355560] *** DEADLOCK *** [ 36.355560] [ 36.359252] May be due to missing lock nesting notation [ 36.361907] [ 36.365966] 2 locks held by Xorg/1594: [ 36.365966] #0: (drm_global_mutex){+.+.+.}, at: [] drm_release+0x34/0x388 [ 36.381195] #1: (psPVRSRVMutex){+.+.+.}, at: [] LinuxLockMutex+0x1c/0x20 [omapdrm_pvr] [ 36.381988] [ 36.381988] stack backtrace: [ 36.395263] [] (unwind_backtrace+0x0/0xec) from [] (dump_stack+0x20/0x24) [ 36.397644] [] (dump_stack+0x20/0x24) from [] (print_deadlock_bug+0xb8/0xe4) [ 36.413452] [] (print_deadlock_bug+0xb8/0xe4) from [] (check_deadlock.clone.15+0x18c/0x1b8) [ 36.413574] [] (check_deadlock.clone.15+0x18c/0x1b8) from [] (validate_chain.clone.16+0x504/0x554) [ 36.435302] [] (validate_chain.clone.16+0x504/0x554) from [] (__lock_acquire+0x708/0x7cc) [ 36.443786] [] (__lock_acquire+0x708/0x7cc) from [] (lock_acquire+0x124/0x148) [ 36.454864] [] (lock_acquire+0x124/0x148) from [] (mutex_lock_nested+0x70/0x3a8) [ 36.464752] [] (mutex_lock_nested+0x70/0x3a8) from [] (LinuxLockMutex+0x1c/0x20 [omapdrm_pvr]) [ 36.474548] [] (LinuxLockMutex+0x1c/0x20 [omapdrm_pvr]) from [] (LinuxMMapPerProcessDisconnect+0x28/0x78 [omapdrm_pvr]) [ 36.488830] [] (LinuxMMapPerProcessDisconnect+0x28/0x78 [omapdrm_pvr]) from [] (OSPerProcessPrivateDataDeInit+0x20/0x44 [omapdrm_pvr]) [ 36.503387] [] (OSPerProcessPrivateDataDeInit+0x20/0x44 [omapdrm_pvr]) from [] (BridgedDispatchKM+0x1f8/0x228 [omapdrm_pvr]) [ 36.516265] [] (BridgedDispatchKM+0x1f8/0x228 [omapdrm_pvr]) from [] (PVRSRVPerProcessDataDisconnect+0x50/0x68 [omapdrm_pvr]) [ 36.523406] [] (PVRSRVPerProcessDataDisconnect+0x50/0x68 [omapdrm_pvr]) from [] (PVRSRVProcessDisconnect+0x18/0x1c [omapdrm_pvr]) [ 36.539031] [] (PVRSRVProcessDisconnect+0x18/0x1c [omapdrm_pvr]) from [] (PVRSRVRelease+0x5c/0x94 [omapdrm_pvr]) [ 36.552703] [] (PVRSRVRelease+0x5c/0x94 [omapdrm_pvr]) from [] (PVRSRVDrmRelease+0x24/0x2c [omapdrm_pvr]) [ 36.568725] [] (PVRSRVDrmRelease+0x24/0x2c [omapdrm_pvr]) from [] (dev_postclose+0x58/0x84) [ 36.579620] [] (dev_postclose+0x58/0x84) from [] (drm_release+0x2ec/0x388) [ 36.588775] [] (drm_release+0x2ec/0x388) from [] (__fput+0x110/0x1d8) [ 36.597442] [] (__fput+0x110/0x1d8) from [] (fput+0x40/0x44) [ 36.605346] [] (fput+0x40/0x44) from [] (filp_close+0x80/0x8c) [ 36.613342] [] (filp_close+0x80/0x8c) from [] (sys_close+0x9c/0xdc) [ 36.613372] [] (sys_close+0x9c/0xdc) from [] (ret_fast_syscall+0x0/0x3c)