mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
drm/panthor: Fix race condition when gathering fdinfo group samples
Commite16635d88f
("drm/panthor: add DRM fdinfo support") failed to protect access to groups with an xarray lock, which could lead to use-after-free errors. Fixes:e16635d88f
("drm/panthor: add DRM fdinfo support") Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Steven Price <steven.price@arm.com> Signed-off-by: Adrián Larumbe <adrian.larumbe@collabora.com> Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/20250130172851.941597-6-adrian.larumbe@collabora.com Link: https://patchwork.freedesktop.org/patch/msgid/20250107173310.88329-1-florent.tomasin@arm.com
This commit is contained in:
parent
f780ef56f7
commit
0590c94c35
1 changed files with 2 additions and 0 deletions
|
@ -2878,6 +2878,7 @@ void panthor_fdinfo_gather_group_samples(struct panthor_file *pfile)
|
|||
if (IS_ERR_OR_NULL(gpool))
|
||||
return;
|
||||
|
||||
xa_lock(&gpool->xa);
|
||||
xa_for_each(&gpool->xa, i, group) {
|
||||
mutex_lock(&group->fdinfo.lock);
|
||||
pfile->stats.cycles += group->fdinfo.data.cycles;
|
||||
|
@ -2886,6 +2887,7 @@ void panthor_fdinfo_gather_group_samples(struct panthor_file *pfile)
|
|||
group->fdinfo.data.time = 0;
|
||||
mutex_unlock(&group->fdinfo.lock);
|
||||
}
|
||||
xa_unlock(&gpool->xa);
|
||||
}
|
||||
|
||||
static void group_sync_upd_work(struct work_struct *work)
|
||||
|
|
Loading…
Add table
Reference in a new issue