[Intel-gfx] [PATCH] drm/i915: Avoid null dereference if mst_port is unset.

Pandiyan, Dhinakaran dhinakaran.pandiyan at intel.com
Thu Aug 10 18:39:33 UTC 2017


On Thu, 2017-08-10 at 19:45 +0200, Stefan Assmann wrote:
> On 2017-08-10 07:50, Rodrigo Vivi wrote:
> > I'm not sure if this is really the case and I don't believe
> > this is the real fix for the bug mentioned here, but since
> > I don't see a reliable path when mst_port is set and when
> > mode_valid is requested I believe it is worth to have this
> > protection here.
> 
> Hi Rodrigo,
> 
> I've applied the patch but problem seems to be somewhere else. After
> switching display input the system is no longer reachable via ssh.
> I ran dmesg -w over ssh and captured the output as far as possible.
> Have a look:
> https://paste.fedoraproject.org/paste/mgzW~jAzpaS4A3rmfkTZKw
> 
> Thanks!
> 
>   Stefan
> 

Looking at the logs, it appears you have a MST monitor connected to a
MST-dock. DP-3 should have been branch device that always remains
disconnected. But the log shows
[    3.812789] [drm] forcing DP-3 connector on
[    3.812809] [drm:drm_connector_init [drm]] cmdline mode for connector
DP-3 0x0 at 60Hz

And then when there is a long pulse (when you switched modes on the
monitor), which should be marking all connectors as disconnected.

[  244.504884] [drm:intel_get_hpd_pins [i915]] hotplug event received,
stat 0x00400000, dig 0x00101210, pins 0x00000040

This happens -
[  244.668328] [drm:drm_helper_probe_single_connector_modes
[drm_kms_helper]] [CONNECTOR:79:DP-3] status updated from disconnected
to connected

Looks like this has something to do with the connector status being
forced.


-DK


> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102022
> > Cc: Elizabeth <elizabethx.de.la.torre.mena at intel.com>
> > Cc: Stefan Assmann <sassmann at redhat.com>
> > Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan at intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> > ---
> >  drivers/gpu/drm/i915/intel_dp_mst.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> > index 58568559711a..93fc8ab9bb31 100644
> > --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> > +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> > @@ -370,6 +370,9 @@ intel_dp_mst_mode_valid(struct drm_connector *connector,
> >  	int bpp = 24; /* MST uses fixed bpp */
> >  	int max_rate, mode_rate, max_lanes, max_link_clock;
> >  
> > +	if (!intel_dp)
> > +		return MODE_ERROR;
> > +
> >  	max_link_clock = intel_dp_max_link_rate(intel_dp);
> >  	max_lanes = intel_dp_max_lane_count(intel_dp);
> >  
> > -- 
> > 2.13.2
> > 


More information about the Intel-gfx mailing list