mirror of
https://github.com/torvalds/linux.git
synced 2026-10-10 20:38:02 +02:00
drm/xe/drm_ras: Make counter allocation drm managed
cleanup_node_param() is not registered for previous node in case of counter allocation failure, which results in stale memory of previous node that isn't cleaned up on unwind. Fix this using drm managed allocation, which is guaranteed to be cleaned up on unwind. Fixes:b40db12b54("drm/xe/xe_drm_ras: Add support for XE DRM RAS") Signed-off-by: Raag Jadav <raag.jadav@intel.com> Reviewed-by: Riana Tauro <riana.tauro@intel.com> Link: https://patch.msgid.link/20260602044919.702209-3-raag.jadav@intel.com Signed-off-by: Matt Roper <matthew.d.roper@intel.com> (cherry picked from commit58d77c77ea) Signed-off-by: Matthew Brost <matthew.brost@intel.com>
This commit is contained in:
parent
68938cc08e
commit
4dcfcdc9fb
|
|
@ -52,7 +52,7 @@ static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *x
|
|||
struct xe_drm_ras_counter *counter;
|
||||
int i;
|
||||
|
||||
counter = kcalloc(DRM_XE_RAS_ERR_COMP_MAX, sizeof(*counter), GFP_KERNEL);
|
||||
counter = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_COMP_MAX, sizeof(*counter), GFP_KERNEL);
|
||||
if (!counter)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
|
@ -104,7 +104,6 @@ static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
|
|||
{
|
||||
struct drm_ras_node *node = &ras->node[severity];
|
||||
|
||||
kfree(ras->info[severity]);
|
||||
ras->info[severity] = NULL;
|
||||
|
||||
kfree(node->device_name);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user