]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/amdgpu: Check if NBIO funcs are NULL in amdgpu_device_baco_exit
authorFriedrich Vock <friedrich.vock@gmx.de>
Tue, 14 May 2024 07:06:38 +0000 (09:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 3 Aug 2024 06:59:50 +0000 (08:59 +0200)
[ Upstream commit 0cdb3f9740844b9d95ca413e3fcff11f81223ecf ]

The special case for VM passthrough doesn't check adev->nbio.funcs
before dereferencing it. If GPUs that don't have an NBIO block are
passed through, this leads to a NULL pointer dereference on startup.

Signed-off-by: Friedrich Vock <friedrich.vock@gmx.de>
Fixes: 1bece222eabe ("drm/amdgpu: Clear doorbell interrupt status for Sienna Cichlid")
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c

index 33f791d92ddf3dd8a113e88fb3c2c13fda81641b..ee7df1d84e028fae39418019f94ed00c8ad5c01b 100644 (file)
@@ -6173,7 +6173,7 @@ int amdgpu_device_baco_exit(struct drm_device *dev)
            adev->nbio.funcs->enable_doorbell_interrupt)
                adev->nbio.funcs->enable_doorbell_interrupt(adev, true);
 
-       if (amdgpu_passthrough(adev) &&
+       if (amdgpu_passthrough(adev) && adev->nbio.funcs &&
            adev->nbio.funcs->clear_doorbell_interrupt)
                adev->nbio.funcs->clear_doorbell_interrupt(adev);