]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Fix ISP segfault issue in kernel v7.0
authorPratap Nirujogi <pratap.nirujogi@amd.com>
Wed, 11 Mar 2026 16:15:09 +0000 (12:15 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Mar 2026 16:19:29 +0000 (12:19 -0400)
Add NULL pointer checks for dev->type before accessing
dev->type->name in ISP genpd add/remove functions to
prevent kernel crashes.

This regression was introduced in v7.0 as the wakeup sources
are registered using physical device instead of ACPI device.
This led to adding wakeup source device as the first child of
AMDGPU device without initializing dev-type variable, and
resulted in segfault when accessed it in the amdgpu isp driver.

Fixes: 057edc58aa59 ("ACPI: PM: Register wakeup sources under physical devices")
Suggested-by: Bin Du <Bin.Du@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Pratap Nirujogi <pratap.nirujogi@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit c51632d1ed7ac5aed2d40dbc0718d75342c12c6a)

drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c

index b3590b33cab9eb48eb882ed807e57c486d69747d..485ecdec96184392010684f9d0286441df9245e7 100644 (file)
@@ -129,7 +129,7 @@ static int isp_genpd_add_device(struct device *dev, void *data)
        if (!pdev)
                return -EINVAL;
 
-       if (!dev->type->name) {
+       if (!dev->type || !dev->type->name) {
                drm_dbg(&adev->ddev, "Invalid device type to add\n");
                goto exit;
        }
@@ -165,7 +165,7 @@ static int isp_genpd_remove_device(struct device *dev, void *data)
        if (!pdev)
                return -EINVAL;
 
-       if (!dev->type->name) {
+       if (!dev->type || !dev->type->name) {
                drm_dbg(&adev->ddev, "Invalid device type to remove\n");
                goto exit;
        }