On Thu, Mar 27, 2014 at 09:37:36AM +0000, Chris Wilson wrote: > On Thu, Mar 27, 2014 at 11:08:45AM +0200, ville.syrjala@xxxxxxxxxxxxxxx wrote: > > So relax the checks a bit, and apply the single-link DVI dotclock limit > > only when filtering the mode list, and ignore the limit when setting > > a user specified mode. > > Mind enlightening me as to how this actually works? I thought all > display modes were validated before we used them, so how come this > sneaks through? > > So it goes like this: > > userspace calls GETCONNECTOR > kernel: fill_modes -> drm_helper_probe_single_connector_modes -> mode_valid? > > but > > userspace calls SETCRTC with a random mode > kernel: applies random mode without validation > > Seriously we don't do any checking that the mode given to SETCRTC is > applicable and not in any way harmful before setting registers? Pretty much. Calling our user mode validation even "minimal" is a bit of a stretch. And the checks we have in the .mode_valid() hooks are lacking as well. As far as this particular patch goes, we do check the port clock in the hdmi compute_config hook, so I had to relax it a bit to ignore the single link DVI limit there, and instead just check it against the hardware specific limit from BSpec. I think that's a reasonable thing to do. If we wanted to protect the user (or the equipment in case of CRTs) more, we should probably check things against the EDID min/max scan rates and max clock. -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx