Jesse.Zhang
96a86dcb5b
drm/amdgpu: Fix circular locking in userq creation
...
A circular locking dependency was detected between the global
`adev->userq_mutex` and per-file `userq_mgr->userq_mutex` when
creating user queues. The issue occurs because:
1. `amdgpu_userq_suspend()` and `amdgpu_userq_resume` take `adev->userq_mutex` first, then
`userq_mgr->userq_mutex`
2. While `amdgpu_userq_create()` takes them in reverse order
This patch resolves the issue by:
1. Moving the `adev->userq_mutex` lock earlier in `amdgpu_userq_create()`
to cover the `amdgpu_userq_ensure_ev_fence()` call
2. Releasing it after we're done with both queue creation and the
scheduling halt check
v2: remove unused adev->userq_mutex lock (Prike)
Signed-off-by: Jesse Zhang <Jesse.Zhang@amd.com >
Reviewed-by: Prike Liang <Prike.Liang@amd.com >
Signed-off-by: Alex Deucher <alexander.deucher@amd.com >
2025-05-14 11:29:38 -04:00
..
2025-05-06 16:39:25 +10:00
2025-04-05 10:30:12 +02:00
2025-04-20 15:30:53 -07:00
2025-04-15 15:11:12 +02:00
2025-04-22 16:06:05 +09:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-30 08:37:52 -07:00
2025-05-02 10:24:37 -07:00
2025-04-25 15:03:19 -04:00
2025-04-05 10:30:12 +02:00
2025-05-06 16:39:25 +10:00
2025-04-03 12:21:44 -07:00
2025-04-04 09:49:17 -07:00
2025-04-15 15:18:55 +02:00
2025-04-02 18:03:34 -07:00
2025-04-30 16:27:34 +02:00
2025-03-25 20:40:51 -07:00
2025-04-23 09:32:57 +08:00
2025-04-21 08:30:13 -07:00
2025-04-05 10:30:12 +02:00
2025-05-12 07:14:34 +10:00
2025-04-28 12:38:53 +02:00
2025-04-05 10:30:12 +02:00
2025-05-06 16:39:25 +10:00
2025-04-11 17:32:38 -07:00
2025-04-11 20:47:45 -03:00
2025-04-14 20:31:00 +02:00
2025-05-14 11:29:38 -04:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-25 21:13:53 +00:00
2025-04-05 10:30:12 +02:00
2025-04-15 13:29:03 +02:00
2025-04-29 10:18:51 +02:00
2025-03-31 11:44:00 +02:00
2025-03-25 15:00:18 -07:00
2025-04-20 11:57:54 -07:00
2025-04-10 14:47:55 -03:00
2025-04-20 11:57:54 -07:00
2025-05-02 08:57:00 -07:00
2025-05-02 21:07:02 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-15 18:21:39 +02:00
2025-04-28 12:18:21 -07:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-04-05 10:30:12 +02:00
2025-03-26 19:57:34 -07:00
2025-03-29 14:33:13 -07:00
2025-04-26 13:02:36 -07:00
2025-04-07 17:58:41 +02:00
2025-04-05 10:30:12 +02:00
2025-04-07 09:02:49 +02:00
2025-05-01 07:24:05 -07:00
2025-04-05 10:30:12 +02:00
2025-04-04 14:23:07 -07:00
2025-04-02 20:27:18 -07:00
2025-05-02 10:24:37 -07:00
2025-04-11 14:41:22 +02:00
2025-03-29 11:23:16 -07:00
2025-04-05 10:30:12 +02:00
2025-04-26 13:02:36 -07:00
2025-04-05 10:30:12 +02:00
2025-03-28 19:36:53 -07:00
2025-04-01 12:47:11 -07:00
2025-04-29 10:27:25 +02:00
2025-05-06 16:39:25 +10:00
2025-04-02 18:09:17 -07:00
2025-04-20 11:57:54 -07:00
2025-03-25 15:00:18 -07:00
2025-04-15 18:22:32 +02:00
2025-05-01 07:01:31 -07:00
2025-04-12 08:11:19 -07:00
2025-04-08 19:30:58 +02:00
2025-04-02 10:30:10 -07:00
2025-03-29 17:18:50 -07:00
2025-04-05 10:30:12 +02:00
2025-04-09 12:12:41 +02:00
2025-05-02 11:14:58 -07:00
2025-04-04 09:06:32 -07:00
2025-04-30 16:23:37 +02:00
2025-05-02 16:33:50 -07:00
2025-04-05 10:30:12 +02:00
2025-04-11 22:13:00 -04:00
2025-04-15 18:57:25 +02:00
2025-04-02 18:23:31 -07:00
2025-04-15 15:02:39 +02:00
2025-04-28 21:23:29 -04:00
2025-04-18 06:49:40 +02:00
2025-04-14 08:31:45 -06:00
2025-04-18 10:08:11 -04:00
2025-04-07 14:35:48 +02:00
2025-04-05 10:30:12 +02:00
2025-04-18 10:05:49 -04:00
2025-04-05 10:30:12 +02:00
2025-04-07 11:24:12 +02:00