drm/radeon: Fix kernel panic on shutdown
authorLarry Finger <Larry.Finger@lwfinger.net>
Mon, 31 Oct 2016 16:19:39 +0000 (12:19 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 31 Oct 2016 16:19:39 +0000 (12:19 -0400)
Since commit a481daa88fd4 ("drm/radeon: always apply pci shutdown
callbacks"), a Dell Latitude D600 laptop has crashed on shutdown. The
PCI Identification of the graphics adapter is "VGA compatible controller
[0300]: Advanced Micro Devices, Inc. [AMD/ATI] RV250/M9 GL [Mobility
FireGL 9000/Radeon 9000] [1002:4c66] (rev 01)".

Prior to commit b0c80bd5d2e3 ("drm/radeon: fix up dp aux tear down (v2)"),
I have no idea where the panic happened as the screen was blanked before
the crash.  Since that more recent change, the panic has been in routine
radeon_connector_unregister(), and has been shown to be due to a NULL
value in the ddc_bus member of struct drm_connector.

Bug: https://bugzilla.kernel.org/show_bug.cgi?id=178421
Fixes: a481daa88fd4 ("drm/radeon: always apply pci shutdown callbacks")
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/radeon/radeon_connectors.c

index e18839d52e3e9036c53846b4cb67e5670a52ba7a..27affbde058c626eec6ae5b5b77cd9a2d4601ba9 100644 (file)
@@ -931,7 +931,7 @@ static void radeon_connector_unregister(struct drm_connector *connector)
 {
        struct radeon_connector *radeon_connector = to_radeon_connector(connector);
 
-       if (radeon_connector->ddc_bus->has_aux) {
+       if (radeon_connector->ddc_bus && radeon_connector->ddc_bus->has_aux) {
                drm_dp_aux_unregister(&radeon_connector->ddc_bus->aux);
                radeon_connector->ddc_bus->has_aux = false;
        }