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
Reasonably Related 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