mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
drm/xe/eustall: Fix a possible pointer dereference after free
If devm_add_action_or_reset() isn't successful, xe_eu_stall_fini() is invoked. So, unsuccessful return from devm_add_action_or_reset() shouldn't dereference gt->eu_stall as xe_eu_stall_fini() already frees it. Fix this issue. Fixes:9a0b11d4cf("drm/xe/eustall: Add support to init, enable and disable EU stall sampling") Signed-off-by: Harish Chegondi <harish.chegondi@intel.com> Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/eae49a414a7314921108e0388810aaee6261ad92.1741800396.git.harish.chegondi@intel.com (cherry picked from commit278469ff56) Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
This commit is contained in:
parent
5da39dce1f
commit
488975c2d3
|
|
@ -222,13 +222,7 @@ int xe_eu_stall_init(struct xe_gt *gt)
|
|||
goto exit_free;
|
||||
}
|
||||
|
||||
ret = devm_add_action_or_reset(xe->drm.dev, xe_eu_stall_fini, gt);
|
||||
if (ret)
|
||||
goto exit_destroy;
|
||||
|
||||
return 0;
|
||||
exit_destroy:
|
||||
destroy_workqueue(gt->eu_stall->buf_ptr_poll_wq);
|
||||
return devm_add_action_or_reset(xe->drm.dev, xe_eu_stall_fini, gt);
|
||||
exit_free:
|
||||
mutex_destroy(>->eu_stall->stream_lock);
|
||||
kfree(gt->eu_stall);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user