[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MWHPR12MB1694E2F1EF8B572991416EE3F7AE0@MWHPR12MB1694.namprd12.prod.outlook.com>
Date: Mon, 31 Oct 2016 16:21:55 +0000
From: "Deucher, Alexander" <Alexander.Deucher@....com>
To: 'Larry Finger' <Larry.Finger@...inger.net>,
Linus Torvalds <torvalds@...ux-foundation.org>
CC: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"driver-devel@...r.kernel.org" <driver-devel@...r.kernel.org>
Subject: RE: [PATCH] drm/radeon: Fix kernel panic on shutdown
> -----Original Message-----
> From: Larry Finger [mailto:larry.finger@...il.com] On Behalf Of Larry Finger
> Sent: Monday, October 31, 2016 12:41 AM
> To: Linus Torvalds
> Cc: linux-kernel@...r.kernel.org; driver-devel@...r.kernel.org; Larry
> Finger; Deucher, Alexander
> Subject: [PATCH] drm/radeon: Fix kernel panic on shutdown
>
> 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.
>
> Fixes: a481daa88fd4 ("drm/radeon: always apply pci shutdown callbacks")
> Signed-off-by: Larry Finger <Larry.Finger@...inger.net>
> Cc: Alex Deucher <alexander.deucher@....com>
Applied. Thanks!
Alex
> ---
> drivers/gpu/drm/radeon/radeon_connectors.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c
> b/drivers/gpu/drm/radeon/radeon_connectors.c
> index e18839d..27affbd 100644
> --- a/drivers/gpu/drm/radeon/radeon_connectors.c
> +++ b/drivers/gpu/drm/radeon/radeon_connectors.c
> @@ -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;
> }
> --
> 2.10.0
Powered by blists - more mailing lists