> The other models never did this check. Why is this now a problem? You are right, and my Fixes tag is wrong. I checked the split again. 877507bb954e moved the per-model compute routines into separate files; it did not remove a check. Only g200se ever had the permitteddelta guard (the 0.5% VESA comment lives only there). The other six helpers never had it, before or after the split. So this is not a regression. Please drop the Fixes tag and the stable Cc; I should not have framed it that way.
What remains is a latent robustness gap, not a bug users hit. mgag200_crtc_helper_mode_valid does not bound the pixel clock, so a hand-crafted out-of-range modeline can reach the search loop, match nothing, and leave m/n/p/s at 0. atomic_update then does pixpllc->m - 1, which underflows, and programs garbage into PIXPLLC. Normal EDID modes stay inside the VCO window and never trigger this. If you think hardening the six helpers to match g200se is still worth it, I will resend without the Fixes/stable tags. Do you prefer a per-helper guard like g200se, or one shared check after the loop? I will follow your call on scope. Thanks for catching the framing. Berkant Koc
