]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amd/display: Fix slab-use-after-free on hdcp_work
authorMario Limonciello <mario.limonciello@amd.com>
Fri, 28 Feb 2025 19:18:14 +0000 (13:18 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:30:51 +0000 (14:30 +0200)
commit e65e7bea220c3ce8c4c793b4ba35557f4994ab2b upstream.

[Why]
A slab-use-after-free is reported when HDCP is destroyed but the
property_validate_dwork queue is still running.

[How]
Cancel the delayed work when destroying workqueue.

Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4006
Fixes: da3fd7ac0bcf ("drm/amd/display: Update CP property based on HW query")
Cc: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Tom Chung <chiahsuan.chung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 725a04ba5a95e89c89633d4322430cfbca7ce128)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_hdcp.c

index 0c3b15992b8147bd15b8fe485ff90c0c3176bcd1..12f47829480540bde6eccf463f74b98947d9fbc2 100644 (file)
@@ -383,6 +383,7 @@ void hdcp_destroy(struct kobject *kobj, struct hdcp_workqueue *hdcp_work)
        for (i = 0; i < hdcp_work->max_link; i++) {
                cancel_delayed_work_sync(&hdcp_work[i].callback_dwork);
                cancel_delayed_work_sync(&hdcp_work[i].watchdog_timer_dwork);
+               cancel_delayed_work_sync(&hdcp_work[i].property_validate_dwork);
        }
 
        sysfs_remove_bin_file(kobj, &hdcp_work[0].attr);