diff options
author | Bommithi Sakeena <bommithi.sakeena@intel.com> | 2023-09-27 16:50:11 +0000 |
---|---|---|
committer | Rodrigo Vivi <rodrigo.vivi@intel.com> | 2023-12-21 11:41:21 -0500 |
commit | 28b1d9155c3c1651a6e184e1286cebb63ec6b51c (patch) | |
tree | 6ec8d9dc0437d92b1226ec42beb15f782ca3b43e /drivers/gpu | |
parent | 5349bb76d62048e73f6e4a863b40a309c62dc47f (diff) | |
download | lwn-28b1d9155c3c1651a6e184e1286cebb63ec6b51c.tar.gz lwn-28b1d9155c3c1651a6e184e1286cebb63ec6b51c.zip |
drm/xe: Ensure mutex are destroyed
Add missing mutex_destroy calls to fini functions or convert to
drmm_mutex_init where fini function is not available.
Cc: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Bommithi Sakeena <bommithi.sakeena@intel.com>
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/xe/xe_guc_ct.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/xe_guc_pc.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/xe_guc_submit.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/xe/xe_pcode.c | 4 |
4 files changed, 6 insertions, 2 deletions
diff --git a/drivers/gpu/drm/xe/xe_guc_ct.c b/drivers/gpu/drm/xe/xe_guc_ct.c index 2046bd269bbd..8b686c8b3339 100644 --- a/drivers/gpu/drm/xe/xe_guc_ct.c +++ b/drivers/gpu/drm/xe/xe_guc_ct.c @@ -137,7 +137,7 @@ int xe_guc_ct_init(struct xe_guc_ct *ct) xe_assert(xe, !(guc_ct_size() % PAGE_SIZE)); - mutex_init(&ct->lock); + drmm_mutex_init(&xe->drm, &ct->lock); spin_lock_init(&ct->fast_lock); xa_init(&ct->fence_lookup); INIT_WORK(&ct->g2h_worker, g2h_worker_func); diff --git a/drivers/gpu/drm/xe/xe_guc_pc.c b/drivers/gpu/drm/xe/xe_guc_pc.c index 8a4d299d6cb0..d9375d1d582f 100644 --- a/drivers/gpu/drm/xe/xe_guc_pc.c +++ b/drivers/gpu/drm/xe/xe_guc_pc.c @@ -890,6 +890,7 @@ void xe_guc_pc_fini(struct xe_guc_pc *pc) XE_WARN_ON(xe_guc_pc_stop(pc)); sysfs_remove_files(pc_to_gt(pc)->sysfs, pc_attrs); xe_bo_unpin_map_no_vm(pc->bo); + mutex_destroy(&pc->freq_lock); } /** diff --git a/drivers/gpu/drm/xe/xe_guc_submit.c b/drivers/gpu/drm/xe/xe_guc_submit.c index 3e136b60196e..d0e60349fc5a 100644 --- a/drivers/gpu/drm/xe/xe_guc_submit.c +++ b/drivers/gpu/drm/xe/xe_guc_submit.c @@ -195,6 +195,7 @@ static void guc_submit_fini(struct drm_device *drm, void *arg) xa_destroy(&guc->submission_state.exec_queue_lookup); ida_destroy(&guc->submission_state.guc_ids); bitmap_free(guc->submission_state.guc_ids_bitmap); + mutex_destroy(&guc->submission_state.lock); } #define GUC_ID_MAX 65535 diff --git a/drivers/gpu/drm/xe/xe_pcode.c b/drivers/gpu/drm/xe/xe_pcode.c index 7f1bf2297f51..4a240acf7625 100644 --- a/drivers/gpu/drm/xe/xe_pcode.c +++ b/drivers/gpu/drm/xe/xe_pcode.c @@ -8,6 +8,8 @@ #include <linux/delay.h> #include <linux/errno.h> +#include <drm/drm_managed.h> + #include "xe_gt.h" #include "xe_mmio.h" #include "xe_pcode_api.h" @@ -276,7 +278,7 @@ int xe_pcode_init(struct xe_gt *gt) */ int xe_pcode_probe(struct xe_gt *gt) { - mutex_init(>->pcode.lock); + drmm_mutex_init(>_to_xe(gt)->drm, >->pcode.lock); if (!IS_DGFX(gt_to_xe(gt))) return 0; |