mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-23 07:23:12 +02:00
drm/i915/perf: Fail modprobe if i915_perf_init fails on OOM
i915_perf_init can fail due to OOM. Fail driver init if i915_perf_init fails. v2: (Jani) - Reorder patch in the series Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230323225901.3743681-6-umesh.nerlige.ramappa@intel.com
This commit is contained in:
parent
5f284e9c5a
commit
772a580392
|
@ -610,7 +610,9 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
i915_perf_init(dev_priv);
|
||||
ret = i915_perf_init(dev_priv);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = i915_ggtt_probe_hw(dev_priv);
|
||||
if (ret)
|
||||
|
|
|
@ -4902,7 +4902,7 @@ static void i915_perf_init_info(struct drm_i915_private *i915)
|
|||
* Note: i915-perf initialization is split into an 'init' and 'register'
|
||||
* phase with the i915_perf_register() exposing state to userspace.
|
||||
*/
|
||||
void i915_perf_init(struct drm_i915_private *i915)
|
||||
int i915_perf_init(struct drm_i915_private *i915)
|
||||
{
|
||||
struct i915_perf *perf = &i915->perf;
|
||||
|
||||
|
@ -5018,12 +5018,16 @@ void i915_perf_init(struct drm_i915_private *i915)
|
|||
perf->i915 = i915;
|
||||
|
||||
ret = oa_init_engine_groups(perf);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
drm_err(&i915->drm,
|
||||
"OA initialization failed %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
oa_init_supported_formats(perf);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int destroy_config(int id, void *p, void *data)
|
||||
|
|
|
@ -18,7 +18,7 @@ struct i915_oa_config;
|
|||
struct intel_context;
|
||||
struct intel_engine_cs;
|
||||
|
||||
void i915_perf_init(struct drm_i915_private *i915);
|
||||
int i915_perf_init(struct drm_i915_private *i915);
|
||||
void i915_perf_fini(struct drm_i915_private *i915);
|
||||
void i915_perf_register(struct drm_i915_private *i915);
|
||||
void i915_perf_unregister(struct drm_i915_private *i915);
|
||||
|
|
Loading…
Reference in New Issue
Block a user