DOWNSTREAM: msm-iommu-v1: fix shrinker lockdep issue (2)
======================================================
[ INFO: RECLAIM_FS-safe -> RECLAIM_FS-unsafe lock order detected ]
4.7.0-rc7+ #520 Not tainted
------------------------------------------------------
bootanimation/2068 [HC0[0]:SC0[0]:HE1:SE1] is trying to acquire:
(prepare_lock){+.+.+.}, at: [<ffff0000087e6538>] clk_prepare_lock+0x48/0xe0
and this task is already holding:
(msm_iommu_lock){+.+.-.}, at: [<ffff0000084e9d44>] msm_iommu_unmap+0x34/0x130
which would create a new lock dependency:
(msm_iommu_lock){+.+.-.} -> (prepare_lock){+.+.+.}
but this new dependency connects a RECLAIM_FS-irq-safe lock:
(msm_iommu_lock){+.+.-.}
... which became RECLAIM_FS-irq-safe at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008107700>] __lock_acquire+0x518/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000084e9d44>] msm_iommu_unmap+0x34/0x130
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546ac8>] msm_iommu_unmap+0x70/0xa8
[<ffff0000085422d4>] put_iova+0x7c/0x90
[<ffff000008543048>] msm_gem_purge+0x40/0xf0
[<ffff000008544170>] 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
to a RECLAIM_FS-irq-unsafe lock:
(prepare_lock){+.+.+.}
... which became RECLAIM_FS-irq-unsafe at:
... [<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008105ce8>] mark_held_locks+0x70/0xb0
[<ffff000008106360>] lockdep_trace_alloc+0x70/0xc8
[<ffff0000081cc718>] __kmalloc+0x50/0x260
[<ffff000008479438>] qcom_rpm_smd_write+0x50/0x168
[<ffff0000087f5790>] clk_smd_rpm_set_rate_active+0x58/0x60
[<ffff0000087f5938>] clk_smd_rpm_prepare+0x78/0x108
[<ffff0000087e68d4>] clk_core_prepare+0x9c/0xc0
[<ffff0000087e8c68>] clk_prepare+0x20/0x50
[<ffff00000847fb34>] enable_nodeclk.isra.4.part.5+0x1c/0x98
[<ffff0000084805fc>] msm_bus_dev_init_qos+0x13c/0x308
[<ffff00000855a6a0>] bus_for_each_dev+0x60/0xa0
[<ffff000008480138>] msm_bus_device_probe+0x478/0x800
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c724>] __driver_attach+0xb4/0xb8
[<ffff00000855a6a0>] bus_for_each_dev+0x60/0xa0
[<ffff00000855c860>] driver_attach+0x20/0x28
[<ffff00000855b098>] bus_add_driver+0x110/0x228
[<ffff00000855cfb0>] driver_register+0x60/0xf8
[<ffff00000855e884>] __platform_driver_register+0x44/0x50
[<ffff000008e36bf8>] msm_bus_device_init_driver+0x2c/0x64
[<ffff000008e10c7c>] do_one_initcall+0x84/0x118
[<ffff000008e10e54>] kernel_init_freeable+0x144/0x1e8
[<ffff000008abe188>] kernel_init+0x10/0x100
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
other info that might help us debug this:
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(prepare_lock);
local_irq_disable();
lock(msm_iommu_lock);
lock(prepare_lock);
<Interrupt>
lock(msm_iommu_lock);
*** DEADLOCK ***
3 locks held by bootanimation/2068:
#0: (drm_global_mutex){+.+.+.}, at: [<ffff000008503e88>] drm_release+0x40/0x348
#1: (&dev->struct_mutex){+.+.+.}, at: [<ffff000008504ee0>] drm_gem_object_unreference_unlocked+0x140/0x178
#2: (msm_iommu_lock){+.+.-.}, at: [<ffff0000084e9d44>] msm_iommu_unmap+0x34/0x130
the dependencies between RECLAIM_FS-irq-safe lock and the holding lock:
-> (msm_iommu_lock){+.+.-.} ops: 19991 {
HARDIRQ-ON-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff0000081076c0>] __lock_acquire+0x4d8/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000084ea17c>] msm_iommu_attach_dev+0x34/0x738
[<ffff0000084e4988>] iommu_attach_device+0xa0/0xd8
[<ffff00000854699c>] msm_iommu_attach+0x54/0x110
[<ffff00000853a780>] mdp5_kms_init+0x150/0x790
[<ffff0000085413cc>] msm_drm_bind+0x234/0x528
[<ffff000008556cd4>] try_to_bring_up_master+0x144/0x1a8
[<ffff0000085573c0>] component_add+0x98/0x160
[<ffff000008549dd4>] dsi_dev_probe+0x1c/0x28
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c7bc>] __device_attach_driver+0x94/0xd8
[<ffff00000855abe0>] bus_for_each_drv+0x58/0x98
[<ffff00000855c284>] __device_attach+0xcc/0x140
[<ffff00000855c838>] device_initial_probe+0x10/0x18
[<ffff00000855ae64>] bus_probe_device+0x94/0xa0
[<ffff00000855bb68>] deferred_probe_work_func+0x78/0xb0
[<ffff0000080d3064>] process_one_work+0x22c/0x440
[<ffff0000080d32c0>] worker_thread+0x48/0x498
[<ffff0000080da134>] kthread+0xcc/0xe0
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
SOFTIRQ-ON-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff0000081076e4>] __lock_acquire+0x4fc/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000084ea17c>] msm_iommu_attach_dev+0x34/0x738
[<ffff0000084e4988>] iommu_attach_device+0xa0/0xd8
[<ffff00000854699c>] msm_iommu_attach+0x54/0x110
[<ffff00000853a780>] mdp5_kms_init+0x150/0x790
[<ffff0000085413cc>] msm_drm_bind+0x234/0x528
[<ffff000008556cd4>] try_to_bring_up_master+0x144/0x1a8
[<ffff0000085573c0>] component_add+0x98/0x160
[<ffff000008549dd4>] dsi_dev_probe+0x1c/0x28
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c7bc>] __device_attach_driver+0x94/0xd8
[<ffff00000855abe0>] bus_for_each_drv+0x58/0x98
[<ffff00000855c284>] __device_attach+0xcc/0x140
[<ffff00000855c838>] device_initial_probe+0x10/0x18
[<ffff00000855ae64>] bus_probe_device+0x94/0xa0
[<ffff00000855bb68>] deferred_probe_work_func+0x78/0xb0
[<ffff0000080d3064>] process_one_work+0x22c/0x440
[<ffff0000080d32c0>] worker_thread+0x48/0x498
[<ffff0000080da134>] kthread+0xcc/0xe0
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
IN-RECLAIM_FS-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008107700>] __lock_acquire+0x518/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000084e9d44>] msm_iommu_unmap+0x34/0x130
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546ac8>] msm_iommu_unmap+0x70/0xa8
[<ffff0000085422d4>] put_iova+0x7c/0x90
[<ffff000008543048>] msm_gem_purge+0x40/0xf0
[<ffff000008544170>] 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
INITIAL USE at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff0000081074b4>] __lock_acquire+0x2cc/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000084ea17c>] msm_iommu_attach_dev+0x34/0x738
[<ffff0000084e4988>] iommu_attach_device+0xa0/0xd8
[<ffff00000854699c>] msm_iommu_attach+0x54/0x110
[<ffff00000853a780>] mdp5_kms_init+0x150/0x790
[<ffff0000085413cc>] msm_drm_bind+0x234/0x528
[<ffff000008556cd4>] try_to_bring_up_master+0x144/0x1a8
[<ffff0000085573c0>] component_add+0x98/0x160
[<ffff000008549dd4>] dsi_dev_probe+0x1c/0x28
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c7bc>] __device_attach_driver+0x94/0xd8
[<ffff00000855abe0>] bus_for_each_drv+0x58/0x98
[<ffff00000855c284>] __device_attach+0xcc/0x140
[<ffff00000855c838>] device_initial_probe+0x10/0x18
[<ffff00000855ae64>] bus_probe_device+0x94/0xa0
[<ffff00000855bb68>] deferred_probe_work_func+0x78/0xb0
[<ffff0000080d3064>] process_one_work+0x22c/0x440
[<ffff0000080d32c0>] worker_thread+0x48/0x498
[<ffff0000080da134>] kthread+0xcc/0xe0
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
}
... key at: [<ffff000008f22120>] msm_iommu_lock+0x60/0x80
... acquired at:
[<ffff000008105250>] check_usage+0x408/0x5c0
[<ffff000008105460>] check_irq_usage+0x58/0xc8
[<ffff000008108230>] __lock_acquire+0x1048/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000087e6538>] clk_prepare_lock+0x48/0xe0
[<ffff0000087e8c60>] clk_prepare+0x18/0x50
[<ffff0000084e98b8>] __enable_clocks+0x20/0xc0
[<ffff0000084e9d94>] msm_iommu_unmap+0x84/0x130
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546ac8>] msm_iommu_unmap+0x70/0xa8
[<ffff0000085422d4>] put_iova+0x7c/0x90
[<ffff000008543888>] msm_gem_free_object+0x58/0x1c8
[<ffff000008504d64>] drm_gem_object_free+0x1c/0x58
[<ffff000008504f04>] drm_gem_object_unreference_unlocked+0x164/0x178
[<ffff000008504f7c>] drm_gem_object_handle_unreference_unlocked+0x64/0xb0
[<ffff00000850501c>] drm_gem_object_release_handle+0x54/0x98
[<ffff0000083b9e08>] idr_for_each+0xd0/0x130
[<ffff000008504cec>] drm_gem_release+0x24/0x38
[<ffff0000085040a4>] drm_release+0x25c/0x348
[<ffff0000081e9874>] __fput+0x84/0x1b0
[<ffff0000081e9a04>] ____fput+0xc/0x18
[<ffff0000080d8bf0>] task_work_run+0xc8/0xe8
[<ffff0000080bdba8>] do_exit+0x2d8/0xa00
[<ffff0000080be338>] do_group_exit+0x38/0xa0
[<ffff0000080be3b0>] __wake_up_parent+0x0/0x28
[<ffff000008084f30>] el0_svc_naked+0x24/0x28
the dependencies between the lock to be acquired and RECLAIM_FS-irq-unsafe lock:
-> (prepare_lock){+.+.+.} ops: 11866 {
HARDIRQ-ON-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008105ce8>] mark_held_locks+0x70/0xb0
[<ffff000008105db8>] trace_hardirqs_on_caller+0x90/0x180
[<ffff000008105eb8>] trace_hardirqs_on+0x10/0x18
[<ffff000008ac55bc>] mutex_trylock+0x124/0x1f0
[<ffff0000087e6510>] clk_prepare_lock+0x20/0xe0
[<ffff0000087e8958>] __clk_create_clk.part.12+0x50/0xa0
[<ffff0000087e9510>] clk_register+0x190/0x5f8
[<ffff0000087e9be0>] devm_clk_register+0x48/0xa0
[<ffff0000087eeacc>] _qcom_cc_register_board_clk+0xc4/0x128
[<ffff0000087eece4>] qcom_cc_register_board_clk+0x54/0x68
[<ffff0000087f49c4>] gcc_msm8916_probe+0x34/0x70
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c7bc>] __device_attach_driver+0x94/0xd8
[<ffff00000855abe0>] bus_for_each_drv+0x58/0x98
[<ffff00000855c284>] __device_attach+0xcc/0x140
[<ffff00000855c838>] device_initial_probe+0x10/0x18
[<ffff00000855ae64>] bus_probe_device+0x94/0xa0
[<ffff000008559a2c>] device_add+0x354/0x548
[<ffff0000087da5a4>] of_device_add+0x5c/0x70
[<ffff0000087db000>] of_platform_device_create_pdata+0x90/0xf0
[<ffff0000087db12c>] of_platform_bus_create+0xcc/0x328
[<ffff0000087db16c>] of_platform_bus_create+0x10c/0x328
[<ffff0000087db4d4>] of_platform_populate+0x4c/0xb0
[<ffff000008e1345c>] arm64_device_init+0x30/0x58
[<ffff000008e10c7c>] do_one_initcall+0x84/0x118
[<ffff000008e10e54>] kernel_init_freeable+0x144/0x1e8
[<ffff000008abe188>] kernel_init+0x10/0x100
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
SOFTIRQ-ON-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008105ce8>] mark_held_locks+0x70/0xb0
[<ffff000008105e0c>] trace_hardirqs_on_caller+0xe4/0x180
[<ffff000008105eb8>] trace_hardirqs_on+0x10/0x18
[<ffff000008ac55bc>] mutex_trylock+0x124/0x1f0
[<ffff0000087e6510>] clk_prepare_lock+0x20/0xe0
[<ffff0000087e8958>] __clk_create_clk.part.12+0x50/0xa0
[<ffff0000087e9510>] clk_register+0x190/0x5f8
[<ffff0000087e9be0>] devm_clk_register+0x48/0xa0
[<ffff0000087eeacc>] _qcom_cc_register_board_clk+0xc4/0x128
[<ffff0000087eece4>] qcom_cc_register_board_clk+0x54/0x68
[<ffff0000087f49c4>] gcc_msm8916_probe+0x34/0x70
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c7bc>] __device_attach_driver+0x94/0xd8
[<ffff00000855abe0>] bus_for_each_drv+0x58/0x98
[<ffff00000855c284>] __device_attach+0xcc/0x140
[<ffff00000855c838>] device_initial_probe+0x10/0x18
[<ffff00000855ae64>] bus_probe_device+0x94/0xa0
[<ffff000008559a2c>] device_add+0x354/0x548
[<ffff0000087da5a4>] of_device_add+0x5c/0x70
[<ffff0000087db000>] of_platform_device_create_pdata+0x90/0xf0
[<ffff0000087db12c>] of_platform_bus_create+0xcc/0x328
[<ffff0000087db16c>] of_platform_bus_create+0x10c/0x328
[<ffff0000087db4d4>] of_platform_populate+0x4c/0xb0
[<ffff000008e1345c>] arm64_device_init+0x30/0x58
[<ffff000008e10c7c>] do_one_initcall+0x84/0x118
[<ffff000008e10e54>] kernel_init_freeable+0x144/0x1e8
[<ffff000008abe188>] kernel_init+0x10/0x100
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
RECLAIM_FS-ON-W at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff000008105ce8>] mark_held_locks+0x70/0xb0
[<ffff000008106360>] lockdep_trace_alloc+0x70/0xc8
[<ffff0000081cc718>] __kmalloc+0x50/0x260
[<ffff000008479438>] qcom_rpm_smd_write+0x50/0x168
[<ffff0000087f5790>] clk_smd_rpm_set_rate_active+0x58/0x60
[<ffff0000087f5938>] clk_smd_rpm_prepare+0x78/0x108
[<ffff0000087e68d4>] clk_core_prepare+0x9c/0xc0
[<ffff0000087e8c68>] clk_prepare+0x20/0x50
[<ffff00000847fb34>] enable_nodeclk.isra.4.part.5+0x1c/0x98
[<ffff0000084805fc>] msm_bus_dev_init_qos+0x13c/0x308
[<ffff00000855a6a0>] bus_for_each_dev+0x60/0xa0
[<ffff000008480138>] msm_bus_device_probe+0x478/0x800
[<ffff00000855dc0c>] platform_drv_probe+0x74/0xe0
[<ffff00000855c5c4>] driver_probe_device+0x1fc/0x2a8
[<ffff00000855c724>] __driver_attach+0xb4/0xb8
[<ffff00000855a6a0>] bus_for_each_dev+0x60/0xa0
[<ffff00000855c860>] driver_attach+0x20/0x28
[<ffff00000855b098>] bus_add_driver+0x110/0x228
[<ffff00000855cfb0>] driver_register+0x60/0xf8
[<ffff00000855e884>] __platform_driver_register+0x44/0x50
[<ffff000008e36bf8>] msm_bus_device_init_driver+0x2c/0x64
[<ffff000008e10c7c>] do_one_initcall+0x84/0x118
[<ffff000008e10e54>] kernel_init_freeable+0x144/0x1e8
[<ffff000008abe188>] kernel_init+0x10/0x100
[<ffff000008084ed0>] ret_from_fork+0x10/0x40
INITIAL USE at:
[<ffff000008105778>] mark_lock+0x1c0/0x6c0
[<ffff0000081074b4>] __lock_acquire+0x2cc/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac5590>] mutex_trylock+0xf8/0x1f0
[<ffff0000087e6510>] clk_prepare_lock+0x20/0xe0
[<ffff0000087e8958>] __clk_create_clk.part.12+0x50/0xa0
[<ffff0000087e9510>] clk_register+0x190/0x5f8
[<ffff0000087e9984>] clk_hw_register+0xc/0x20
[<ffff0000087eb76c>] clk_hw_register_fixed_rate_with_accuracy+0x94/0xe0
[<ffff0000087eb83c>] of_fixed_clk_setup+0x84/0xb8
[<ffff000008e48858>] of_clk_init+0x154/0x1e4
[<ffff000008e139f4>] time_init+0x10/0x44
[<ffff000008e10ab0>] start_kernel+0x254/0x39c
[<ffff000008e101bc>] __primary_switched+0x30/0x6c
}
... key at: [<ffff000008f59d78>] prepare_lock+0x60/0x80
... acquired at:
[<ffff000008105284>] check_usage+0x43c/0x5c0
[<ffff000008105460>] check_irq_usage+0x58/0xc8
[<ffff000008108230>] __lock_acquire+0x1048/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000087e6538>] clk_prepare_lock+0x48/0xe0
[<ffff0000087e8c60>] clk_prepare+0x18/0x50
[<ffff0000084e98b8>] __enable_clocks+0x20/0xc0
[<ffff0000084e9d94>] msm_iommu_unmap+0x84/0x130
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546ac8>] msm_iommu_unmap+0x70/0xa8
[<ffff0000085422d4>] put_iova+0x7c/0x90
[<ffff000008543888>] msm_gem_free_object+0x58/0x1c8
[<ffff000008504d64>] drm_gem_object_free+0x1c/0x58
[<ffff000008504f04>] drm_gem_object_unreference_unlocked+0x164/0x178
[<ffff000008504f7c>] drm_gem_object_handle_unreference_unlocked+0x64/0xb0
[<ffff00000850501c>] drm_gem_object_release_handle+0x54/0x98
[<ffff0000083b9e08>] idr_for_each+0xd0/0x130
[<ffff000008504cec>] drm_gem_release+0x24/0x38
[<ffff0000085040a4>] drm_release+0x25c/0x348
[<ffff0000081e9874>] __fput+0x84/0x1b0
[<ffff0000081e9a04>] ____fput+0xc/0x18
[<ffff0000080d8bf0>] task_work_run+0xc8/0xe8
[<ffff0000080bdba8>] do_exit+0x2d8/0xa00
[<ffff0000080be338>] do_group_exit+0x38/0xa0
[<ffff0000080be3b0>] __wake_up_parent+0x0/0x28
[<ffff000008084f30>] el0_svc_naked+0x24/0x28
stack backtrace:
CPU: 1 PID: 2068 Comm: bootanimation Not tainted 4.7.0-rc7+ #520
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
[<ffff0000081052a4>] check_usage+0x45c/0x5c0
[<ffff000008105460>] check_irq_usage+0x58/0xc8
[<ffff000008108230>] __lock_acquire+0x1048/0x18d8
[<ffff000008108e0c>] lock_acquire+0x4c/0x68
[<ffff000008ac36d4>] mutex_lock_nested+0x54/0x390
[<ffff0000087e6538>] clk_prepare_lock+0x48/0xe0
[<ffff0000087e8c60>] clk_prepare+0x18/0x50
[<ffff0000084e98b8>] __enable_clocks+0x20/0xc0
[<ffff0000084e9d94>] msm_iommu_unmap+0x84/0x130
[<ffff0000084e4c30>] iommu_unmap+0x98/0xf0
[<ffff000008546ac8>] msm_iommu_unmap+0x70/0xa8
[<ffff0000085422d4>] put_iova+0x7c/0x90
[<ffff000008543888>] msm_gem_free_object+0x58/0x1c8
[<ffff000008504d64>] drm_gem_object_free+0x1c/0x58
[<ffff000008504f04>] drm_gem_object_unreference_unlocked+0x164/0x178
[<ffff000008504f7c>] drm_gem_object_handle_unreference_unlocked+0x64/0xb0
[<ffff00000850501c>] drm_gem_object_release_handle+0x54/0x98
[<ffff0000083b9e08>] idr_for_each+0xd0/0x130
[<ffff000008504cec>] drm_gem_release+0x24/0x38
[<ffff0000085040a4>] drm_release+0x25c/0x348
[<ffff0000081e9874>] __fput+0x84/0x1b0
[<ffff0000081e9a04>] ____fput+0xc/0x18
[<ffff0000080d8bf0>] task_work_run+0xc8/0xe8
[<ffff0000080bdba8>] do_exit+0x2d8/0xa00
[<ffff0000080be338>] do_group_exit+0x38/0xa0
[<ffff0000080be3b0>] __wake_up_parent+0x0/0x28
[<ffff000008084f30>] el0_svc_naked+0x24/0x28
Signed-off-by:
Rob Clark <robdclark@gmail.com>
Signed-off-by:
Archit Taneja <architt@codeaurora.org>
Loading
Please sign in to comment