DOWNSTREAM: msm-iommu-v1: fix shrinker lockdep issue (3)
*** fault: iova=16fd4000, flags=0
=================================
[ INFO: inconsistent lock state ]
4.7.0-rc7+ #525 Not tainted
---------------------------------
inconsistent {IN-RECLAIM_FS-W} -> {RECLAIM_FS-ON-W} usage.
irq/165-msm_iom/663 [HC0[0]:SC0[0]:HE1:SE1] takes:
(msm_iommu_lock){+.+.?.}, at: [<ffff0000084e9590>] _iommu_lock_acquire+0x18/0x20
{IN-RECLAIM_FS-W} state was registered at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008107700>] __lock_acquire+0x518/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac362c>] mutex_lock_nested+0x54/0x390
[<ffff0000084e9d10>] msm_iommu_unmap+0x30/0x100
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546a20>] msm_iommu_unmap+0x70/0xa8
[<ffff00000854222c>] put_iova+0x7c/0x90
[<ffff000008542fa0>] msm_gem_purge+0x40/0xf0
[<ffff0000085440c8>] msm_gem_shrinker_scan+0xc8/0x160
[<ffff0000081883f8>] shrink_slab.part.5+0x190/0x2d0
[<ffff00000818ba04>] shrink_zone+0x324/0x328
[<ffff00000818c4f4>] kswapd+0x534/0x810
[<ffff0000080da134>] kthread+0xcc/0xe0
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
irq event stamp: 19
hardirqs last enabled at (19): [<ffff000008ac38c4>] mutex_lock_nested+0x2ec/0x390
hardirqs last disabled at (18): [<ffff000008ac3650>] mutex_lock_nested+0x78/0x390
softirqs last enabled at (0): [<ffff0000080b77d4>] copy_process.isra.5.part.6+0x2dc/0x1508
softirqs last disabled at (0): [< (null)>] (null)
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(msm_iommu_lock);
<Interrupt>
lock(msm_iommu_lock);
*** DEADLOCK ***
1 lock held by irq/165-msm_iom/663:
#0: (msm_iommu_lock){+.+.?.}, at: [<ffff0000084e9590>] _iommu_lock_acquire+0x18/0x20
stack backtrace:
CPU: 3 PID: 663 Comm: irq/165-msm_iom Not tainted 4.7.0-rc7+ #525
Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
Call trace:
[<ffff000008088be8>] dump_backtrace+0x0/0x1a8
[<ffff000008088da4>] show_stack+0x14/0x20
[<ffff0000083b8234>] dump_stack+0xb4/0xf0
[<ffff0000081745cc>] print_usage_bug.part.23+0x264/0x27c
[<ffff000008105708>] mark_lock+0x150/0x6c0
[<ffff000008105ce8>] mark_held_locks+0x70/0xb0
[<ffff000008106360>] lockdep_trace_alloc+0x70/0xc8
[<ffff0000081cbc4c>] kmem_cache_alloc+0x3c/0x1e0
[<ffff0000084ebf70>] msm_iommu_secure_fault_handler_v2+0x60/0x508
[<ffff000008114010>] irq_thread_fn+0x28/0x68
[<ffff000008114310>] irq_thread+0x138/0x1f8
[<ffff0000080da134>] kthread+0xcc/0xe0
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
Signed-off-by:
Rob Clark <robdclark@gmail.com>
Loading
Please sign in to comment