Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/vc4: Stop the active perfmon before being destroyed
stable inclusion from stable-v6.6.57 commit 937943c042503dc6087438bf3557f9057a588ba0 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IB2M97 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=937943c042503dc6087438bf3557f9057a588ba0 -------------------------------- commit 0b2ad4f6f2bec74a5287d96cb2325a5e11706f22 upstream. Upon closing the file descriptor, the active performance monitor is not stopped. Although all perfmons are destroyed in `vc4_perfmon_close_file()`, the active performance monitor's pointer (`vc4->active_perfmon`) is still retained. If we open a new file descriptor and submit a few jobs with performance monitors, the driver will attempt to stop the active performance monitor using the stale pointer in `vc4->active_perfmon`. However, this pointer is no longer valid because the previous process has already terminated, and all performance monitors associated with it have been destroyed and freed. To fix this, when the active performance monitor belongs to a given process, explicitly stop it before destroying and freeing it. Cc: [email protected] # v4.17+ Cc: Boris Brezillon <[email protected]> Cc: Juan A. Suarez Romero <[email protected]> Fixes: 65101d8 ("drm/vc4: Expose performance counters to userspace") Signed-off-by: Maíra Canal <[email protected]> Reviewed-by: Juan A. Suarez <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Wen Zhiwei <[email protected]>
- Loading branch information