]> git.hungrycats.org Git - linux/commitdiff
drm/xe/pcode: Don't ignore drmm_mutex_init failure
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Fri, 29 May 2026 19:59:56 +0000 (21:59 +0200)
committerMichal Wajdeczko <michal.wajdeczko@intel.com>
Mon, 1 Jun 2026 13:45:21 +0000 (15:45 +0200)
The drm_device-managed mutex_init might fail and return an error.
Add proper error handling. While around, update the function name
to clearly indicate this is an early software-only initialization.

Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/20260529195956.25349-1-michal.wajdeczko@intel.com
drivers/gpu/drm/xe/xe_pcode.c
drivers/gpu/drm/xe/xe_pcode.h
drivers/gpu/drm/xe/xe_tile.c

index dc66d0c7ee062bc20da5a687a52e49b21a7c0f1a..866986694d9c40a1e6d6f365ab9d08e89ae91677 100644 (file)
@@ -323,15 +323,17 @@ int xe_pcode_ready(struct xe_device *xe, bool locked)
 }
 
 /**
- * xe_pcode_init: initialize components of PCODE
+ * xe_pcode_init_early() - Initialize components of PCODE
  * @tile: tile instance
  *
  * This function initializes the xe_pcode component.
  * To be called once only during probe.
+ *
+ * Return: 0 on success or a negative error code on failure.
  */
-void xe_pcode_init(struct xe_tile *tile)
+int xe_pcode_init_early(struct xe_tile *tile)
 {
-       drmm_mutex_init(&tile_to_xe(tile)->drm, &tile->pcode.lock);
+       return drmm_mutex_init(&tile_to_xe(tile)->drm, &tile->pcode.lock);
 }
 
 /**
index 490e4f26960780a7237747f51679834249eacc83..18260c29e620a2ab4d7053abed7d1bfe9dc08b92 100644 (file)
@@ -12,7 +12,7 @@ struct drm_device;
 struct xe_device;
 struct xe_tile;
 
-void xe_pcode_init(struct xe_tile *tile);
+int xe_pcode_init_early(struct xe_tile *tile);
 int xe_pcode_probe_early(struct xe_device *xe);
 int xe_pcode_ready(struct xe_device *xe, bool locked);
 int xe_pcode_init_min_freq_table(struct xe_tile *tile, u32 min_gt_freq,
index c465aae7883cc1dd75651f2c7866af74ee3e5aaf..74d925a337b769667243e005e040d2cbc428c46e 100644 (file)
@@ -157,7 +157,9 @@ int xe_tile_init_early(struct xe_tile *tile, struct xe_device *xe, u8 id)
        if (err)
                return err;
 
-       xe_pcode_init(tile);
+       err = xe_pcode_init_early(tile);
+       if (err)
+               return err;
 
        return 0;
 }