Hans de Goede
4b9caaa028
drm/amdgpu: Move mutex_init(&smu->message_lock) to smu_early_init()
Lockdep complains about the smu->message_lock mutex being used before
it is initialized through the following call path:
amdgpu_device_init()
amdgpu_dpm_mode2_reset()
smu_mode2_reset()
smu_v12_0_mode2_reset()
smu_cmn_send_smc_msg_with_param()
Move the mutex_init() call to smu_early_init() to fix the mutex being
used before it is initialized.
This fixes the following lockdep splat:
[ 3.867331] ------------[ cut here ]------------
[ 3.867335] fbcon: Taking over console
[ 3.867338] DEBUG_LOCKS_WARN_ON(lock->magic != lock)
[ 3.867340] WARNING: CPU: 14 PID: 491 at kernel/locking/mutex.c:579 __mutex_lock+0x44c/0x830
[ 3.867349] Modules linked in: amdgpu(+) crct10dif_pclmul drm_ttm_helper crc32_pclmul ttm crc32c_intel ghash_clmulni_intel hid_lg_g15 iommu_v2 sp5100_tco nvme gpu_sched drm_dp_helper nvme_core ccp wmi video hid_logitech_dj ip6_tables ip_tables ipmi_devintf ipmi_msghandler fuse i2c_dev
[ 3.867363] CPU: 14 PID: 491 Comm: systemd-udevd Tainted: G I 5.18.0-rc5+ #33
[ 3.867366] Hardware name: Micro-Star International Co., Ltd. MS-7C95/B550M PRO-VDH WIFI (MS-7C95), BIOS 2.90 12/23/2021
[ 3.867369] RIP: 0010:__mutex_lock+0x44c/0x830
[ 3.867372] Code: ff 85 c0 0f 84 33 fc ff ff 8b 0d b7 50 25 01 85 c9 0f 85 25 fc ff ff 48 c7 c6 fb 41 82 99 48 c7 c7 6b 63 80 99 e8 88 2a f8 ff <0f> 0b e9 0b fc ff ff f6 83 b9 0c 00 00 01 0f 85 64 ff ff ff 4c 89
[ 3.867377] RSP: 0018:ffffaef8c0fc79f0 EFLAGS: 00010286
[ 3.867380] RAX: 0000000000000028 RBX: 0000000000000000 RCX: 0000000000000027
[ 3.867382] RDX: ffff9ccc0dda0928 RSI: 0000000000000001 RDI: ffff9ccc0dda0920
[ 3.867384] RBP: ffffaef8c0fc7a80 R08: 0000000000000000 R09: ffffaef8c0fc7820
[ 3.867386] R10: 0000000000000003 R11: ffff9ccc2a2fffe8 R12: 0000000000000002
[ 3.867388] R13: ffff9cc990808058 R14: 0000000000000000 R15: ffff9cc98bfc0000
[ 3.867390] FS: 00007fc4d830f580(0000) GS:ffff9ccc0dd80000(0000) knlGS:0000000000000000
[ 3.867394] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 3.867396] CR2: 0000560a77031410 CR3: 000000010f522000 CR4: 0000000000750ee0
[ 3.867398] PKRU: 55555554
[ 3.867399] Call Trace:
[ 3.867401] <TASK>
[ 3.867403] ? smu_cmn_send_smc_msg_with_param+0x98/0x240 [amdgpu]
[ 3.867533] ? __mutex_lock+0x90/0x830
[ 3.867535] ? amdgpu_dpm_mode2_reset+0x37/0x60 [amdgpu]
[ 3.867653] ? smu_cmn_send_smc_msg_with_param+0x98/0x240 [amdgpu]
[ 3.867758] smu_cmn_send_smc_msg_with_param+0x98/0x240 [amdgpu]
[ 3.867857] smu_mode2_reset+0x2b/0x50 [amdgpu]
[ 3.867953] amdgpu_dpm_mode2_reset+0x46/0x60 [amdgpu]
[ 3.868096] amdgpu_device_init.cold+0x1069/0x1e78 [amdgpu]
[ 3.868219] ? _raw_spin_unlock_irqrestore+0x30/0x50
[ 3.868222] ? pci_conf1_read+0x9b/0xf0
[ 3.868226] amdgpu_driver_load_kms+0x15/0x110 [amdgpu]
[ 3.868314] amdgpu_pci_probe+0x1a9/0x3c0 [amdgpu]
[ 3.868398] local_pci_probe+0x41/0x80
[ 3.868401] pci_device_probe+0xab/0x200
[ 3.868404] really_probe+0x1a1/0x370
[ 3.868407] __driver_probe_device+0xfc/0x170
[ 3.868410] driver_probe_device+0x1f/0x90
[ 3.868412] __driver_attach+0xbf/0x1a0
[ 3.868414] ? __device_attach_driver+0xe0/0xe0
[ 3.868416] bus_for_each_dev+0x65/0x90
[ 3.868419] bus_add_driver+0x151/0x1f0
[ 3.868421] driver_register+0x89/0xd0
[ 3.868423] ? 0xffffffffc0bd4000
[ 3.868425] do_one_initcall+0x5d/0x300
[ 3.868428] ? do_init_module+0x22/0x240
[ 3.868431] ? rcu_read_lock_sched_held+0x3c/0x70
[ 3.868434] ? trace_kmalloc+0x30/0xe0
[ 3.868437] ? kmem_cache_alloc_trace+0x1e6/0x3a0
[ 3.868440] do_init_module+0x4a/0x240
[ 3.868442] __do_sys_finit_module+0x93/0xf0
[ 3.868446] do_syscall_64+0x5b/0x80
[ 3.868449] ? rcu_read_lock_sched_held+0x3c/0x70
[ 3.868451] ? lockdep_hardirqs_on_prepare+0xd9/0x180
[ 3.868454] ? do_syscall_64+0x67/0x80
[ 3.868456] ? do_syscall_64+0x67/0x80
[ 3.868458] ? do_syscall_64+0x67/0x80
[ 3.868460] ? do_syscall_64+0x67/0x80
[ 3.868462] entry_SYSCALL_64_after_hwframe+0x44/0xae
[ 3.868465] RIP: 0033:0x7fc4d8ec1ced
[ 3.868467] Code: 5d c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d fb 70 0e 00 f7 d8 64 89 01 48
[ 3.868472] RSP: 002b:00007fff687ae6b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
[ 3.868475] RAX: ffffffffffffffda RBX: 0000560a76fbca60 RCX: 00007fc4d8ec1ced
[ 3.868477] RDX: 0000000000000000 RSI: 00007fc4d902343c RDI: 0000000000000011
[ 3.868479] RBP: 00007fc4d902343c R08: 0000000000000000 R09: 0000560a76fb59c0
[ 3.868481] R10: 0000000000000011 R11: 0000000000000246 R12: 0000000000020000
[ 3.868484] R13: 0000560a76f8bfd0 R14: 0000000000000000 R15: 0000560a76fc2d10
[ 3.868487] </TASK>
[ 3.868489] irq event stamp: 120617
[ 3.868490] hardirqs last enabled at (120617): [<ffffffff9817169e>] __up_console_sem+0x5e/0x70
[ 3.868494] hardirqs last disabled at (120616): [<ffffffff98171683>] __up_console_sem+0x43/0x70
[ 3.868497] softirqs last enabled at (119684): [<ffffffff980ee83a>] __irq_exit_rcu+0xca/0x100
[ 3.868501] softirqs last disabled at (119679): [<ffffffff980ee83a>] __irq_exit_rcu+0xca/0x100
[ 3.868504] ---[ end trace 0000000000000000 ]---
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2022-05-16 10:02:58 -04:00
..
2022-02-08 12:15:04 +01:00
2022-02-18 19:36:36 +01:00
2022-01-03 13:44:38 +01:00
2022-02-23 09:39:37 +09:00
2022-01-13 12:50:48 +00:00
2022-02-25 12:30:01 -08:00
2022-02-17 07:54:03 -07:00
2022-01-18 10:05:48 +02:00
2022-02-06 13:19:46 +01:00
2022-01-22 08:33:35 +02:00
2022-02-14 10:52:27 +10:00
2022-02-17 17:05:07 -08:00
2022-02-07 17:42:44 +01:00
2022-01-26 18:57:09 -08:00
2022-01-26 19:40:33 +01:00
2022-02-09 13:18:49 +05:30
2022-01-05 18:31:17 +01:00
2022-01-31 11:22:53 +11:00
2022-01-04 17:29:31 -08:00
2022-01-15 20:37:06 +02:00
2022-02-15 11:04:16 +05:30
2022-02-25 05:50:18 +10:00
2022-02-15 15:54:46 +01:00
2022-02-01 19:02:41 +10:00
2022-02-27 12:30:54 -08:00
2022-05-16 10:02:58 -04:00
2022-02-14 16:28:51 +01:00
2022-02-09 14:33:21 +00:00
2022-02-22 08:15:39 -08:00
2022-02-18 10:37:33 +01:00
2022-01-13 02:05:50 +01:00
2022-02-21 17:58:09 +01:00
2022-02-25 16:46:51 -04:00
2022-02-20 11:15:46 -08:00
2022-02-04 12:57:26 +01:00
2022-02-02 10:49:29 +00:00
2021-12-30 12:12:12 -08:00
2022-01-12 16:59:22 -08:00
2022-01-22 08:33:35 +02:00
2022-01-13 11:19:07 -08:00
2022-02-17 07:54:03 -07:00
2022-02-07 16:35:35 -08:00
2022-01-11 11:35:28 -08:00
2022-01-10 10:33:52 -05:00
2022-01-12 11:11:34 -08:00
2022-02-14 10:52:27 +10:00
2022-02-08 16:04:49 +01:00
2022-02-25 12:12:06 -08:00
2022-02-24 10:05:08 -08:00
2022-01-12 14:17:45 +00:00
2022-01-17 08:14:18 +02:00
2022-01-22 08:33:37 +02:00
2022-01-18 10:05:48 +02:00
2022-02-23 14:43:11 +01:00
2022-02-21 17:59:25 +01:00
2022-02-17 17:13:52 -06:00
2022-01-28 10:15:34 +01:00
2022-02-27 13:07:40 -08:00
2022-01-16 08:08:11 +02:00
2022-01-13 09:05:29 -08:00
2022-02-02 10:33:04 +05:30
2022-02-19 02:03:58 +01:00
2022-02-28 14:57:14 +10:00
2022-01-22 08:33:37 +02:00
2022-02-11 21:19:51 +01:00
2022-01-06 12:18:08 +00:00
2022-01-20 13:25:01 +02:00
2022-02-22 11:56:29 +00:00
2022-01-17 16:44:26 -06:00
2022-01-10 08:32:37 -08:00
2022-01-27 11:23:26 +02:00
2022-01-16 23:50:34 +01:00
2022-02-09 22:55:01 +01:00
2022-02-14 22:10:29 -05:00
2022-02-18 09:20:52 -08:00
2022-01-14 16:02:28 +01:00
2022-02-25 12:37:41 -08:00
2022-02-28 14:57:14 +10:00
2022-01-24 23:30:24 -05:00
2022-02-08 09:48:44 +01:00
2022-02-24 20:14:19 +01:00
2022-02-25 11:45:29 -08:00
2021-12-29 10:54:50 +01:00
2022-02-24 14:51:45 +01:00
2022-01-18 10:05:48 +02:00
2022-01-20 13:31:46 +02:00
2022-02-23 12:32:33 +00:00
2022-05-05 16:50:08 -04:00
2022-01-23 06:20:44 +02:00
2022-01-14 18:50:53 -05:00
2022-01-17 08:07:57 +02:00
2022-02-10 11:10:23 +01:00
2022-01-22 08:33:37 +02:00