mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 19:13:47 +02:00
drm/xe/gsc: Fix double-free of managed BO in error path
The error path in xe_gsc_init_post_hwconfig() explicitly frees a BO
allocated with xe_managed_bo_create_pin_map() via
xe_bo_unpin_map_no_vm(). Since the managed BO already has a devm
cleanup action registered, this causes a double-free when devm
unwinds during probe failure.
Remove the explicit free and let devm handle it, consistent with
all other xe_managed_bo_create_pin_map() callers.
Fixes: 2e5d47fe78 ("drm/xe/uc: Use managed bo for HuC and GSC objects")
Reviewed-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Assisted-by: Claude:claude-opus-4.6
Link: https://patch.msgid.link/20260511154134.223696-1-shuicheng.lin@intel.com
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
(cherry picked from commit 71d61e3e299a17139e47f980a4d6f425b2c59bf7)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
This commit is contained in:
parent
6eb0168d09
commit
d3ded53fab
|
|
@ -482,8 +482,7 @@ int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc)
|
|||
EXEC_QUEUE_FLAG_PERMANENT, 0);
|
||||
if (IS_ERR(q)) {
|
||||
xe_gt_err(gt, "Failed to create queue for GSC submission\n");
|
||||
err = PTR_ERR(q);
|
||||
goto out_bo;
|
||||
return PTR_ERR(q);
|
||||
}
|
||||
|
||||
wq = alloc_ordered_workqueue("gsc-ordered-wq", 0);
|
||||
|
|
@ -506,8 +505,6 @@ int xe_gsc_init_post_hwconfig(struct xe_gsc *gsc)
|
|||
|
||||
out_q:
|
||||
xe_exec_queue_put(q);
|
||||
out_bo:
|
||||
xe_bo_unpin_map_no_vm(bo);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user