Karol Herbst
2023-Aug-05  10:18 UTC
[Nouveau] [PATCH] drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
The original commit adding that check tried to protect the kenrel against
a potential invalid NULL pointer access.
However we call nouveau_connector_detect_depth once without a native_mode
set on purpose for non LVDS connectors and this broke DP support in a few
cases.
Cc: Olaf Skibbe <news at kravcenko.com>
Cc: Lyude Paul <lyude at redhat.com>
Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/238
Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/245
Fixes: 20a2ce87fbaf8 ("drm/nouveau/dp: check for NULL
nv_connector->native_mode")
Signed-off-by: Karol Herbst <kherbst at redhat.com>
---
 drivers/gpu/drm/nouveau/nouveau_connector.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c
b/drivers/gpu/drm/nouveau/nouveau_connector.c
index f75c6f09dd2af..a2e0033e8a260 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -967,7 +967,7 @@ nouveau_connector_get_modes(struct drm_connector *connector)
 	/* Determine display colour depth for everything except LVDS now,
 	 * DP requires this before mode_valid() is called.
 	 */
-	if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS &&
nv_connector->native_mode)
+	if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS)
 		nouveau_connector_detect_depth(connector);
 
 	/* Find the native mode if this is a digital panel, if we didn't
-- 
2.41.0
Lyude Paul
2023-Aug-07  20:32 UTC
[Nouveau] [PATCH] drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
Ugh, thanks for catching this! Reviewed-by: Lyude Paul <lyude at redhat.com> On Sat, 2023-08-05 at 12:18 +0200, Karol Herbst wrote:> The original commit adding that check tried to protect the kenrel against > a potential invalid NULL pointer access. > > However we call nouveau_connector_detect_depth once without a native_mode > set on purpose for non LVDS connectors and this broke DP support in a few > cases. > > Cc: Olaf Skibbe <news at kravcenko.com> > Cc: Lyude Paul <lyude at redhat.com> > Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/238 > Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/245 > Fixes: 20a2ce87fbaf8 ("drm/nouveau/dp: check for NULL nv_connector->native_mode") > Signed-off-by: Karol Herbst <kherbst at redhat.com> > --- > drivers/gpu/drm/nouveau/nouveau_connector.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c > index f75c6f09dd2af..a2e0033e8a260 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_connector.c > +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c > @@ -967,7 +967,7 @@ nouveau_connector_get_modes(struct drm_connector *connector) > /* Determine display colour depth for everything except LVDS now, > * DP requires this before mode_valid() is called. > */ > - if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS && nv_connector->native_mode) > + if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS) > nouveau_connector_detect_depth(connector); > > /* Find the native mode if this is a digital panel, if we didn't-- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat
Maybe Matching Threads
- [PATCH] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH v2] drm/nouveau: fix null pointer dereference in nouveau_connector_get_modes
- [PATCH RFC] drm: Add update_native_mode callback to connectors
- [PATCH 1/2] drm/nouveau/disp/nv50-: force scaler for any non-default LVDS/eDP modes
- [PATCH 1/2] drm/nouveau/disp/nv50-: force scaler for any non-default LVDS/eDP modes