Commit 063ba63d authored by Rob Clark's avatar Rob Clark Committed by Srinivas Kandagatla
Browse files

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: default avatarRob Clark <robdclark@gmail.com>
parent e7c0bbf4
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment